Bem-vindo ao mundo de Marvin! 
Este manual foi criado para ajudar os usuários a utilizar o HPCC Marvin. Apesar de ser um pouco mal-humorado às vezes, Marvin está sempre disposto a te ajudar!
"Você acha que VOCÊ tem problemas? Experimente ser um robô maníaco depressivo..."
— Marvin, O Guia do Mochileiro das Galáxias
O que é HPCC?
HPCC (High Performance Computing Cluster) é um sistema de computação que combina múltiplos computadores (chamados nós) para trabalhar juntos em tarefas complexas, que requerem grande poder de processamento. O HPCC é projetado para lidar com grandes volumes de dados e realizar cálculos intensivos, tornando-o ideal para aplicações científicas, simulações, modelagem e análise de dados.
Sobre o HPCC Marvin
Marvin é nome do HPCC do LNBio/CNPEM, adquirido em 2022 da empresa Atos, empresa especializada em soluções de HPC e responsável por alguns dos maiores supercomputadores do Brasil e do mundo, como o Santos Dumont.
O HPCC Marvin está hospedado no Data Center do Sirius/LNLS. Para informações sobre a arquitetura do HPCC Marvin, veja a seção Arquitetura.
Acesso ao HPCC Marvin
Para começar a utilizar o HPCC Marvin, veja os Primeiros Passos.
Primeiros passos
Para ativar seu usuário no HPCC Marvin, é necessário fazer um primeiro acesso via ssh
(Secury SHell), protocolo de rede seguro que permite a comunicação com servidores remotos.
Primeiro acesso 🚪
O primeiro acesso ao HPC Marvin é feito através do terminal (Linux ou MacOS) ou do PowerShell
(Windows). Para isso, use o seguinte comando:
ssh <seu.login.cnpem>@marvin.cnpem.br
marie.curie@lnbio.cnpem.br
. Logo, seu usuário é marie.curie
. Sempre que encontrar <seu.login.cnpem>
, digite marie.curie
.
Quando solicitado, digite sua senha institucional.
Você pode receber um aviso solicitando sua confirmação antes de continuar conectando.
[...] Are you sure you want to continue connecting (yes/no/[fingerprint])?
Digite yes
e pressione enter. Se tudo correu bem, você verá o cursor piscando no terminal, com um texto semelhante a:
[<seu.login.cnpem>@marvin ~]$
Após o primeiro login, você já poderá ler e gravar arquivos na aba Files
do Open OnDemand (OOD), porém ainda não terá permissão para criar jobs, submeter tarefas ao SLURM ou utilizar os Interactive Apps
.
Essa autorização é concedida manualmente. Para solicitá-la, registre um chamado na [LNBio] Suporte EDB do Jira em HPCC Marvin: Suporte ao usuário.
Se estiver no Windows e receber o seguinte erro, solicite ao TIC para instalar o ssh
ou tente usar outro computador.
ssh: O termo 'ssh' não é reconhecido como nome de cmdlet, função, arquivo de script
ou programa operável. Verifique a grafia do nome ou, se um caminho tiver sido incluído,
veja se o caminho está correto e tente novamente.
Na linha:1 caractere:1
+ ssh marie.curie@marvin.cnpem.br
+ ~~~
+ CategoryInfo : ObjectNotFound (ssh:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Acesso pelo navegador 
Para acessar o HPCC Marvin pelo navegador, abra seu navegador e acesse:
https://marvin.cnpem.br
Lembre-se que este endereço só funcionará na rede interna do CNPEM. Para acessá-lo de fora do centro, é necessário usar a VPN. Caso não tenha este acesso à VPN, entre em contato com o DTI.
Na tela de login, use seu usuário (sem @lnbio.cnpem.br
) e senha institucional.

Após o login, você verá a interface principal do Open OnDemand:

Vídeo resumo
Abaixo, você pode ver um vídeo que resume os primeiros acesso ao HPCC Marvin, tanto pelo terminal quanto pelo navegador.
Se você tiver alguma dúvida ou precisar de ajuda, não hesite em entrar em contato com a equipe de suporte do sistema.
Arquitetura
Essa seção apresenta a arquitetura do HPCC Marvin, com informações detalhadas sobre:
Hardware
O hardware do HPCC Marvin foi adquirido em 2022 da empresa Atos, com investimento aproximado de US$350000. O cluster está fisicamente instalado no Data Center do Sirius/LNLS, contando com infraestrutura de refrigeração e energia.
O cluster é composto por um conjunto de servidores, chamados de nós, organizados conforme a topologia tradicional de um cluster HPC:
01
nó de login (head node): ponto de entrada dos usuários, onde comandos são executados e jobs são submetidos.01
nó de computação em CPU (CPU node): dedicado à execução de jobs que requerem alto desempenho de processamento em CPU.01
nó de computação em GPU (GPU node): dedicado à execução de jobs que se beneficiam de aceleração por GPU.01
sistema de armazenamento de alta performance (high performance storage system): sistema de arquivos compartilhado baseado em Lustre, voltado para I/O paralelo de alta velocidade.
As especificações técnicas de cada nó estão apresentadas na tabela a seguir:
Nó | CPU | RAM | GPU | Armazenamento |
---|---|---|---|---|
Login | AMD EPYC 7352 24-Core @ 2.4 GHz | 256 GB | NVIDIA A40 (48 GB) | N/A |
CPU | AMD EPYC 7742 64-Core @ 2.25 GHz | 1 TB | N/A | N/A |
GPU | AMD EPYC 7742 64-Core @ 2.25 GHz | 2 TB | 8x NVIDIA A100 (40 GB) | N/A |
Storage HPC | N/A | N/A | N/A | 300 TB |
Sistema Operacional
O HPCC Marvin utiliza o sistema operacional Rocky Linux 8.5, que é configurado de forma padronizada em todos os nós do HPCC, incluindo o nó de login, nós de computação (CPU e GPU) e o nó de Storage HPC.
Sistema de filas
Em ambientes HPC, é comum que múltiplos usuários estejam logados e executando jobs simultaneamente. Para gerenciar eficientemente a alocação de recursos (CPU, GPU, memória, etc) e a ordem de execução desses jobs, são usados sistemas de gerenciamento de filas.
O gerenciador de filas usado é o SLURM v21.08.8-2, que organiza a execução por meio de filas, chamadas de partitions, que armazenam os jobs submetidos pelos usuários. Assim que os recursos solicitados estão disponíveis, o SLURM inicia a execução dessas tarefas de forma automática.
Todos os jobs devem ser submetidos através do SLURM.
As filas de execução do HPCC Marvin são:
Fila | Tempo limite | cpus-per-task (limite) | mem-per-cpu (default) | mem-per-cpu (limite) | GPU |
---|---|---|---|---|---|
debug-cpu | 30 minutos | 2 | 1GB | 2GB | Não |
gui-cpu | 12 horas | 8 | 1GB | 4GB | Não |
short-cpu | 5 dias | 64 | 1GB | 4GB | Não |
long-cpu | 15 dias | 32 | 1GB | 4GB | Não |
debug-gpu-small | 30 minutos | 2 | 1GB | 2GB | Sim (5GB) |
gui-gpu-small | 12 horas | 8 | 1GB | 4GB | Sim (5GB) |
short-gpu-small | 5 dias | 64 | 1GB | 8GB | Sim (5GB) |
long-gpu-small | 15 dias | 32 | 1GB | 8GB | Sim (5GB) |
debug-gpu-big | 30 minutos | 2 | 1GB | 2GB | Sim (40GB) |
gui-gpu-big | 12 horas | 8 | 1GB | 4GB | Sim (40GB) |
short-gpu-big | 5 dias | 64 | 1GB | 8GB | Sim (40GB) |
long-gpu-big | 15 dias | 32 | 1GB | 8GB | Sim (40GB) |
Gerenciamento de jobs
Os jobs no HPCC Marvin são administrados pelo gerenciador de recursos computacionais SLURM (Simple Linux Utility for Resource Management) v21.08.8-2.
Essa seção apresenta infomações sobre gerenciamento de jobs, com informações detalhadas sobre:
- O que é um job?
- O que é SLURM?
- Verificando recursos
- Submissão de jobs
- Monitoramento de jobs
- Cancelamento de jobs
- Boas práticas
Referências adicionais
- Documentação: https://slurm.schedmd.com/documentation.html
- Tutorial: https://slurm.schedmd.com/tutorials.html
- Manual: https://slurm.schedmd.com/man_index.html
- FAQ: https://slurm.schedmd.com/faq.html
O que é SLURM?
O SLURM (Simple Linux Utility for Resource Management) é um sistema de gerenciamento de filas de código aberto projetado para organizar o acesso aos recursos computacionais em um cluster. Ele permite que múltiplos usuários compartilhem os recursos do cluster de forma eficiente.
O que é um job?
Um job é uma tarefa computacional submetida para execução no cluster, como scripts, programas, simulações ou qualquer outro tipo de processamento.
No HPCC Marvin, os jobs são enviados ao SLURM por meio de scripts de submissão. O SLURM insere os jobs em uma fila e os executa conforme a disponibilidade dos recursos, seguindo políticas de agendamento definidas.
Cada job pode variar em complexidade: desde a execução de um único comando até fluxos compostos por múltiplas etapas e dependências. Os usuários podem especificar requisitos como número de CPUs, quantidade de memória, uso de GPUs e tempo estimado de execução.
Os jobs podem ser executados em segundo plano (sbatch
) ou de forma interativa (srun --pty bash -i
), conforme a necessidade. O SLURM também oferece recursos avançados, como monitoramento em tempo real, controle de dependências e suporte à retomada em caso de falhas.
Submissão de jobs
Para submeter um job, você deve criar um script de submissão com os parâmetros adequados e usar o comando sbatch
:
sbatch teste.sh
O script de submissão define as características do trabalho, como nome, partição, número de nós e CPUs, memória, tempo máximo de execução, e arquivos de saída. Um exemplo básico:
#!/bin/bash
#SBATCH --job-name=teste
#SBATCH --partition=debug-cpu
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --mem=1G
#SBATCH --time=00:10:00
#SBATCH --output=output_%j.log
echo "Olá do cluster Marvin!"
hostname
date
sleep 60
echo "Trabalho concluído."
Solicitando recursos específicos
- Para solicitar GPUs:
#SBATCH --gres=gpu:1
- Para especificar uma partição (fila):
#SBATCH --partition=short-gpu-small
Trabalhos interativos
Você pode iniciar uma sessão interativa com:
srun --pty bash -i
Ou com recursos definidos:
srun --partition=short-gpu-small --gres=gpu:1 --cpus-per-task=4 --mem=8G --time=01:00:00 --pty bash -i
Monitoramento de jobs
Para acompanhar o status dos seus jobs, você pode usar o comando squeue
:
squeue -u $USER
Para obter informações detalhadas de um job específico, use o comando scontrol
:
scontrol show job <job_id>
Substitua
<job_id>
pelo ID do seu job.Cancelamento de jobs
Para cancelar um job específico, use o comando scancel
seguido do ID do job:
scancel <jon_id>
Substitua
<job_id>
pelo ID do seu job.Para cancelar todos os seus jobs em execução ou na fila, use o seguinte comando:
scancel -u $USER
Sempre verifique o status do seus jobs antes de cancelá-los.
Verificando recursos disponíveis
O SLURM fornece ferramentas para verificar a disponibilidade de recursos no cluster. Para visualizar as partições disponíveis e seus limites, você pode usar o comando:
sinfo
Esse comando exibe informações sobre as partições, incluindo o número de nós disponíveis, o número de nós ocupados e o estado atual de cada partição.
Para visualizar informações detalhadas sobre os nós, incluindo o estado de cada nó, você pode usar:
sinfo -N -l
Esse comando fornece uma visão detalhada de cada nó, incluindo informações sobre a memória, CPUs e o estado atual.
Boas práticas
Para garantir o uso eficiente do sistema e evitar problemas durante a execução de jobs, siga estas boas práticas:
-
Especifique os recursos necessários: Solicite apenas o que for necessário para evitar desperdício e facilitar o agendamento.
-
Defina um tempo limite adequado: Um tempo muito curto pode interromper seu job; muito longo pode atrasar a fila.
-
Utilize o arquivo de saída: Monitore a execução do job e facilite a depuração de erros.
-
Faça testes com jobs menores: Teste seu pipeline com dados ou tempos reduzidos antes de escalar para execuções maiores.
-
Evite sobrecarga de I/O: Reduza o número de acessos simultâneos ao sistema de arquivos compartilhado sempre que possível.
-
Não processar dados no nó de login: Execute seus scripts e comandos de processamento de dados apenas dentro de um job para evitar sobrecarga no nó de login.
Gerenciamento de dados
Os dados são gerenciados a nível de usuário no HPCC Marvin.
Essa seção apresenta informações sobre gerenciamento de dados, com informações detalhadas sobre:
Todos os dados armazenados pelos usuários (dados, scripts, resultados, arquivos temporários, etc) são de responsabilidade do usuário.
Recomenda-se fortemente o uso do sistema de controle de versão Git sempre que possível, a fim de manter um histórico de alterações e facilitar a recuperação de informações.
Armazenamento de dados
O HPCC Marvin fornece duas opções principais de armazenamento de dados: pasta pessoal e pasta compartilhada por grupos de pesquisa.
Pasta pessoal
Cada usuário do HPCC Marvin tem acesso a um espaço de armazenamento pessoal, onde pode armazenar e compartilhar seus dados.
marie.curie
, sua pasta estará localizado em /home/marie.curie
. Você acessa sua pasta pessoal ao fazer login no sistema, e ela é automaticamente montada como seu diretório inicial ($HOME
).
Esta pasta (e.g., seu HOME
) é exclusiva para cada usuário e é utilizado para guardar arquivos, scripts, resultados e dados intermediários necessários apenas para suas atividades de pesquisa.
Pasta compartilhada por grupos de pesquisa
Os grupos de pesquisa podem solicitar uma pasta compartilhada para armazenar dados que precisam ser acessados por vários membros do grupo.
/shared/groups/<sigla-do-grupo>
.
Para solicitar uma pasta compartilhada, registre um chamado na [LNBio] Suporte EDB do Jira em HPCC Marvin: Suporte ao usuário. Informe o nome do grupo de pesquisa e a sigla que deseja (/shared/groups/<sigla-do-grupo>
).
Transferência de dados
O HPCC Marvin oferece várias opções para transferir dados entre o sistema e seu computador local. As principais ferramentas para essa tarefa são: SFTP, SCP e Rsync.
SSH File Transfer Protocol (SFTP)
O SFTP é um protocolo seguro que permite a transferência de arquivos entre sistemas operacionais diferentes. É útil quando você precisa transferir arquivos de forma segura. Para usar o SFTP, execute o seguinte comando:
sftp <seu.login.cnpem>@marvin.cnpem.br
Após se conectar, você pode usar comandos como:
ls
: lista os arquivos no diretório atual;cd
: navega para um diretório específico;put
: envia um arquivo do seu computador local para o HPCC Marvin;get
: baixa um arquivo do HPCC Marvin para o seu computador local.
Secure Copy Protocol (SCP)
O SCP (Secure Copy Protocol) é outro protocolo seguro que usa a criptografia SSH para transferir arquivos. Ele é semelhante ao SFTP, mas é mais simples de usar e não tem recursos de navegação.
Para transferir um arquivo (e.g., file.txt
) do seu computador local para o HPCC Marvin, use o comando:
scp file.txt <seu.login.cnpem>@marvin.cnpem.br:/caminho/de/destino/
Para transferir um diretório (e.g., directory/
) do seu computador local para o HPCC Marvin, use o comando:
scp -r directory/ <seu.login.cnpem>@marvin.cnpem.br:/caminho/de/destino/
Para transferir um arquivo (e.g., file.txt
) do HPCC Marvin para o seu computador local, use o comando:
scp <seu.login.cnpem>@marvin.cnpem.br:/caminho/do/arquivo/file.txt /caminho/local/de/destino/
Para transferir um diretório (e.g., directory/
) do HPCC Marvin para o seu computador local, use o comando:
scp -r <seu.login.cnpem>@marvin.cnpem.br:/caminho/do/diretorio/directory/ /caminho/local/de/destino/
Rsync
O Rsync é um protocolo de transferência de arquivos que pode sincronizar diretórios entre hosts. Ele usa uma conexão segura SSH e é útil para transferir grandes quantidades de dados ou sincronizar arquivos entre sistemas.
Para transferir um arquivo (e.g., file.txt
) do seu computador local para o HPCC Marvin, use o comando:
rsync -avz file.txt <seu.login.cnpem>@marvin.cnpem.br:/caminho/de/destino/
Para transferir um diretório (e.g., directory/
) do seu computador local para o HPCC Marvin, use o comando:
rsync -avz directory <seu.login.cnpem>@marvin.cnpem.br:/caminho/de/destino/
Para transferir um arquivo (e.g., file.txt
) do HPCC Marvin para o seu computador local, use o comando:
rsync -avz <seu.login.cnpem>@marvin.cnpem.br:/caminho/do/arquivo/file.txt /caminho/local/de/destino/
Para transferir um diretório (e.g., directory/
) do HPCC Marvin para o seu computador local, use o comando:
rsync -avz <seu.login.cnpem>@marvin.cnpem.br:/caminho/do/diretorio/directory/ /caminho/local/de/destino/
-a
mantém as permissões de arquivos, a flag -v
mostra o progresso da transferência e a flag -z
comprime os dados antes de transferi-los.
Compartilhamento de dados
Os dados são compartilhados a nível de usuário no HPCC Marvin, usando o sistema de controle de acesso do Linux, conhecido como Access Control Lists (ACLs). As ACLs permitem que você defina permissões específicas para usuários e grupos em diretórios e arquivos, facilitando o compartilhamento seguro de dados entre usuários.
Para garantir a segurança e a privacidade dos dados, cada diretório de usuário no HPCC Marvin possui permissão 700 ou u:rwx, g:---, o:---
. Isso significa que apenas o próprio usuário "u" tem permissão de leitura "r", escrita w
e execução x
, enquanto membros do grupo g
e outros usuários o
não têm acesso.
No entanto, em alguns casos, você pode precisar permitir o acesso a determinados diretórios, como para compartilhar um projeto com outros usuários.
Usando o ACL para compartilhar dados
Nesta seção, vamos usar o usuário hipotético marie.curie
como exemplo para demonstrar como compartilhar dados com outros usuários no HPCC Marvin.
Verificando as permissões
Para verificar as permissões de um arquivo ou um diretório específico, use o seguinte comando no terminal:
getafcl /caminho/do/diretorio_ou_arquivo
Por exemplo, para verificar as permissões do seu HOME
, você pode usar:
$ getafcl /home/marie.curie
# file: /home/marie.curie
# owner: marie.curie
# group: domain\040users
user::rwx
group::---
other::---
Concedendo permissão de acesso a outros usuários
Primeiramente, para compartilhar um arquivo ou diretório com outros usuários, você precisa começar alterarando as permissões do diretório $HOME
para 711. Para isso, use o comando:
chmod 711 /home/marie.curie
Então, cheque as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie
# file: /home/marie.curie
# owner: marie.curie
# group: domain\040users
user::rwx
group::--x
other::--x
Em seguida, você pode usar o comando setfacl
para adicionar permissões de acesso a outros usuários. Por exemplo, para conceder permissão de leitura ao usuário "joao.guerra" no diretório "pasta_compartilhada", use o comando:
setfacl -m u:joao.guerra:r-x /home/marie.curie/pasta_compartilhada
x
foi adicionado para que o usuário consiga executar o comando ls
e listar os arquivos dentro do diretório compartilhado.
Então, cheque as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
user:joao.guerra:r-x
group::--x
mask::r-x
other::--x
Caso você queira dar permissões de acesso recursivamente para todos os arquivos e subdiretórios dentro de "pasta_compartilhada", você pode usar a opção -R
:
setfacl -R -m u:joao.guerra:r-x /home/marie.curie/pasta_compartilhada
Caso você queira conceder acesso para todas os arquivos e subdiretórios que podem ser criados dentro de "pasta_compartilhada", você pode usar a opção -d
:
setfacl -d -m u:joao.guerra:r-x /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
user:joao.guerra:r-x
group::--x
mask::r-x
other::--x
default:user::rwx
default:user:joao.guerra:r-x
default:group::--x
default:mask::r-x
default:other::--x
Para adicionar mais permissões, você pode usar outras opções como w
para escrita e x
para execução. Por exemplo, para dar ao usuário "joao.guerra" permissão de escrita e execução na pasta "pasta_compartilhada", use o comando:
setfacl -m u:joao.guerra:rwx /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
user:joao.guerra:rwx
group::--x
mask::rwx
other::--x
default:user::rwx
default:user:joao.guerra:r-x
default:group::--x
default:mask::r-x
default:other::--x
Removendo permissões de acesso
Para remover as permissões de acesso de um usuário específico, utilize o comando setfacl -x
seguido do usuário desejado. Por exemplo, para remover as permissões de acesso do usuário "joao.guerra" no diretório "pasta_compartilhada", use o comando:
setfacl -x u:joao.guerra /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
group::--x
other::--x
default:user::rwx
default:user:joao.guerra:r-x
default:group::--x
default:mask::r-x
default:other::--x
Caso você queira remover permissões de acesso recursivamente para todos os arquivos e subdiretórios dentro de "pasta_compartilhada", você pode usar a opção -R
:
setfacl -R -x u:joao.guerra /home/marie.curie/pasta_compartilhada
Caso você queira remover acesso para todas os arquivos e subdiretórios que podem ser criados dentro de "pasta_compartilhada", você pode usar a opção -d
:
setfacl -d -x u:joao.guerra /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
group::--x
mask::--x
other::--x
default:user::rwx
default:group::--x
default:mask::--x
default:other::--x
Para remover todas as permissões de acesso, você pode usar o comando setfacl -b
seguido do caminho do diretório. Por exemplo, para remover todas as permissões de acesso no diretório "pasta_compartilhada", use o comando:
setfacl -b /home/marie.curie/pasta_compartilhada
Então, cheque novamente as mudanças com o comando getfacl
:
$ getfacl /home/marie.curie/pasta_compartilhada
# file: /home/marie.curie/pasta_compartilhada
# owner: marie.curie
# group: domain\040users
user::rwx
group::--x
other::--x
Usando links simbólicos para pastas compartilhadas
Para facilitar o acesso a pastas compartilhadas, você pode criar links simbólicos (atalhos) para essas pastas em seu HOME
. Isso é especialmente útil quando você precisa acessar frequentemente uma pasta compartilhada sem precisar navegar até o caminho completo toda vez.
Para criar um link simbólico, você pode usar o comando ln -s
seguido do caminho da pasta compartilhada e do caminho onde deseja criar o link. Por exemplo, se você quiser criar um link simbólico para a pasta compartilhada /shared/groups/edb
no seu diretório HOME
, você pode usar o seguinte comando:
ln -s /shared/groups/edb /home/marie.curie/edb
singularity run --bind /caminho/da/pasta/compartilhada:/caminho/dentro/do/container imagem.sif
.
Referências adicionais
- An introduction to Linux Access Control Lists (ACLs)
- Red Hat Docs - Chapter25. Managing file permissions
- Red Hat Docs - Chapter 28. Managing the Access Control List
- Arch Linux Wiki - Access Control Lists (Português)
- Using ACLs
Princípios FAIR
Os princípios FAIR são diretrizes para tornar os dados de pesquisa mais acessíveis, interoperáveis e reutilizáveis. FAIR é um acrônimo que significa:
- Findable: Os dados devem ser fáceis de encontrar por humanos e máquinas.
- Accessible: Os dados devem ser acessíveis de forma clara e transparente, com informações sobre como obtê-los.
- Interoperable: Os dados devem ser compatíveis com outros conjuntos de dados e sistemas, permitindo a integração e o uso conjunto.
- Reusable: Os dados devem ser descritos de forma que possam ser reutilizados em diferentes contextos e por diferentes usuários.
Ambiente de desenvolvimento
O HPCC Marvin oferece flexibilidade para que os usuários configurem seus próprios ambientes de desenvolvimento. O gerenciamento de ambientes é feito a nível de usuário, permitindo que cada usuário personalize seu ambiente de acordo com as necessidades dos seus projetos.
Lmod
) para gerenciamento de ambientes e bibliotecas. Cada usuário é responsável pela criação, manutenção e ativação dos seus próprios ambientes.
Gerenciamento de Ambientes
Os usuários podem criar e gerenciar seus próprios ambientes utilizando ferramentas como:
-
conda: Ambiente e gerenciamento de pacotes para Python, R, C/C++ e outras linguagens.
-
uv: Gerenciador de ambientes Python extremamente rápido e leve, compatível com
pip
epyproject.toml
.
conda
e uv
não estão pré-instaladas no sistema. Cada usuário deve realizar a instalação dessas ferramentas em seu ambiente pessoal ou no espaço de projeto, conforme necessário.
Para instalar o conda
, execute:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
Para instalar o uv
, execute:
curl -sSL https://astral.sh/uv/install.sh | bash
Compiladores
O Marvin oferece suporte para desenvolvimento de aplicações em C, C++, Fortran e outros, com os seguintes compiladores e ferramentas de build disponíveis no ambiente padrão:
Ferramenta | Descrição |
---|---|
gcc | Compilador GNU para C |
g++ | Compilador GNU para C++ |
gfortran | Compilador GNU para Fortran |
clang | Compilador LLVM para C |
clang++ | Compilador LLVM para C++ |
make | Gerenciador de build tradicional |
cmake | Sistema de build multiplataforma |
Boas práticas
Para garantir um ambiente de desenvolvimento eficiente e organizado, recomenda-se:
- Instale seus ambientes no seu diretório pessoal (
/home/marie.curie
) ou no seu espaço de projeto. - Utilize ferramentas como
conda
,mamba
ouuv
para gerenciar dependências e ambientes virtuais. - Mantenha seus ambientes organizados e evite acumular múltiplos ambientes desnecessários.
- Documente seus ambientes e dependências em um arquivo
README.md
,pyproject.toml
(uv
/pip
),requirements.txt
(uv
/pip
) e/ouenvironment.yml
(conda
/mamba
), para facilitar o compartilhamento e a reprodução do ambiente por outros usuários.
Aplicativos e Programas
No HPCC Marvin, os aplicativos e programas são disponibilizados principalmente por meio de containers Singularity, que estão localizados no diretório /opt/images
. Eventualmente, alguns podem estar disponíveis fora de containers, quando há necessidades específicas ou limitações técnicas.
Os aplicativos e programas disponíveis são:
Para instalar ou atualizar um aplicativo ou programa, você deve registrar um chamado [LNBio] Suporte EDB do Jira em HPCC Marvin: Aplicativos, Programas e Sistemas.
AlphaFold
O AlphaFold é um programa de modelagem de estrutura proteicas utilizando redes neurais artificiais (Deep Learning). Além de proteínas individuais, ele também permite modelar multímeros e complexos.
Para mais informações sobre o AlphaFold, acesse https://github.com/deepmind/alphafold/.
Como executar o AlphaFold no HPCC Marvin
Para executar o AlphaFold, são necessários os seguintes passos:
-
Crie uma pasta contendo o arquivo FASTA da(s) proteína(s) que deseja modelar. Exemplo:
fasta_dir
. -
Crie um script de submissão no SLURM através do
sbatch
Abaixo, está o conteúdo de um script de submissão (p. ex. sbatch nova_tarefa_alphafold.sh
) do job no SLURM:
#!/bin/sh
#SBATCH --job-name=alphafold
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --partition=short-gpu-small
#SBATCH --mem-per-cpu=8G
#SBATCH --gres=gpu:1g.5gb:1
# essa variável aponta para o banco de dados utilizado pelo alphafold (NÃO ALTERE)
ALPHAFOLD_DB=/public/alphafold_db_20220825
# imagem do singularity onde o alphafold está instalá-do (NÃO ALTERE)
ALPHAFOLD_SIF=/opt/images/alphafold/alphafold-2_3_2.sif
# essa variável aponta para o arquivo fasta (MUDE PARA O SEU ARQUIVO)
FASTA_FILE=./fasta_dir/P01308.fasta
# nome da pasta onde os modelos e resultados serão salvos (PODE MUDAR PARA UM NOME QUE ESCOLHER)
OUTPUT_DIR=./results
# comando de execução do AlphaFold
singularity run --nv -B $ALPHAFOLD_DB:/database $ALPHAFOLD_SIF \
--fasta_paths=$FASTA_FILE \
--output_dir=$OUTPUT_DIR \
--data_dir=/database/ \
--template_mmcif_dir=/database/pdb_mmcif/mmcif_files/ \
--obsolete_pdbs_path=/database/pdb_mmcif/obsolete.dat \
--uniref90_database_path=/database/uniref90/uniref90.fasta \
--mgnify_database_path=/database/mgnify/mgy_clusters_2018_12.fa \
--pdb70_database_path=/database/pdb70/pdb70 \
--uniclust30_database_path=/database/uniclust30/uniclust30_2018_08/uniclust30_2018_08 \
--bfd_database_path=/database/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
--max_template_date=`date +'%Y-%m-%d'` \
--use_gpu_relax
- Subsitua os valores das variáveis
ALPHAFOLD_SIF
,FASTA_FILE
eOUTPUT_DIR
conforme necessário.
O ALPHAFOLD_SIF
deve apontar para a imagem do Singularity do AlphaFold, que possui as seguintes versões:
- versão 2.3.2:
/opt/images/alphafold-2_3_2.sif
- versão 2.2.4:
/opt/images/alphafold-2_2_4.sif
- versão 2.2.3:
/opt/images/alphafold-2_2_3.sif
O FASTA_FILE
deve apontar para o arquivo FASTA da proteína que você deseja modelar.
O OUTPUT_DIR
é onde os resultados serão salvos.
- Submeta o script de submissão no SLURM. Você pode fazer isso através do comando
sbatch
:
sbatch nova_tarefa_alphafold.sh
Para verificar os argumentos aceitos pelo AlphaFold, você pode executar o seguinte comando:
singularity run /opt/images/alphafold/alphafold-2_3_2.sif --helpshort
Cellprofiler
O CellProfiler é um programa de código aberto amplamente utilizado para análise de imagens biológicas. Ele permite a quantificação de características celulares em imagens, facilitando a análise de grandes conjuntos de dados.
Para mais informações sobre o CellProfiler, acesse https://cellprofiler.org/.
Como executar o CellProfiler no Open OnDemand
Para executar o CellProfiler, são necessários os seguintes passos:
-
Acesse o Open OnDemand do HPCC Marvin em https://marvin.cnpem.br/.
-
Em
Interactive Apps
, abra umaVNC
. -
No formulário da VNC, selecione a partição
gui-gpu-small
e defina o número de horas, número de GPUs e número de CPUs conforme necessário. Clique emLaunch
. -
Uma nova janela será aberta com a VNC. Aguarde até que a VNC esteja ativa (
Running
) e clique emLaunch VNC
. -
Uma vez que a VNC estiver ativa, abra um terminal dentro da VNC.
-
No terminal, execute o seguinte comando para iniciar o CellProfiler:
singularity run --nv /opt/images/cellprofiler/cellprofiler-4_2_6.sif ~/Desktop/session.out
O CellProfiler possui as seguintes versões disponíveis:
- versão 4.2.6:
/opt/images/cellprofiler-4_2_6.sif
- versão 4.2.4:
/opt/images/cellprofiler-4_2_4.sif
Além disso, você também pode executar a CLI do CellProfiler diretamente no terminal (sem interface gráfica), utilizando o seguinte comando:
singularity run --nv /opt/images/cellprofiler/cellprofiler-4_2_6.sif -c -r -p proj.cppipe
-c
: Executa o CellProfiler em modo CLI (sem interface gráfica).-r
: Executa o pipeline na inicialização.-p
: Especifica o caminho para o pipeline que será executado (proj.cppipe
).
Ilastik
O Ilastik é uma ferramenta de aprendizado de máquina interativa para análise de imagens, especialmente útil para tarefas como segmentação, classificação e rastreamento de objetos em imagens biológicas.
Para mais informações sobre o Ilastik, acesse https://www.ilastik.org/documentation/.
Como executar o Ilastik no Open OnDemand
Para executar o Ilastik, são necessários os seguintes passos:
-
Acesse o Open OnDemand do HPCC Marvin em https://marvin.cnpem.br/.
-
Em
Interactive Apps
, abra umaVNC
. -
No formulário da VNC, selecione a partição
gui-gpu-small
e defina o número de horas, número de GPUs e número de CPUs conforme necessário. Clique emLaunch
. -
Uma nova janela será aberta com a VNC. Aguarde até que a VNC esteja ativa (
Running
) e clique emLaunch VNC
. -
Uma vez que a VNC estiver ativa, abra um terminal dentro da VNC.
-
No terminal, execute o seguinte comando para iniciar o Ilastik:
singularity run --nv /opt/images/ilastik/ilastik-1_4_0.sif
Além disso, você também pode executar a CLI do Ilastik diretamente no terminal (sem interface gráfica), utilizando o seguinte comando:
singularity run --nv /opt/images/ilastik/ilastik-1_4_0.sif --headless --project proj.ilp
NP³ MS Workflow - A Pipeline for LC-MS/MS Metabolomics Data Process and Analysis
O NP³ MS Workflow (v1.1.4) é uma coleção de scripts para melhorar agilizar a pesquisa em metabolômica untarget focada em descoberta de drogas com otimizações para produtos naturais.
É um procedimento automatizado para agrupar e quantificar os espectros MS² (MS/MS) associadas ao mesmo íon que foram eluídos em picos cromatográficos (MS1) concorrentes em uma coleção de amostras de experimentos LC-MS/MS.
Os possíveis resultados são:
- Tabela classificação de espectros candidatos responsáveis por hits observados em experimentos de bioatividade;
- Quantificação relativa de metabólitos presentes nas amostras;
- Grafo de redes moleculares para melhorar a análise e visualização dos resultados.
Tutorial em vídeo
- Tutorial 1: Brief introduction, 'Getting Started' section and a [M+H]+ analysis
Para entender melhor
Criando arquivo sbatch
Para usar o NP³ MS Workflow no HPC MARVIN, a forma mais eficiente é submentendo um job no seu gerenciador de filas slurm.
Neste job colocamos todos os comandos que devem ser executados em um arquivo de texto simples de extesão .sh
.
Cabeçalho
No cabeçalho os principais parametros são:
--jobname=<jobname>
| Nome do seu job;--ntaks=<numero>
| Número tarefas, geralmente 1 é suficiente;--cpus-per-task=<numero>
| Número de CPUS que serão usadas, se usar um valor diferente de1
lembre-se também modificar o parâmetro-l
(é a letra éle) em seurun
;--partition=<nome_particao>
| O NP³ não é otimizado para GPU, então escolha uma das filas de CPU (que geralmente são menos concorridas, então pode ser uma vantagem). As fila de CPU atualmente disponíveis são:- debug-cpu | até 30:00 min | Recomendada para testes;
- gui-cpu | até 12:00:00 horas | Recomendada para sessões VNC no OOD;
- short-cpu | até 5-00:00:00 dias | Recomendada para maioria dos trabalhos;
- long-cpu | até 15-00:00:0 dias | Recomendada para processamentos muito demorados.
Exemplo de cabeçalho:
#!/bin/bash
#SBATCH --job-name=NP3_MS_WORKFLOW_your_intuitive_name
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --partition=short-cpu
Corpo
No corpo do arquivo colocamos os comandos que serão executados. Nesse caso, é o comando para executar o np3_ms_workflow instalado dentro de um container do singularity e os parâmetros para execução.
Execução do NP³
Depois de ter enviado seus arquivos MZXML e metadado à sua área do OpenOnDemand, basta construir seu comando de processamento utilizando os endereços completos dos diretórios
Abaixo um exemplo para o run:
- Da usuário
marie.curie
; - Saída no diretório
tmps
dentro de suahome
; - Com metadao em pasta de mzxml em
Documentos\NPTest
, também dentro dahome
; - Tempos de tolerância de 1s para o mesmo batch e 2s geral;
- Verbose 10 que significa ligado para registro e ativa o teste de integridade no final (consulte o manual para mais opções).
Note que para quebrar a linha, e ficar mais legível, basta colcoar uma \
logo antes da quebra que o programa interpreta como estivesse tudo na mesma linha
singularity run /opt/images/NP3/ms_workflow/np3_ms_workflow.sif run \
-n NPTrial \
-o /home/marie.curie/tmps/ \
-m /home/marie.curie/Documentos/NPTest/marine_bacteria_lib_metadata.csv \
-d /home/luiz.alves/Documentos/NPTest/mzxml \
-t 1,2 \
-v 10
Arquivo final
Ao final, juntando tudo, temos arquivo como o abaixo que pode ser colocando em um arquivo my_np3_awsome_run.sh
e ser enviado ao slurm com o comando
sbatch my_np3_awsome_run.sh
Conteúdo final do my_np3_awsome_run.sh
:
#!/bin/bash
#SBATCH --job-name=NP3_MS_WORKFLOW_your_intuitive_name
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --partition=short-cpu
#SBATCH --mem-per-cpu=4G
# Execute a imagem Singularity com o comado NP3
singularity run /opt/images/NP3/ms_workflow/np3_ms_workflow.sif run \
-n NPTrial \
-o /home/marie.curie/tmps/ \
-m /home/marie.curie/Documentos/NPTest/marine_bacteria_lib_metadata.csv \
-d /home/luiz.alves/Documentos/NPTest/mzxml \
-t 1,2 \
-v 10
Usando o Job Composer do Onpen OnDemand (OOD)
O Open OnDemand é uma plataforma permite aos usuários executar aplicativos e jobs em sistemas de cluster remotos. Com o Job Composer, um componente integrado da plataforma Open OnDemand, os usuários podem facilmente criar e enviar jobs para o sistema de gerenciamento de fila. Neste tutorial passo a passo, você terá um exemplo de como usar o Job Composer para criar jobs para executar o NP³ MS_WORKFLOW.
-
Na interface inicial do OOD, após o login, entre na seção Job Composer dentro da aba jobs para acessar a ferramenta.
-
Clique no botão "New Job" na parte superior esquerda da tela para criar uma nova tarefa. Você pode escolher um template padrão ou um pré-criado. Para este exemplo, vamos no "From Default Template".
-
A direita da tela, você verá os quadros "Job Details" e "Submit Script" com os detalhes do arquivo padrão. Para modificá-lo e preenchê-lo, clique em "Open Editor" e abra o editor de texto (provavelmente ele virá em uma nova aba).
-
Aqui você terá um editor de texto onde poderá escrever os detalhes da sua tarefa. Realize as modificações necessárias e clique em Save no canto superior esquerdo, em seguida feche a aba.
-
Se você for realizar tarefas semelhantes no futuro, é uma boa ideia criar um template. Para fazer isso, clique no botão "Create Template".
-
5.1. Preencha ou modifique os dados do fomulário e clique em Save
-
5.2 Agora você poderá criar tarefas a partir deste template padrão, realizando apenas as modificações necessárias como visto nos itens 3 e 4.
-
-
Voltando ao Job Composer, agora é escolher e conferir o job criado (fazendo mais alterações se necessário) e clicar no botão verde >Submit.
-
Você pode acompanhar o status do seu job na seção "Active Jobs" na aba "Jobs". Aqui, você pode ver uma lista de todos os jobs ativos e já concluídos.
-
Para ver a saída do terminal durante o processamento do job, clique no botão Open in File Manager. Esta saída estará escrita no arquivo "slurm-xxxx.out".
-
E os arquivos gerados pelo processamento do NP³? Eles estarão na pasta indicada pelo parâmetro "-o" ou "--output_path" no RUN submetido.
Sistemas
Atualmente, os seguintes sistemas estão disponíveis para os usuários do LNBio:
Para instalar ou atualizar um sistema, você deve registrar um chamado [LNBio] Suporte EDB do Jira em HPCC Marvin: Aplicativos, Programas e Sistemas.
OMERO
Esta seção apresenta o repositório de imagens OMERO do LNBio, que está disponível em https://omero-lnbio.cnpem.br.
O OMERO é um sistema de gerenciamento de imagens científicas desenvolvido pelo Open Microscopy Environment (OME), que é uma plataforma de código aberto amplamente utilizada na comunidade científica para o armazenamento, visualização e compartilhamento de imagens de microscopia.
Para solicitar suporte ou ajuda com o OMERO, registre um chamado na [LNBio] Suporte EDB do Jira em OMERO: Suporte ao usuário.
Acesso pelo navegador 
Para acessar o OMERO pelo navegador, abra seu navegador e acesse:
https://omero-lnbio.cnpem.br
Na tela de login, use seu usuário (sem @lnbio.cnpem.br
) e senha institucional.
marie.curie@lnbio.cnpem.br
.
Logo, seu usuário é marie.curie
.

Após o login, você verá a interface web do OMERO:

Acessando grupos
Após realizar o login, você poderá selecionar o grupo de trabalho no qual deseja navegar.
No canto superior esquerdo da interface, clique no ícone de 👥 (grupos) para listar todos os grupos dos quais você faz parte. Ao passar o mouse sobre um grupo, os usuários pertencentes a ele serão exibidos.

Ao clicar sobre um usuário dentro de um grupo, você poderá visualizar, anotar ou editar imagens, dependendo das permissões configuradas para aquele grupo. Por padrão, os grupos permitem apenas visualização.

eLab
Esta seção apresenta o caderno eletrônico de laboratório eLab, que está disponível em https://elab.cnpem.br.
O eLab é um caderno eletrônico de laboratório (ELN) de código aberto, amplamente utilizado na comunidade científica para o registro e organização de dados experimentais. Ele permite que os pesquisadores documentem seus experimentos, compartilhem informações e colaborem de forma eficiente.
Para solicitar suporte ou ajuda com o eLab, registre um chamado na [LNBio] Suporte EDB do Jira em eLab: Suporte ao usuário.
Acesso pelo navegador 
Para acessar o eLab pelo navegador, abra seu navegador e acesse:
https://elab.cnpem.br
Na tela de login, use seu e-mail (p. ex., marie.curie@lnbio.cnpem.br
) e senha institucional.

Suporte ao usuário
O suporte aos usuários do HPCC Marvin é realizado pela [LNBio] Suporte EDB do Jira.
Para solicitar ajuda com problemas técnicos, dúvidas sobre o sistema ou pedidos de recursos adicionais, registre um chamado na opção HPCC Marvin: Suporte ao usuário.
Para instalar ou atualizar um aplicativo ou programa, você deve registrar um chamado na opção HPCC Marvin: Programas e Aplicativos.
Ao abrir um chamado, por favor, forneça sempre informações relevantes, como o nome do usuário (marie.curie
), o ID do job, a hora e a data em que ocorreu o problema e quaisquer mensagens de erro que você tenha recebido. Isso ajudará o suporte a identificar e resolver o problema com maior rapidez e eficiência.
Relatórios periódicos de uso do Marvin
Os relatórios periódicos de uso do Marvin são gerados anualmente, incluindo informações sobre o uso do sistema, como número de usuários, tempo de processamento, e tipos de trabalhos executados. Esses relatórios são úteis para entender a utilização do sistema e planejar melhorias.
Os relatórios anuais estão disponíveis no seguinte link: https://cnpem.github.io/marvin-reports/.
Data de Publicação | Referente ao Ano |
---|---|
2025-05-13 | 2024 |
2024-01-10 | 2023 |