User Tools

Site Tools


tutoriais:apptainer

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tutoriais:apptainer [2024-03-15 16:58] – [Imagens pré-baixadas] gnanntutoriais:apptainer [2024-05-08 11:44] (current) – [Baixando uma imagem] hcabral
Line 4: Line 4:
  
 Sua principal vantagem em relação ao Docker é não precisar de permissões especiais dos usuários, tornando-o mais adequado a nossos servidores de uso compartilhado. Sua principal vantagem em relação ao Docker é não precisar de permissões especiais dos usuários, tornando-o mais adequado a nossos servidores de uso compartilhado.
 +
 +Quase tudo que serve para o Singularity serve para o Apptainer.
  
 Abaixo um guia de como rodar um programa dentro do ambiente (no caso, o R). Abaixo um guia de como rodar um programa dentro do ambiente (no caso, o R).
Line 12: Line 14:
 Para rodar o R com a imagem ml-verse: Para rodar o R com a imagem ml-verse:
  
-  apptainer exec /opt/apptainer/ml-verse_latest.sif R +  apptainer exec --nv /opt/apptainer/ml-verse_latest.sif R 
  
 Rodar o ''Rscript'' é análogo. Rodar o ''Rscript'' é análogo.
-   
-Para o RStudio temos um script que chama a imagem do ml-verse, sendo necessário especificar a porta da interface web do RStudio. É preciso escolher uma porta (qualquer número de 10000 a 40000 que já não esteja ocupado por outro processo no servidor) e acessar o servidor da seguinte forma (no exemplo, foi escolhido o número 12345): 
  
-  ssh -L 12345:localhost:12345 usuario@brucutu.ime.usp.br +Para rodar o RStudio, siga [[servicos:rstudio|o guia]].
-   +
-Então, chamar o script com o mesmo número: +
- +
-  rstudio_apptainer.sh 12345 +
-   +
-O script irá gerar e exibir uma senha de acesso. Basta acessar pelo navegador o endereço http://localhost:12345 e usar a senha para acessar o RStudio+
- +
-<note important>Pode ser interessante rodar o rstudio_apptainer.sh dentro de uma [[tutoriais:linux:utilizando_comando_screen|screen]].</note>+
  
 ==== Baixando uma imagem ==== ==== Baixando uma imagem ====
  
-As imagens do Apptainer são ambientes com as dependências necessárias para que o programa funcionar. Para baixar uma imagem podemos usar o subcomando ''pull'', como:+As imagens do Apptainer são ambientes com as dependências necessárias para que o programa funcione. Para baixar uma imagem podemos usar o subcomando ''pull'', como:
  
   apptainer pull docker://rocker/ml-verse   apptainer pull docker://rocker/ml-verse
Line 41: Line 33:
 Para executar a imagem, utilizamos o subcomando ''apptainer run'', especificando o nome do arquivo da imagem: Para executar a imagem, utilizamos o subcomando ''apptainer run'', especificando o nome do arquivo da imagem:
  
-  apptainer run ml-verse_latest.sif+<code bash> 
 +# não deve funcionar, pois o container chama o RStudio por padrão e precisará de alguns bind mounts 
 +apptainer run ml-verse_latest.sif 
 +</code>
  
 Também é possível executar um comando no escopo da imagem: Também é possível executar um comando no escopo da imagem:
Line 47: Line 42:
   apptainer exec ml-verse_latest.sif R   apptainer exec ml-verse_latest.sif R
  
-Ao executar o comando, o apptainer irá criar um container baseado na imagem e executar o programa. Essa parte deve ser transparente, com a saída do terminal sendo similar a um programa executado nativamente. +Ao executar o comando, o apptainer irá criar um container baseado na imagem e executar o programa.
 ==== Particularidades do ambiente ==== ==== Particularidades do ambiente ====
  
-Apesar de rodar dentro de um container, o apptainer irá automaticamente disponibilizar seu ''$HOME'' dentro do ambiente, então seus arquivos devem continuar a ser acessíveis normalmente. A maior diferença se dá nas bibliotecas e outras dependências inclusas na imagem. Caso algum pacote dependa de bibliotecas que não estejam inclusas, o ideal é baixar uma imagem mais completa. Também é possível criar imagens customizadas.+apptainer irá automaticamente disponibilizar seu ''$HOME'' dentro do ambiente, então seus arquivos devem continuar a ser acessíveis normalmente. A maior diferença se dá nas bibliotecas e outras dependências inclusas na imagem. Caso algum pacote dependa de bibliotecas que não estejam inclusas, o ideal é baixar ou criar uma imagem mais completa. 
 + 
 +Para instalar pacotes é preciso configurar o .libPaths(). No R, rodar: 
 +<code> 
 +dir.create(Sys.getenv('R_LIBS_USER'), recursive=TRUE) 
 +.libPaths(Sys.getenv('R_LIBS_USER')) 
 +</code> 
 +Por padrão isso resultará em pacotes instalados em seu ''$HOME'' na pasta ''R''. É possível alterar a variável de ambiente para mexer nesse comportamento.
  
 ==== Particularidades dos servidores do IME ==== ==== Particularidades dos servidores do IME ====
Line 57: Line 58:
 Além do ''$HOME'', o apptainer já disponibiliza o ''/tmp'' e o ''/var/tmp'' (entre outros diretórios). Nas brucutus também configuramos acesso ao ''/var/fasttmp'', que é sempre um SSD. Além do ''$HOME'', o apptainer já disponibiliza o ''/tmp'' e o ''/var/tmp'' (entre outros diretórios). Nas brucutus também configuramos acesso ao ''/var/fasttmp'', que é sempre um SSD.
  
- +==== Referências ==== 
- +  * https://apptainer.org/docs/user/latest/ 
 +  * https://rocker-project.org/use/singularity.html
tutoriais/apptainer.1710532687.txt.gz · Last modified: 2024-03-15 16:58 by gnann

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki