一、配置准备:
1. 配置说明
本次安装采用的方式为编译安装,源码包及其版本分别为lammps-src-22Jul2025_update1,下载地址分别如下:
本次安装使用到的部分工具为额外包。编译安装存在依赖关系,除手动下载各组件,亦可指定使用已有的组件。部分组件下载链接如下:
https://github.com/Kitware/CMake/releases/download/v3.31.9/cmake-3.31.9-linux-x86_64.tar.gz
https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.0.tar.gz
https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-14.3.0/gcc-14.3.0.tar.gz
https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.gz
https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.2.tar.gz
https://ftp.gnu.org/gnu/mpc/mpc-1.3.0.tar.gz
https://developer.nvidia.com/cuda-12-8-1-download-archive
https://codeload.github.com/ornladios/ADIOS2/tar.gz/refs/tags/v2.10.2
https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.6/hdf5-1.14.6.tar.gz
https://www.fftw.org/fftw-3.3.10.tar.gz
2. 配置准备
a) 对于LAMMPS:
本次安装LAMMPS使用的编译链分为启用GPU和CUDA的OMPI-GCC-CUDA与不启用的OMPI-GCC-CPU,其依赖或工具及其版本为:
CMake-3.31.9
OMPI-4.1.0
GCC-14.3.0
CUDA-12.8
ADIOS2-2.10.2
-- HDF5-1.14.6
FFTW-3.3.10
其中,HDF5-1.14.6为并行版,其为ADIOS2-2.10.2的依赖。
a) CMake安装
官方提供了CMake的二进制包,将其下载并解压至<cmake_install_prefix>路径即可。
b) OMPI编译与安装
OMPI的编译安装方式较为标准。
tar -zxf openmpi-4.1.0.tar.gz
cd openmpi-4.1.0
./configure --prefix=<openmpi_install_prefix>
make
make install
c) GCC编译与安装
GCC有多个依赖组件,此处安装的GCC 14.3.0对组件及其版本依赖为:
GMP ≥ 5
MPFR ≥ 4.1.0
MPC ≥ 0.8.0
GCC支持将依赖源码与GCC一起构建的方式进行安装,即将依赖组件源码放入GCC源码中,可实现对库的自动识别核构建,文件树示意如下:
gcc-14.3.0/
├── configure
├── Makefile.in
├── gmp/
├── mpfr/
├── mpc/
└──…./
注意:
之后再通过命令进行编译安装:
../gcc-14.3.0/configure \
--prefix=<gcc_install_prefix> \
--enable-languages=c,c++,fortran \
--disable-multilib \
--disable-bootstrap
make -j$(nproc)
make install
其部分参数解释如下:
--enable-languages=c,c++,fortran # 启用gfortran
--enable-multilib # 禁用32位编译器和库的生成
--disable-bootstrap # 跳过GCC自检机制
d) CUDA安装
NVIDIA官方提供了各版本CUDA的run文件,通过选择对应参数即可进行下载,运行即可以简单的终端图形界面进行交互操作。可使用--help或是官方链接查看各个详细安装选项:
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#meta-packages
此处安装使用的命令如下,不触发交互模式静默安装,仅安装CUDA Toolkit:
bash cuda_12.8.1_570.124.06_linux.run --silent --toolkit --toolkitpath=<cuda_install_prefix> --samplespath=<cuda_install_prefix>/samples --no-man-page
e) HDF5与ADIOS2编译与安装
有关ADIOS2:https://github.com/ornladios/ADIOS2
HDF5的并行是通过使用选项实现的,通过--enable-parallel开启MPI-IO,并使用CC、CXX、FC指定上述安装的编译器:
./configure \
--prefix=<hdf5_install_prefix> \
--enable-parallel \
--enable-shared \
CC=<openmpi_install_prefix>/bin/mpicc \
CXX=<openmpi_install_prefix>/bin/mpicxx \
FC=<openmpi_install_prefix>/bin/mpifort
make -j$(nproc)
make install
同理,ADIOS2的并行也是通过选项实现使用-DADIOS2_USE_HDF5=ON启用支持,在编译前为cmake配置环境变量即可:
export PATH=<cmake_install_prefix>/bin:$PATH
cmake /tmp/ADIOS2-2.10.2 \
-D CMAKE_INSTALL_PREFIX=<adios2_install_prefix> \
-D CMAKE_C_COMPILER=<gcc_install_prefix>/bin/gcc \
-D CMAKE_CXX_COMPILER=<gcc_install_prefix>/bin/g++ \
-D CMAKE_Fortran_COMPILER=<gcc_install_prefix>/bin/gfortran \
-D MPI_C_COMPILER=<openmpi_install_prefix>/bin/mpicc \
-D MPI_CXX_COMPILER=<openmpi_install_prefix>/bin/mpicxx \
-D MPI_Fortran_COMPILER=<openmpi_install_prefix>/bin/mpifort \
-D ADIOS2_USE_HDF5=ON \
-D ADIOS2_USE_MPI=ON \
-D ADIOS2_USE_ZeroMQ=OFF \
-D HDF5_ROOT=<hdf5_install_prefix> \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON
make -j$(nproc)
make install
附:ADIOS2所有选项说明如下:
https://adios2.readthedocs.io/en/v2.10.2/setting_up/setting_up.html
f) FFTW编译与安装
FFTW可以编译单精度或者双精度两种类型库,在编译安装了一种类型后,通过修改选项的方式可以重新将另一精度库补充到安装目录。
./configure \
--prefix=<fftw_install_prefix> \
--enable-shared \
--enable-threads \
--enable-openmp \
CC=<gcc_install_prefix>/bin/gcc
make -j$(nproc)
make install
若需要额外编译单精度版,只需添加选项--enable-float即可。
二、应用安装
注:在应用编译时通常需要使用到cmake,故可以将cmake添加到环境变量中:
export PATH=<cmake_install_prefix>/bin:$PATH
此外,在编译阶段通过直接指定绝对路径的方式选择依赖或工具,通常不再需要额外配置环境变量,但是在运行工具时需要补充相对应的环境变量,例如:
export LD_LIBRARY_PATH=\
<gcc_install_prefix>/lib64:
<openmpi_install_prefix>/lib:
<fftw_install_prefix>/lib:
<adios2_install_prefix>/lib64:
<cuda_install_prefix>/lib64:
$LD_LIBRARY_PATH
亦或者以模块方式加载这些依赖或工具。
1. LAMMPS
本次LAMMPS的编译安装分为两种:带有CUDA加速的版本(CUDA)和不带的版本(CPU),二者的区别在于是否通过选项开启GPU和CUDA的相关支持,或者是否使用预设中的gpu-cuda.cmake文件:
-D PKG_GPU=ON -D GPU_API=cuda \
-D CUDAToolkit_ROOT=<cuda_install_prefix> -D BIN2C=<cuda_install_prefix>/bin/bin2c
以GPU版本为例,其使用的cmake构建命令如下:
cmake -C ../cmake/presets/gpu-cuda.cmake ../cmake \
-D CMAKE_C_COMPILER=<gcc_install_prefix>/bin/gcc \
-D CMAKE_CXX_COMPILER=<gcc_install_prefix>/bin/g++ \
-D MPI_C_COMPILER=<openmpi_install_prefix>/bin/mpicc \
-D MPI_CXX_COMPILER=<openmpi_install_prefix>/bin/mpicxx \
-D CMAKE_INSTALL_PREFIX=<lammps_cpu_install_prefix> \
-D FFT=FFTW3 -D FFTW3_ROOT=<fftw_install_prefix> \
-D PKG_ADIOS2=ON -D ADIOS2_DIR=<adios2_install_prefix>/lib64/cmake/adios2 \
-D BUILD_MPI=ON -D BUILD_OMP=ON \
-D PKG_GPU=ON -D GPU_API=cuda \
-D CUDAToolkit_ROOT=<cuda_install_prefix> -D BIN2C=<cuda_install_prefix>/bin/bin2c
LAMMPS会自动下载所需mesocnt文件,若其下载速度过慢,亦可复制LAMMPS提示的下载链接手动下载,然后将其导入至lammps-22Jul2025/potentials/目录下重新进行cmake构建。
在构建完成后进行编译安装即可:
make -j$(nproc)
make install
附:ADIOS2所有选项说明如下:
https://docs.lammps.org/Build_package.html
