LAMMPS 22Jul2025 Update 5 - CUDA
Webpage
Version
22Jul2025 Update 5
Build Environment
- GCC 10.3.1 (gcc-toolset-10)
- Open MPI 4.1.8 (CUDA-aware)
- GSL 2.8
- OpenBLAS 0.3.29
- CUDA 13.0 update 2
- pyenv 2.6.17
Files Required
- lammps-src-22Jul2025_update5.tar.gz
- (some of files will be downloaded during the installation)
Build Procedure
#!/bin/sh
VERSION=2025-Jul22-u5
NAME=lammps-22Jul2025
INSTALL_PREFIX=/apl/lammps/${VERSION}-CUDABASEDIR=/home/users/${USER}/Software/LAMMPS/${VERSION}
LAMMPS_TARBALL=${BASEDIR}/lammps-src-22Jul2025_update5.tar.gzWORKDIR=/gwork/users/${USER}/lammps-cuda
LAMMPS_WORKDIR=${WORKDIR}/${NAME}FFMPEG_BIN=/apl/ffmpeg/6.1/bin/ffmpeg
VMD_MOLFILE_INC=/home/users/${USER}/Software/VMD/1.9.4/vmd-1.9.4a57/plugins/incl
ude
GSL_ROOT=/apl/gsl/2.8GPU_ARCH=sm_80
PARALLEL=12
#------------------------------------------------------------------
umask 0022
export LANG=C
ulimit -s unlimitedmodule -s purge
module -s load gcc-toolset/10
module -s load openmpi/4.1.8/gcc13-cuda13.0u2
module -s load gsl/2.8
#module -s load mkl/2023.2.0
module -s load openblas/0.3.29-lp64
module -s load cuda/13.0u2module -s load pyenv/2.6.17
export PYENV_ROOT=/apl/pyenv/repos/2.6.17
pyenv activate 3.12.12-lammps-22jul2025-cuda
eval "$(pyenv init -)"
PYTHONEXE=/apl/pyenv/repos/2.6.17/versions/3.12.12-lammps-22jul2025-cuda/bin/python
PYTHONINC=/apl/pyenv/repos/2.6.17/versions/3.12.12/include/python3.12
mkdir -p ${WORKDIR}
cd ${WORKDIR}
if [ -d ${NAME} ]; then
mv ${NAME} lammps_erase
rm -rf lammps_erase &
fitar zxf ${LAMMPS_TARBALL}
cd ${NAME}
# for FFT_SINGLE=on
sed -i -e '26i#include "force.h"' unittest/force-styles/test_fix_timestep.cpp
sed -i -e '29i#include "kspace.h"' unittest/force-styles/test_pair_style.cpp
# pass python exe path to MDI cmake
sed -i -e "59i\ -DPython_EXECUTABLE=${PYTHONEXE}" cmake/Modules/Packages/MDI.cmake
mkdir build && cd build
# Disabled PKGs:
# ADIOS, VTK: noavail
# GUI: manually disabled
# KIM: to avoid dependence to libkim-api.so.2
# INTEL: not necessary for gcc buildcmake ../cmake \
-DLAMMPS_MACHINE=rccs-cuda \
-DENABLE_TESTING=on \
-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpicxx \
-DCMAKE_Fortran_COMPILER=mpif90 \
-DCMAKE_C_FLAGS_RELEASE="-O3 -DNDEBUG" \
-DCMAKE_CXX_FLAGS_RELEASE="-O3 -DNDEBUG" \
-DCMAKE_Fortran_FLAGS_RELEASE="-O3 -DNDEBUG" \
-DPython_EXECUTABLE=${PYTHONEXE} \
-DPython_INCLUDE_DIR=${PYTHONINC} \
-DGSL_ROOT_DIR=${GSL_ROOT} \
-DBUILD_SHARED_LIBS=on \
-DBUILD_TOOLS=on \
-DBUILD_MPI=on \
-DBUILD_OMP=on \
-DBUILD_LAMMPS_GUI=off \
-DBUILD_WHAM=off \
-DFFT=FFTW3 \
-DFFT_SINGLE=on \
-DFFT_FFTW_THREADS=on \
-DWITH_JPEG=on \
-DWITH_PNG=on \
-DWITH_GZIP=on \
-DWITH_FFMPEG=on \
-DFFMPEG_EXECUTABLE=${FFMPEG_BIN} \
-DPKG_ADIOS=off \
-DPKG_AMOEBA=off \
-DPKG_APIP=on \
-DPKG_ASPHERE=on \
-DPKG_ATC=on \
-DPKG_AWPMD=on \
-DPKG_BOCS=on \
-DPKG_BODY=on \
-DPKG_BPM=on \
-DPKG_BROWNIAN=on \
-DPKG_CG-DNA=on \
-DPKG_CG-SPICA=on \
-DPKG_CLASS2=on \
-DPKG_COLLOID=on \
-DPKG_COLVARS=on \
-DPKG_COMPRESS=on \
-DPKG_CORESHELL=on \
-DPKG_DIELECTRIC=on \
-DPKG_DIFFRACTION=on \
-DPKG_DIPOLE=on \
-DPKG_DPD-BASIC=on \
-DPKG_DPD-MESO=on \
-DPKG_DPD-REACT=on \
-DPKG_DPD-SMOOTH=on \
-DPKG_DRUDE=on \
-DPKG_EFF=on \
-DPKG_ELECTRODE=on \
-DPKG_EXTRA-COMMAND=on \
-DPKG_EXTRA-COMPUTE=on \
-DPKG_EXTRA-DUMP=on \
-DPKG_EXTRA-FIX=on \
-DPKG_EXTRA-MOLECULE=on \
-DPKG_EXTRA-PAIR=on \
-DPKG_FEP=on \
-DPKG_GPU=on \
-DGPU_API=cuda \
-DGPU_ARCH=${GPU_ARCH} \
-DPKG_GRANULAR=on \
-DPKG_H5MD=on \
-DPKG_INTEL=off \
-DPKG_INTERLAYER=on \
-DPKG_KIM=off \
-DDOWNLOAD_KIM=off \
-DPKG_KOKKOS=off \
-DPKG_KSPACE=on \
-DPKG_LATBOLTZ=on \
-DPKG_LEPTON=on \
-DPKG_MACHDYN=on \
-DDOWNLOAD_EIGEN3=on \
-DPKG_MANIFOLD=on \
-DPKG_MANYBODY=on \
-DPKG_MC=on \
-DPKG_MDI=on \
-DDOWNLOAD_MDI=on \
-DPKG_MEAM=on \
-DPKG_MESONT=on \
-DPKG_MGPT=on \
-DPKG_MISC=on \
-DPKG_ML-HDNNP=off \
-DDOWNLOAD_N2P2=off \
-DPKG_ML-IAP=on \
-DMLIAP_ENABLE_PYTHON=on \
-DPKG_ML-PACE=on \
-DPKG_ML-POD=on \
-DPKG_ML-QUIP=on \
-DDOWNLOAD_QUIP=on \
-DPKG_ML-RANN=on \
-DPKG_ML-SNAP=on \
-DPKG_ML-UF3=on \
-DPKG_MOFFF=on \
-DPKG_MOLECULE=on \
-DPKG_MOLFILE=on \
-DMOLFILE_INCLUDE_DIR=${VMD_MOLFILE_INC} \
-DPKG_NETCDF=on \
-DPKG_OPENMP=on \
-DPKG_OPT=on \
-DPKG_ORIENT=on \
-DPKG_PERI=on \
-DPKG_PHONON=on \
-DPKG_PLUGIN=on \
-DPKG_PLUMED=on \
-DDOWNLOAD_PLUMED=on \
-DPKG_POEMS=on \
-DPKG_PTM=on \
-DPKG_PYTHON=on \
-DPKG_QEQ=on \
-DPKG_QMMM=on \
-DPKG_QTB=on \
-DPKG_REACTION=on \
-DPKG_REAXFF=on \
-DPKG_REPLICA=on \
-DPKG_RHEO=on \
-DPKG_RIGID=on \
-DPKG_SCAFACOS=on \
-DDOWNLOAD_SCAFACOS=on \
-DPKG_SHOCK=on \
-DPKG_SMTBQ=on \
-DPKG_SPH=on \
-DPKG_SPIN=on \
-DPKG_SRD=on \
-DPKG_TALLY=on \
-DPKG_UEF=on \
-DPKG_VORONOI=on \
-DDOWNLOAD_VORO=on \
-DPKG_VTK=off \
-DPKG_YAFF=on \
-DBLA_VENDOR=OpenBLAS \
-DBLA_PREFER_PKGCONFIG=on \
-DCMAKE_BUILD_TYPE=Release#make -j ${PARALLEL}
make VERBOSE=1 -j ${PARALLEL}export OMP_NUM_THREADS=2
#make test
make install
cp -a ../examples ${INSTALL_PREFIX}
mkdir -p ${INSTALL_PREFIX}/lib64/python
cp -r ../python/lammps ${INSTALL_PREFIX}/lib64/python
ln -s ${INSTALL_PREFIX}/lib64/liblammps_rccs-cuda.so \
${INSTALL_PREFIX}/lib64/python/lammps/liblammps.so
cd ${INSTALL_PREFIX}
for f in etc/profile.d/*; do
if [ -f $f ]; then
ln -s $f .
fi
donecd lib64
if [ -f liblammps_rccs-cuda.so ]; then
ln -s liblammps_rccs-cuda.so liblammps.so
fi
if [ -f liblammps_rccs-cuda.so.0 ]; then
ln -s liblammps_rccs-cuda.so.0 liblammps.so.0
fi
Test
Tested on ccgpu using the following script.
#!/bin/sh
VERSION=2025-Jul22-u5
NAME=lammps-22Jul2025
INSTALL_PREFIX=/apl/lammps/${VERSION}-CUDA
#INSTALL_PREFIX=/home/users/qf7/Software/LAMMPS/${VERSION}/gcc10-cudaBASEDIR=/home/users/${USER}/Software/LAMMPS/${VERSION}
LAMMPS_TARBALL=${BASEDIR}/lammps-src-22Jul2025_update5.tar.gzWORKDIR=/gwork/users/${USER}/lammps-cuda
LAMMPS_WORKDIR=${WORKDIR}/${NAME}GPU_ARCH=sm_80
FFMPEG_BIN=/apl/ffmpeg/6.1/bin/ffmpeg
VMD_MOLFILE_INC=/home/users/${USER}/Software/VMD/1.9.4/vmd-1.9.4a57/plugins/include
GSL_ROOT=/apl/gsl/2.8
PARALLEL=12#------------------------------------------------------------------
umask 0022
export LANG=C
ulimit -s unlimited
export OMP_NUM_THREADS=1module -s purge
module -s load gcc-toolset/10
module -s load openmpi/4.1.8/gcc13-cuda12.8u1
module -s load gsl/2.8
module -s load openblas/0.3.29-lp64
module -s load cuda/12.8u1module -s load pyenv/2.6.17
export PYENV_ROOT=/apl/pyenv/repos/2.6.17
pyenv activate 3.12.12-lammps-22jul2025-cuda
eval "$(pyenv init -)"
PYTHONEXE=/apl/pyenv/repos/2.6.17/versions/3.12.12-lammps-22jul2025-cuda/bin/python
PYTHONINC=/apl/pyenv/repos/2.6.17/versions/3.12.12/include/python3.12export PYTHONPATH=${INSTALL_PREFIX}/lib64/python
cd ${WORKDIR}
cd ${NAME}
cd build
make test # need to do it separately...
- 616:TestMliapPyUnified test failed additionally.
- Failed to load python environment in the test? (failed to load numpy)
Installed Packages
APIP ASPHERE ATC AWPMD BOCS BODY BPM BROWNIAN CG-DNA CG-SPICA CLASS2 COLLOID
COLVARS COMPRESS CORESHELL DIELECTRIC DIFFRACTION DIPOLE DPD-BASIC DPD-MESO
DPD-REACT DPD-SMOOTH DRUDE EFF ELECTRODE EXTRA-COMMAND EXTRA-COMPUTE
EXTRA-DUMP EXTRA-FIX EXTRA-MOLECULE EXTRA-PAIR FEP GPU GRANULAR H5MD
INTERLAYER KSPACE LATBOLTZ LEPTON MACHDYN MANIFOLD MANYBODY MC MDI MEAM MESONT
MGPT MISC ML-IAP ML-PACE ML-POD ML-QUIP ML-RANN ML-SNAP ML-UF3 MOFFF MOLECULE
MOLFILE NETCDF OPENMP OPT ORIENT PERI PHONON PLUGIN PLUMED POEMS PTM PYTHON
QEQ QMMM QTB REACTION REAXFF REPLICA RHEO RIGID SCAFACOS SHOCK SMTBQ SPH SPIN
SRD TALLY UEF VORONOI YAFF
Notes
- Almost the same procedure as 22Jul2025 Update 3 (CUDA).
- ML-IAP is also enabled for this build. Python environment involving cuda is also used.
- Python package of lammps is tentatively enabled.
- "import lammps" would work when module is loaded.
- (PYTHONPATH etc. is defined in the module.)