Guia: Rodando o ORCA em Paralelo com Apptainer

Guia: Rodando o ORCA em Paralelo com o Contêiner que Você Já Criou

A Excelente Notícia: Você já fez 99% do trabalho! O seu contêiner orca.sif já tem tudo o que precisa para rodar em paralelo.

Por que não preciso instalar o OpenMPI?

O nome do arquivo que você baixou, orca_6_1_0_linux_x86-64_shared_openmpi418_avx2.tar.xz, nos diz que o ORCA foi compilado para usar a versão 4.1.8 do OpenMPI, e essa versão já vem incluída no pacote.

O arquivo orca.def que criamos já configura o ambiente para que o ORCA encontre e use essa versão interna. Tentar instalar outra versão de OpenMPI causaria conflitos e erros.

O que precisamos fazer é simplesmente dizer ao ORCA para usar múltiplos processadores.


Passo a Passo para Executar em Paralelo

Passo 1: Modifique o Arquivo de Input do ORCA (.inp)

A forma de pedir ao ORCA para usar múltiplos núcleos é através da palavra-chave PAL no seu arquivo de input.

Vamos criar um novo arquivo de teste para 4 núcleos.

1. Crie o arquivo de input paralelo:

nano test_paralelo.inp

2. Cole o conteúdo abaixo. A única diferença é a linha ! PAL4, que solicita 4 processadores (cores).

! B3LYP 6-31G* PAL4

* xyz 0 1
 O 0.00000 0.00000 0.11730
 H 0.00000 0.75720 -0.46920
 H 0.00000 -0.75720 -0.46920
*

Salve e saia (Ctrl+X, Y, Enter).

Passo 2: Execute o Cálculo

Agora, execute o contêiner exatamente como antes. O ORCA, ao ler a instrução ! PAL4, irá automaticamente gerenciar a execução paralela usando o OpenMPI que está dentro do contêiner.

apptainer exec orca.sif orca test_paralelo.inp > test_paralelo.out

O próprio ORCA se encarrega de iniciar os 4 processos. Você pode abrir o gerenciador de tarefas do seu sistema e verá 4 processos "orca_main" ou similar em execução enquanto o cálculo está rodando.

Passo 3: Verifique o Resultado

Como antes, a melhor forma de verificar o sucesso é com o comando grep.

grep "ORCA TERMINATED NORMALLY" test_paralelo.out

Além disso, você pode abrir o arquivo test_paralelo.out e procurar por "Number of processes". Você deverá encontrar uma seção que confirma que o cálculo foi rodado em paralelo.


(Avançado) E para Rodar em um Cluster (HPC)?

Em um ambiente de cluster (High-Performance Computing), você geralmente usa um agendador de tarefas como o Slurm. O princípio é o mesmo, mas você pede os processadores ao Slurm, que então os entrega ao seu contêiner.

Um script de submissão para o Slurm (ex: run_orca.sbatch) se pareceria com isto:

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=4  # Peça 4 núcleos aqui
#SBATCH --job-name=ORCA_test

# Carregue o módulo do Apptainer se necessário
# module load apptainer

# Execute o contêiner usando srun
srun apptainer exec /caminho/para/seu/orca.sif orca seu_calculo.inp > seu_calculo.out
O comando srun do Slurm se comunica com o OpenMPI dentro do contêiner Apptainer para gerenciar o paralelismo corretamente. Isso é conhecido como "Hybrid MPI" e é uma das grandes vantagens de usar contêineres em HPC.

Comentários

Postagens mais visitadas deste blog