Singularity
From VeRLab Wiki
Contents
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 singularitynuma 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:
-
/tmpou -
/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/datasetna 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: