经验怪谈

技术文章

LAMMPS 22Jul2025 安装

Rocky 9 要先开 CRB 才能装 OpenBLAS。常用 package 按需 yes-,不要默认 yes-all。

2026-09-14 · 科研软件 · 编译与依赖 · HPC / 集群 · Linux / 服务器

在 Rocky Linux 9.4 一类环境、已有 MPI 的前提下编译。路径按 /opt/software/lammps-22Jul2025 示例。

安装前的准备

下载并安装编译工具:

sudo yum install -y gcc gcc-c++ gcc-gfortran make cmake fftw-devel
# Debian / Ubuntu:
sudo apt update
sudo apt install -y gcc g++ gfortran make cmake libfftw3-dev

下载:LAMMPS 官网

sudo wget https://download.lammps.org/tars/lammps-22Jul2025.tar.gz
sudo tar -zxvf lammps-22Jul2025.tar.gz

官网直链有时很慢,换镜像或浏览器下完再拷到机器上,后面 tar 不变。

OpenBLAS

RHEL 9 / Rocky 9 的数学库开发包在 CRB 仓库,要先启用:

sudo dnf install dnf-plugins-core -y
sudo dnf config-manager --set-enabled crb
sudo dnf install openblas openblas-devel -y
ls -l /usr/lib64/libopenblas*

Ubuntu / Debian:

sudo apt update
sudo apt install libopenblas-dev -y

装完一般在 /usr/lib/x86_64-linux-gnu/libopenblas.so。确认:

find /usr -name "libopenblas.so*"

编译(make)

cd /opt/software/lammps-22Jul2025/src
sudo make package-status

此时各模块多为 NO。要装的改成 YES

make yes-asphere yes-rigid yes-colloid yes-class2 yes-molecule yes-kspace yes-manybody yes-dipole
make yes-gpu

GPU 包要单独处理(make yes-gpu 后再按 GPU makefile 编)。需要全部非冲突标准包时原文有:

# make yes-all

不要一上来 yes-all,冲突包会把编译拖垮。

并行可执行文件:

make -j$(nproc) mpi
make -j$(nproc) mpi MODE=exe MAKEFILE=Makefile.intel_cpu_intelmpi
make -j$(nproc) mpi MODE=exe MAKEFILE=Makefile.g++_openmpi

按你实际用的编译器选一条,不必三条都跑。

路径

写入 ~/.bashrc

export PATH=/opt/software/lammps-22Jul2025/src:$PATH
source ~/.bashrc
lmp_mpi -h

测试

原文用 --allow-run-as-root 是因为当时在 root 下试跑。生产作业不要这样;普通用户跑可以去掉这个参数。命令其余部分保留:

mkdir -p /opt/software/lammps_logs
cd /opt/software/lammps-22Jul2025/examples/deposit
mpirun --allow-run-as-root -n 2 /opt/software/lammps-22Jul2025/src/lmp_mpi \
  -in in.deposit.atom -log /opt/software/lammps_logs/log.lammps
mpirun --allow-run-as-root -n 2 /opt/software/lammps-22Jul2025/src/lmp_mpi \
  -sf gpu -pk gpu 1 -in in.deposit.atom

Slurm 示例

分区名、核数改成自己的队列。下面 source 是现场一次 AMD + OpenMPI 路径,改成本机实际位置,不要和 Intel setvars.sh 混用:

#!/bin/bash
#SBATCH -J lammps
#SBATCH -p debug
#SBATCH -N 1
#SBATCH -n 32
#SBATCH -o out_%j.log
#SBATCH -e error_%j.log

ulimit -c unlimited
# ulimit -l unlimited
ulimit -s unlimited

source /opt/AMD/aocc-compiler-4.1.0/setenv_AOCC.sh
source /opt/AMD/aocl/aocl-linux-aocc-4.1.0/aocc/amd-libs.cfg
export PATH=/opt/openmpi-4.1.6-aocc/bin:$PATH
export LD_LIBRARY_PATH=/opt/openmpi-4.1.6-aocc/lib:$LD_LIBRARY_PATH
export PATH=/opt/software/lammps-22Jul2025/src:$PATH
export LD_LIBRARY_PATH=/opt/software/lammps-22Jul2025/src/lib:$LD_LIBRARY_PATH

mpirun --allow-run-as-root -np 32 lmp_mpi -in in.deposit.atom

输入文件名按实际改。in.deposit.atom 只是官方例子。