返回 博客
发布日期:Jan 07, 2026
阅读时间:5 min read

LAMMPS GPU版本安装教程

详细介绍如何在Linux系统上安装和配置支持GPU加速的LAMMPS分子动力学模拟软件,包括CUDA环境配置、编译优化、性能测试以及批量任务管理

LAMMPS GPU版本安装教程

1. 环境准备

系统要求

  • Linux系统(推荐Ubuntu/CentOS)
  • NVIDIA GPU + CUDA驱动
  • 足够的磁盘空间(~2GB)

必需软件

# Ubuntu/Debian
sudo apt update
sudo apt install build-essential cmake git

# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install cmake3 git

2. CUDA环境安装

检查GPU和驱动

# 检查GPU
nvidia-smi

# 检查CUDA版本
nvcc --version

安装CUDA(如果没有)

# 下载CUDA toolkit(以CUDA 11.8为例)
wget <https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run>
sudo sh cuda_11.8.0_520.61.05_linux.run

# 添加环境变量到 ~/.bashrc
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
source ~/.bashrc

3. 下载LAMMPS源码

# 克隆最新版本
git clone -b stable <https://github.com/lammps/lammps.git>
cd lammps

# 或者下载特定版本(推荐)
wget <https://github.com/lammps/lammps/archive/stable.tar.gz>
tar -xzf stable.tar.gz
cd lammps-stable

4. 创建编译目录

mkdir build
cd build

5. CMAKE配置(重点)

基本GPU配置

cmake ../cmake \\
  -DCMAKE_INSTALL_PREFIX=$HOME/lammps \\
  -DPKG_GPU=yes \\
  -DGPU_API=cuda \\
  -DGPU_PREC=mixed \\
  -DCUDA_NVCC_FLAGS="-arch=sm_75" \\
  -DCMAKE_BUILD_TYPE=Release

完整配置(推荐)

cmake ../cmake \\
  -DCMAKE_INSTALL_PREFIX=$HOME/lammps \\
  -DPKG_GPU=yes \\
  -DGPU_API=cuda \\
  -DGPU_PREC=mixed \\
  -DCUDA_NVCC_FLAGS="-arch=sm_75" \\
  -DPKG_KSPACE=yes \\
  -DPKG_MANYBODY=yes \\
  -DPKG_MOLECULE=yes \\
  -DPKG_RIGID=yes \\
  -DPKG_EXTRA-PAIR=yes \\
  -DPKG_EXTRA-FIX=yes \\
  -DPKG_EXTRA-COMPUTE=yes \\
  -DCMAKE_BUILD_TYPE=Release

GPU架构选择(重要)

根据您的GPU选择合适的架构:

# 查看GPU架构
nvidia-smi --query-gpu=name --format=csv

# 常见架构对应:
# RTX 30系列: -arch=sm_86
# RTX 20系列: -arch=sm_75
# GTX 10系列: -arch=sm_61
# Tesla V100: -arch=sm_70
# 多架构支持: -arch=sm_61,sm_70,sm_75,sm_86

6. 编译和安装

# 编译(使用多核加速)
make -j$(nproc)

# 安装
make install

# 添加到PATH
echo 'export PATH=$HOME/lammps/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

7. 验证安装

# 检查LAMMPS版本
lmp -help

# 检查GPU支持
lmp -h | grep -i gpu

# 运行简单测试
cd ../examples/melt
lmp -in in.melt -sf gpu -pk gpu 1

8. 性能优化配置

高性能编译选项

cmake ../cmake \\
  -DCMAKE_INSTALL_PREFIX=$HOME/lammps \\
  -DPKG_GPU=yes \\
  -DGPU_API=cuda \\
  -DGPU_PREC=mixed \\
  -DCUDA_NVCC_FLAGS="-arch=sm_75 -O3" \\
  -DCMAKE_CXX_FLAGS="-O3 -march=native" \\
  -DCMAKE_BUILD_TYPE=Release \\
  -DPKG_OPENMP=yes \\
  -DPKG_KSPACE=yes \\
  -DPKG_MANYBODY=yes \\
  -DPKG_MOLECULE=yes

9. 常见问题和解决方案

问题1: CUDA找不到

# 指定CUDA路径
cmake ../cmake -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda ...

问题2: 架构不匹配

# 检查GPU计算能力
nvidia-smi --query-gpu=compute_cap --format=csv
# 相应调整 -arch=sm_XX

问题3: 内存不足

# 降低并行编译数
make -j4  # 而不是 make -j$(nproc)

问题4: 权限问题

# 安装到用户目录而不是系统目录
-DCMAKE_INSTALL_PREFIX=$HOME/lammps

10. 使用示例

GPU输入脚本示例

# 启用GPU包
package gpu 1

# 或者在命令行
# lmp -in input.lmp -sf gpu -pk gpu 1

运行命令

# 单GPU
lmp -in input.lmp -sf gpu -pk gpu 1

# 多GPU(如果有)
lmp -in input.lmp -sf gpu -pk gpu 2

# 混合CPU+GPU
mpirun -np 4 lmp -in input.lmp -sf gpu -pk gpu 1 neigh yes newton off

11. 性能测试

# 创建测试脚本 test_gpu.lmp
cat > test_gpu.lmp << EOF
units metal
atom_style atomic
lattice fcc 3.52
region box block 0 10 0 10 0 10
create_box 1 box
create_atoms 1 box
mass 1 63.546
pair_style lj/cut 2.5
pair_coeff 1 1 0.415 2.315
neighbor 0.3 bin
neigh_modify delay 5
fix 1 all nve
thermo 100
run 1000
EOF

# CPU版本测试
time lmp -in test_gpu.lmp

# GPU版本测试
time lmp -in test_gpu.lmp -sf gpu -pk gpu 1

安装完成后,您就可以享受GPU加速带来的巨大性能提升了!通常GPU版本比CPU版本快5-20倍。

批量管理LAMMPS脚本

我来创建一个批量管理多个LAMMPS任务的脚本,支持串行和并行执行多个in文件。我创建了一个批量管理器,可以处理多个LAMMPS输入文件。这个脚本提供了以下功能:

主要功能:

1. 批量文件处理

  • 支持通配符匹配(如 .in
  • 支持处理整个目录
  • 支持多个文件/模式组合

2. 执行模式

  • 串行模式:逐个运行任务
  • 并行模式:同时运行多个任务(可控制并发数)

3. 断点续传

  • 自动保存批量任务进度
  • 支持从中断处继续执行
  • 跳过已完成的任务

4. 任务监控

  • 实时显示总体进度
  • 统计成功/失败任务数
  • 显示成功率

5. 报告生成

  • 生成CSV格式的执行报告
  • 包含每个任务的状态、时间、错误信息

安装依赖:

pip install psutil tqdm pandas

使用方法:

1. 运行当前目录所有.in文件:

python lammps_batch_manager.py *.in

2. 运行多个特定文件:

python lammps_batch_manager.py file1.in file2.in file3.in

3. 运行整个目录中的所有LAMMPS文件:

python lammps_batch_manager.py input_files/

4. 并行运行(4个任务同时执行):

python lammps_batch_manager.py *.in --parallel 4

5. 使用特定配置:

python lammps_batch_manager.py *.in -np 4 -gpu 2 --parallel 2

6. 从上次中断处继续:

python lammps_batch_manager.py *.in --resume

7. 清理所有进度,重新开始:

python lammps_batch_manager.py *.in --clean

高级用法:

1. 混合模式(处理多个目录和文件):

python lammps_batch_manager.py dir1/ dir2/*.in specific_file.lmp

2. 生成自定义报告:

python lammps_batch_manager.py *.in --report my_report.csv

输出示例:

运行时会看到类似这样的输出:

找到 10 个输入文件:
  - in.sample1.in
  - in.sample2.in
  - ...

配置:
  MPI进程数: 2
  GPU数量: 1
  并行任务数: 4

开始执行? (y/n): y

并行模式: 最多 4 个任务同时运行

总进度: 60%|████████████░░░░░░░░| 6/10 [15:23<10:15, 1.54 任务/min, 完成=5, 失败=1, 成功率=83.3%]

[任务 1] 开始处理: in.sample1.in
[任务 2] 开始处理: in.sample2.in
[任务 3] 开始处理: in.sample3.in
[任务 4] 开始处理: in.sample4.in

生成的报告内容:

CSV报告包含以下信息:

  • 输入文件名
  • 执行状态(completed/failed/running)
  • 开始时间
  • 结束时间
  • 运行时长
  • 错误信息(如果失败)

注意事项:

  1. 需要lammps_manager.py:这个批量管理器依赖之前的单任务管理器,请确保两个文件在同一目录

  2. 资源分配

    :并行运行时要考虑系统资源

    • 如果每个任务用2个GPU,并行4个任务需要8个GPU
    • CPU和内存也要相应考虑
  3. 检查点管理

    • 批量检查点保存在 batch_checkpoints/ 目录
    • 每个任务有独立的检查点子目录
    • 使用 -clean 可以清理所有检查点
  4. 错误处理

    • 单个任务失败不会影响其他任务
    • 所有错误信息都会记录在报告中

这个批量管理器非常适合需要运行大量LAMMPS模拟的场景,可以充分利用计算资源,并且具有良好的容错能力。