万亿原子,毫秒轨迹——LAMMPS本地部署教程:解锁材料演化密码

一、简介

LAMMPS 官方手册

LAMMPS ("Large-scale Atomic/Molecular Massively Parallel Simulator",大尺度原子/分子并行模拟工具)是一个经典的分子动力学模拟程序,由桑迪亚国家实验室开发。

LAMMPS 提供了元素周期表中对应原子的经验势函数,能够开展与实际体系相符的分子动力学模拟。例如,可以计算金属铝的晶格常数或水的密度,并获得与实验结果一致的数值。此外,LAMMPS 还提供了多种模型势函数,适用于粗粒化模拟,例如基于粒子-弹簧模型研究高分子链的性质。

LAMMPS当前使用C++编写,早期版本使用Fortran77以及Fortran90。分子模拟方法主要有分子学方法(MM),蒙特卡洛方法(MC)及分子动力学方法(MD)。

二、直接安装

基础版本

sudo apt update && sudo apt upgrade
sudo apt-get install lammps
sudo apt-get install openkim-models

三、cmake编译安装

可选择安装其它包

1、安装编译环境

GPU加速需要CUDA环境,nvcc -V 查看是否安装及版本。

sudo apt-get update
sudo apt-get install gcc g++ gfortran cmake make build-essential ffmpeg libopenmpi-dev -y

2、下载最新稳定版的LAMMPS

wget https://download.lammps.org/tars/lammps-stable.tar.gz

3、编译安装

tar -xzvf lammps-stable.tar.gz
cd lammps-29Aug2024
mkdir -p build
cd build
cmake ../cmake -DPKG_REAXFF=yes -DPKG_AMOEBA=yes -DPKG_GPU=yes -DPKG_AMOEBA=yes -DPKG_ASPHERE=yes -DPKG_BOCS=yes -DPKG_BODY=yes -DPKG_BPM=yes -DPKG_BROWNIAN=yes -DPKG_KSPACE=yes -DPKG_MANYBODY=yes -DPKG_MOFFF=yes -DPKG_MOLECULE=yes
make 
sudo make install

可以通过 -DPKG_REAXFF= 安装其它包,可用的软件包

4、配置环境变量

vim ~/.bashrc
export PATH=/work/lammps/lammps-29Aug2024/build:$PATH
source ~/.bashrc

5、测试

cd ../example/melt/
mpirun -np 6 lmp -in in.melt
# 测试Reaxff
cd ../reaxff/CHO/
mpirun -np 6 lmp -in in.CHO
# 使用GPU
cd ../examples/shear
mpirun -np 6 lmp_mpi -sf gpu -pk gpu 1 -in in.friction

6、安装KOKKOS

KOKKOS覆盖了GPU包,因此安装KOKKOS就不能安装GPU包了

cd ../../src
make yes-manybody
make yes-meam
make yes-kokkos

make package-update # 更新安装的包,可能包之间依赖关系
make package-installed # 查看安装的包
  • 修改 Makefile.kokkos_cuda_mpi 文件
vim MAKE/OPTIONS/Makefile.kokkos_cuda_mpi
  • 修改内容如下:
KOKKOS_ARCH = ADA89
KOKKOS_CUDA_OPTOPNS = "enable_lambda"
make kokkos_cuda_mpi -j16

echo 'PATH=/lammps/src/:$PATH' >> ~/.bashrc
source ~/.bashrc

7、安装并行GPU版本

重新解决LAMMPS安装包,可以放在其它位置

然后修改Lammps的GUP库(lib/gpu/Makerfile.linux)的Makerfile.linux文件;修改cuda位置,已经gpu的算力。 

  • /usr/local/cuda替换成你的cuda-toolkit位置
  • arch=sm_75数字替换成你的显卡的算力值(89=8.9*10)
  • 算力查询地址
make -f Makefile.linux

若需要重新编译时,需要先执行 make -f Makefile.linux clean

  1. 到 LAMMPS-29Aug2024\src\MAKE中修改Makefile.mpi,在LIB = 的位置加上
-L/usr/local/cuda/lib64

然后切换到lammps-29Aug2024\src 执行编译

make yes-gpu
make yes-manybody
make mpi -j$(nproc)
echo 'PATH=root/lammps-29Aug2024/src/:$PATH' >> ~/.bashrc
source ~/.bashrc

四、问题

  • image.png


    这个问题是提示用户不要使用root账号运行,可以使用--allow-as-root暂时运行,否则创建一个新的非root账号运行。

image.png

  • 这个问题主要是没有配置lmp的环境变量;
vim ~/.bashrc
export PATH=/work/lammps/lammps-29Aug2024/build:$PATH
source ~/.bashrc
  • 出现这个问题,主要是nvcc对这个目录没有权限。
make: *** [Nvidia.makefile:66: atom_cubin.h] Error 1 make: *** Waiting for unfinished jobs.... fatbinary fatal : Could not open output file './/beck.cubin' make: *** [Nvidia.makefile:66: beck_cubin.h] Error 1 fatbinary fatal : Could not open output file './/born.cubin' make: *** [Nvidia.makefile:66: born_cubin.h] Error 1 fatbinary fatal : Could not open output file './/amoeba.cubin' make: *** [Nvidia.makefile:66: amoeba_cubin.h] Error 1
  • 解决方法修改当前目录的权限。
# LAMMPS 的 lib/gpu 目录
cd lammps/lib/gpu

# 确保当前用户有读写权限
sudo chown -R $USER:$USER .
chmod -R u+rw .
  • 测试时若出现这样的错误:表明你的 LAMMPS 可执行文件 lmp_mpi 在运行时缺少 MANYBODY 包的支持,而你的输入脚本 (in.shear) 中使用了 pair_style eam(一种嵌入原子势,属于 MANYBODY 包)
ERROR: Unrecognized pair style 'eam' is part of the MANYBODY package which is not enabled in this LAMMPS binary. (../force.cpp:275) Last command: pair_style eam
  • 解决方法:
cd ../src
make yes-manybody
make mpi -j4  # 使用 4 个 CPU 核心加速编译
./lmp_mpi -h | grep MANYBODY
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值