Compilação e Configuração do LAMMPS em Cluster HPC com Intel Compiler e CUDA

Contetxo e Pré-requisitos Técnicos

O LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) exige um ambiente dedicado para compilação eficiente. Em infraestruturas baseadas em Sugon, a gestão de bibliotecas paralelas e aceleradoras requer manipulação precisa de camadas de software. Antes de iniciar, certifique-se de possuir acesso SSH, conhecimento básico de shell Linux e permissões adequadas para instalação local.

Gerenciamento de Módulos e Dependências

A plataforma utiliza sistemas de módulos para isolar ambientes. Limpe a sessão atual e carregue a stack de compilação recomendada:

# Reseta variáveis conflitantes
module purge

# Consulta versões disponíveis na hierarquia local
module avail

# Carrega stack otimizada: Toolchain Intel, MPI e FFTW de dupla precisão
module load compiler/intel/2021.3.0
module load mpi/intelmpi/2021.3.0
module load mathlib/fftw/intelmpi/3.3.9_double

# Garante ferramenta de geração de projetos (versão mínima 3.16)
module load compiler/cmake/3.20.1 || sudo dnf install cmake

# Valida ambiente final (evite sobreposição com GCC nativo)
module list

Persistência de Compiladores no Perfil de Usuário

Substitua o link de compiladores padrão para garantir compatibilidade com a toolchain Intel:

# Edita o perfil de inicialização do shell
nano ~/.bashrc <<'SH_PROFILE'
# Aponta para binários da suite Intel
export CC="icc"
export CXX="icpc"
SH_PROFILE

# Sincroniza variáveis sem reinicializar a conexão
source ~/.bashrc

# Comprovante de vinculação correta
echo "Path validado: CC=${CC} | CXX=${CXX}"

Extração e Estruturação do Repositório

Utilize o gerenciador de downloads padrão para obter o lançamento estável mais recente e organize o diretório de trabalho:

# Define raiz de instalação local e baixa artefato oficial
INSTALL_ROOT="$HOME/software/lammps"
wget -q "https://download.lammps.org/tars/lammps-stable.tar.gz" -O "lammps-latest.tar.gz"

# Prepara layout hierárquico
mkdir -p "${INSTALL_ROOT}/src/build"
tar -xzf lammps-latest.tar.gz --strip-components=1 -C "${INSTALL_ROOT}/src"

# Posiciona contexto para build
cd "${INSTALL_ROOT}/src/build"

Geração de Build com CMake

Configure Flags de aceleração. Para placas NVIDIA série A800/A100, utilize sm_80. Se operar exclusivamente em CPUs, comente a flag GPU:

# Variável configurável conforme arquitetura alvo
GPU_TARGET="-D GPU_ARCH=sm_80"

# Instrução principal de geração de projeto
cmake -C "../cmake/presets/intel.cmake" \
      -D BUILD_GPU=ON \
      -D GPU_API=cuda \
      ${GPU_TARGET} \
      -D CMAKE_C_COMPILER="${CC}" \
      -D CMAKE_CXX_COMPILER="${CXX}" \
      -D CMAKE_INSTALL_PREFIX="${INSTALL_ROOT}/bin" \
      ..

# Compilação distribuída usando núcleos físicos detectados automaticamente
PARALLEL_JOBS=$(nproc)
make -j${PARALLEL_JOBS} VERBOSE=1
make install

Caso ocorram erros de linkage ou pré-processamento, limpe o cache de build anterior (rm -rf *) e reexecute a configuração. Logs detalhados são gerados no terminal durante a etapa VERBOSE=1.

Validação Binária e Extensões

Execute a interface interativa para confirmar integridade do executável:

cd "${INSTALL_ROOT}/bin"
./lmp -in null

Para habilitar funcionalidades específicas como potencial ReaxFF ou pacotes de análise espacial, acesse o diretório src e controle as extensões compiladas:

cd "${INSTALL_ROOT}/src"

# Habilita coleção completa de pacotes oficiais
make yes-all

# Remove links contra bibliotecas externas desnecessárias
make no-lib

# Listagem de componentes ativos
make package

Tags: LAMMPS CMake Intel Compiler MPI CUDA

Publicado em 10-22 15:45