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