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
Last revisionBoth sides next revision
tutoriais:apptainer [2024-03-15 16:55] gnanntutoriais:apptainer [2024-05-08 11:43] – [Particularidades do ambiente] 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 RStudiosiga [[servicos:rstudio|guia]].
-   +
-Entãochamar 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 endereço http://localhost:12345 e usar a senha para acessar o RStudio.+
  
 ==== Baixando uma imagem ==== ==== Baixando uma imagem ====
Line 39: 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 45: 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 55: 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.txt · Last modified: 2024-05-08 11:44 by hcabral

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