Difference between revisions of "Singularity"

From VeRLab Wiki
Jump to: navigation, search
(Singularity)
(Aprender Singularity e Criar sua Máquina Container)
Line 36: Line 36:
  
 
https://singularity.lbl.gov/docs-docker
 
https://singularity.lbl.gov/docs-docker
 +
 +
* Criar uma máquina container: https://singularity.lbl.gov/docs-build-container
 +
 +
== Alguns comandos básicos ==
 +
 +
* Criar uma imagem a partir de um repositório Docker Hub
 +
 +
<code> singularity build lolcow.simg docker://godlovedc/lolcow </code>
 +
<code> sudo singularity build -- docker://index.docker.io/library/ubuntu:latest </code>
 +
 +
 +
run, exec, and shell.

Revision as of 15:54, 14 June 2018

Singularity

O Singularity é uma ferramenta para a criação de "máquina container" (uma espécie de "máquina virtual") que trás algumas vantagens, quando for rodar experimentos nas máquinas de processamento do Verlab/J:

  • Não precisa ser usuário com privilégios root para criar sua máquina container e pode instalar suas dependências de experimento no container sem alterar a máquina host. Isso evita mudanças e instalação de pacotes que atrapalham experimentos de outros usuários.
  • Depois de criar sua máquina container com todas suas dependências, pode-se usá-la para rodar experimento em diferentes máquinas host que tenham GPU. Isso trás flexibilidade para rodar experimento em outra máquina, sem precisar instalar todas dependências novamente na máquina host.
  • A massa de arquivos de dataset (que geralmente ocupam espaço >=500GB) ficam localmente armazenados na máquina host, assim evita tráfego desnecessário na rede. Geralmente na pasta /homeLocal/nome_do_usuario.
  • O usuário deixa na sua pasta home da rede apenas sua máquina container (que em geral ocupa ~4GB) assim basta logar numa máquina com GPU para rodar seu experimento.

Instalação

Toda máquina com GPU deve rodar experimentos sem modificar os pacotes da máquina host (máquina de processamento).

A equipe de rede é responsável por:

  • Instalar o Singularity em toda máquina host com GPU (máquina de processamento)
  • Configurar de modo que todo usuário possa rodar apenas o comando $sudo singularity numa pasta local da máquina host, sem necessitar de senha root.

Assim as pastas indicadas para "compilar" a máquina container é fora do home do usuário, tais como:

  • /tmp ou
  • /homeLocal/usuario .


Regras de bom uso dos recursos

  • Usuários não devem deixar o dataset (massa de arquivos grande, em geral 1TB, que vão ser acessados durante o experimento) dentro da sua pasta home da rede (por exemplo, para o login "fulano" /home/fulano/dataset na rede, pois isso aumenta o tráfego na rede desnecessário. Os datasets devem ser armazenados numa pasta local do computador com o nome do usuário. Por exemplo /homeLocal/fulano/dataset
  • Cada usuário deve baixar os arquivos e os pacotes necessários para máquina container dentro da pasta local (por exemplo, /homeLocal/fulano/sigularity , e "compilar" na mesma. O arquivo container pronto, pode ser armazenado na pasta home da rede, pois será automaticamente carregada quando entrar em outra máquina, permitindo rodar o experimento.

Aprender Singularity e Criar sua Máquina Container

Links recomendados para aprender a utilizar o Singularity:

https://singularity.lbl.gov/docs-docker

Alguns comandos básicos

  • Criar uma imagem a partir de um repositório Docker Hub

singularity build lolcow.simg docker://godlovedc/lolcow sudo singularity build -- docker://index.docker.io/library/ubuntu:latest


run, exec, and shell.