Guia de Instalação: ORCA 6.1 e OpenMPI 4.1.8 no Cluster COARACI

Guia Completo de Instalação do ORCA 6.1 e OpenMPI 4.1.8 no Cluster COARACI

Este guia detalha o processo completo para instalar o software de química quântica ORCA 6.1.0 e a sua dependência específica, OpenMPI 4.1.8, num diretório de utilizador no cluster COARACI. O processo abrange desde a transferência de ficheiros, passando pela compilação e configuração, até à verificação e resolução de problemas comuns.

Pré-requisitos

  • Acesso de utilizador ao cluster COARACI (neste guia, o utilizador é jferreir com o diretório pessoal /home/users/jferreir/).
  • Os seguintes ficheiros de instalação no seu computador local:
    • openmpi-4.1.8.tar.gz
    • orca_6_1_0_linux_x86-64_shared_openmpi418_avx2.tar.xz

Parte I: Transferência dos Ficheiros para o Servidor

O primeiro passo é mover os ficheiros de instalação do seu computador local para o seu diretório pessoal no COARACI.

1.1 Acesso via "Jump Host"

O cluster COARACI não é diretamente acessível a partir da internet. É necessário passar por um servidor de entrada (jump host) chamado gate.ifi.unicamp.br. Tentativas de ligação direta a coaraci.ifi.unicamp.br resultarão num erro de Connection timed out.

A solução é usar a opção -J (ProxyJump) no comando scp, que automatiza a ligação através do jump host.

1.2 Executando a Transferência

Abra um terminal no seu computador local, navegue para o diretório onde os ficheiros estão guardados (ex: /home/fabio/Documentos/) e execute os seguintes comandos. Substitua jferreir pelo seu nome de utilizador, se for diferente.

Transferir o OpenMPI:

scp -J jferreir@gate.ifi.unicamp.br openmpi-4.1.8.tar.gz jferreir@coaraci.ifi.unicamp.br:/home/users/jferreir/

Transferir o ORCA:

scp -J jferreir@gate.ifi.unicamp.br orca_6_1_0_linux_x86-64_shared_openmpi418_avx2.tar.xz jferreir@coaraci.ifi.unicamp.br:/home/users/jferreir/
Nota: Ser-lhe-á pedida a palavra-passe duas vezes para cada comando: primeiro para gate.ifi.unicamp.br e depois para coaraci.ifi.unicamp.br.

1.3 Verificação da Transferência

Inicie sessão no COARACI (também através do jump host) e verifique se os ficheiros chegaram.

ssh -J jferreir@gate.ifi.unicamp.br jferreir@coaraci.ifi.unicamp.br
ls -lh

A saída deve ser semelhante a esta, confirmando que os ficheiros estão no seu diretório pessoal com os tamanhos corretos.

-rwxr-xr-x 1 jferreir DSUsers  18M Aug  1 19:40 openmpi-4.1.8.tar.gz
-rwxr-xr-x 1 jferreir DSUsers 551M Aug  1 19:46 orca_6_1_0_linux_x86-64_shared_openmpi418_avx2.tar.xz

Parte II: Organização, Extração e Compilação

Agora no servidor COARACI, vamos organizar os ficheiros, extrair o seu conteúdo e compilar o OpenMPI.

2.1 Organizar os Ficheiros

Para manter o seu diretório pessoal limpo, criaremos uma estrutura dedicada para as aplicações.

# Criar um diretório para aplicações e uma subpasta para os ficheiros de origem
mkdir -p ~/apps/src

# Mover os arquivos de instalação para a pasta de origem
mv ~/openmpi-4.1.8.tar.gz ~/apps/src/
mv ~/orca_6_1_0_linux_x86-64_shared_openmpi418_avx2.tar.xz ~/apps/src/

2.2 Extrair os Arquivos

Navegue para o diretório de origem e extraia os arquivos.

cd ~/apps/src

# Extrair OpenMPI (.tar.gz)
tar -xvzf openmpi-4.1.8.tar.gz

# Extrair ORCA (.tar.xz)
tar -xvf orca_6_1_0_linux_x86-64_shared_openmpi418_avx2.tar.xz

2.3 Implementar o ORCA

O ORCA é pré-compilado. A "instalação" consiste apenas em mover a pasta extraída para o seu local final.

# Ainda dentro de ~/apps/src
mv orca_6_1_0_linux_x86-64_shared_openmpi418_avx2/ ~/apps/

2.4 Compilar o OpenMPI

O OpenMPI deve ser compilado a partir do código-fonte para garantir a compatibilidade com o sistema.

Passo 1: Verificar os núcleos disponíveis

Para acelerar a compilação, verificamos quantos núcleos de processador estão disponíveis no nó de login.

nproc

A saída no COARACI foi 16. É uma boa prática usar um número ligeiramente inferior ao total (ex: 12) para não sobrecarregar o nó de login partilhado.

Passo 2: Configurar, Compilar e Instalar

Execute os seguintes comandos a partir do diretório de origem do OpenMPI.

# Navegar para o diretório do OpenMPI
cd ~/apps/src/openmpi-4.1.8/

# Configurar a compilação, especificando o diretório de instalação final
./configure --prefix=/home/users/jferreir/apps/openmpi-4.1.8

# Compilar usando 12 núcleos
make -j 12 all

# Instalar os ficheiros compilados no diretório especificado pelo --prefix
make install
Sucesso: Se todos os comandos forem executados sem erros, o OpenMPI está agora instalado em ~/apps/openmpi-4.1.8.

Parte III: Configuração do Ambiente com um Módulo Pessoal

Em vez de modificar diretamente o ficheiro ~/.bashrc, criaremos um módulo de ambiente pessoal. Esta é uma abordagem mais robusta e flexível para gerir software em ambientes HPC.

3.1 Criar a Estrutura do Módulo

mkdir -p ~/privatemodules/orca

3.2 Criar o Ficheiro de Definição do Módulo

Use um editor de texto como o nano para criar o ficheiro do módulo.

nano ~/privatemodules/orca/6.1.0

3.3 Adicionar Conteúdo ao Ficheiro do Módulo

Copie e cole o seguinte código Tcl para dentro do editor nano. Este código define todos os caminhos necessários e inclui a correção para o problema da rede InfiniBand que descobrimos mais tarde.

#%Module1.0#####################################################################
##
## Ficheiro de módulo pessoal para orca/6.1.0
##
proc ModulesHelp { } {
    puts stderr "\tEste módulo carrega o ambiente para o ORCA 6.1.0 e a sua dependência OpenMPI 4.1.8 compilada pelo utilizador."
}

module-whatis   "Configura o ambiente para ORCA 6.1.0 com OpenMPI 4.1.8 personalizado"

# Define os caminhos de instalação
set orca_root    /home/users/jferreir/apps/orca_6_1_0_linux_x86-64_shared_openmpi418_avx2
set openmpi_root /home/users/jferreir/apps/openmpi-4.1.8

# Adiciona os caminhos dos binários ao PATH
# A ordem é importante: o OpenMPI deve vir primeiro.
prepend-path    PATH            $openmpi_root/bin
prepend-path    PATH            $orca_root

# Adiciona os caminhos das bibliotecas ao LD_LIBRARY_PATH
# Essencial para que o ORCA encontre as bibliotecas.so corretas em tempo de execução.
prepend-path    LD_LIBRARY_PATH $openmpi_root/lib
prepend-path    LD_LIBRARY_PATH $orca_root

# Contorna o erro de inicialização do OpenFabrics no nó de login
setenv OMPI_MCA_btl "^openib"

Pressione Ctrl+X, depois Y e Enter para guardar e sair.

3.4 Tornar o Módulo Detetável

Adicione o seu diretório de módulos ao MODULEPATH no seu .bashrc.

echo 'module use --append ~/privatemodules' >> ~/.bashrc

3.5 Ativar as Alterações

Para aplicar as alterações à sua sessão atual, execute:

source ~/.bashrc

Parte IV: Verificação Completa do Sistema

Esta fase final valida toda a instalação, reproduzindo os passos de depuração que foram necessários para alcançar o sucesso.

4.1 Carregar o Módulo e Verificar os Caminhos

# Carregar o ambiente do ORCA
module load orca/6.1.0

# Verificar se o sistema encontra os executáveis corretos
which orca
which mpirun

As saídas esperadas devem apontar para os diretórios dentro de /home/users/jferreir/apps/.

4.2 Preparar o Diretório de Teste

mkdir ~/orca_test && cd ~/orca_test

4.3 Teste em Série (Single-Core)

# Criar o ficheiro de entrada
cat > water_serial.inp << EOF
! HF DEF2-SVP
* xyz 0 1
O 0.0000 0.0000 0.0626
H -0.7920 0.0000 -0.4973
H 0.7920 0.0000 -0.4973
*
EOF

# Executar o cálculo
orca water_serial.inp > water_serial.out

# Verificar o sucesso
grep "ORCA TERMINATED NORMALLY" water_serial.out
Resultado: O comando deve imprimir ****ORCA TERMINATED NORMALLY****, confirmando que o executável base funciona.

4.4 Teste em Paralelo (Multi-Core) - A Solução Final

Este teste valida a integração com o OpenMPI e inclui as correções que descobrimos serem necessárias.

Contexto do Problema: Uma execução paralela simples falhou inicialmente devido a um erro de comunicação com o hardware de rede de alta velocidade (InfiniBand/OpenFabrics) no nó de login. A solução, já incluída no nosso ficheiro de módulo, é instruir o OpenMPI a ignorar este hardware (OMPI_MCA_btl='^openib').
Contexto do Problema 2: A documentação e a experiência prática mostraram que, para execuções paralelas, o ORCA deve ser chamado com o seu caminho absoluto e completo para evitar que se perca ao tentar encontrar os seus próprios componentes paralelos.
# Criar o ficheiro de entrada para o teste paralelo
cat > water_parallel.inp << EOF
! HF DEF2-SVP
%pal
  nprocs 4
end
* xyz 0 1
O 0.0000 0.0000 0.0626
H -0.7920 0.0000 -0.4973
H 0.7920 0.0000 -0.4973
*
EOF

# Executar o cálculo usando o caminho completo (MUITO IMPORTANTE)
/home/users/jferreir/apps/orca_6_1_0_linux_x86-64_shared_openmpi418_avx2/orca water_parallel.inp > water_parallel.out

# Verificar o sucesso
grep "ORCA TERMINATED NORMALLY" water_parallel.out
Resultado Final: O comando deve imprimir ****ORCA TERMINATED NORMALLY****. Isto confirma que a instalação completa, incluindo a compilação do OpenMPI, a configuração do módulo e as correções de execução, está a funcionar perfeitamente.

Conclusão e Boas Práticas

O seu ambiente para o ORCA 6.1.0 está agora totalmente operacional no cluster COARACI. O uso de um módulo pessoal garante uma gestão limpa e flexível do seu ambiente de software.

Fluxo de Trabalho Recomendado:

  1. Inicie uma nova sessão no COARACI.
  2. Carregue o seu ambiente ORCA com: module load orca/6.1.0.
  3. Para execuções em série, pode usar o comando orca.
  4. Para execuções em paralelo, use sempre o caminho completo para o executável: /home/users/jferreir/apps/orca_.../orca seu_input.inp > seu_output.out.

Como Citar nas Publicações

É uma prática académica importante citar os recursos computacionais e o software utilizado.

  • Citar o Cluster COARACI: "Agradecemos o uso do cluster Coaraci (Fapesp Proc. 2019/17874-0) e ao Center for Computing in Engineering and Sciences at Unicamp (Fapesp Proc. 2013/08293-7)." [1]
  • Citar o ORCA: O programa ORCA fornece uma lista detalhada das publicações a citar no final de cada ficheiro de saída. A citação geral do programa é: Neese, F. *Wiley Interdiscip. Rev.: Comput. Mol. Sci.*, **2012**, 2, 73–78. [2]

Comentários