跳转至

LAMMPS

简介

LAMMPS 是大规模原子分子并行计算代码,在原子、分子及介观体系计算中均有重要应用,并行效率高,广泛应用于材料、物理、化学等模拟。

可用的版本

集群 平台 版本 模块名
飞马一号 CPU 20230328 lammps/20230328-intel-2021.4.0-omp
飞马一号 CPU 20220324 lammps/20220324-intel-2021.4.0-omp
飞马一号 CPU 20210310 lammps/20210310-intel-2021.4.0-omp
飞马一号 GPU 20230802 lammps/20230802-intel-2021.4.0-gpu
襄阳超算 CPU

飞马一号上的LAMMPS

  1. 全局部署版本

本版本支持 intel 加速。对于大部分势函数(eam, lj 等),均推荐使用 intel 加速,计算速度可提升数倍。具体测评和支持范围请见官方文档:LAMMPS INTEL package
使用 intel 加速的 slurm 脚本示例:

#!/bin/bash
#SBATCH --job-name=lmp_test
#SBATCH --partition=64c512g
#SBATCH -N 2
#SBATCH --ntasks-per-node=64
#SBATCH --output=%j.out
#SBATCH --error=%j.err

module load lammps/20230328-intel-2021.4.0-omp

mpirun lmp -pk intel 0 omp 2 -sf intel -i in.lj

注意:若体系不支持 intel package,请使用如下 slurm 脚本:

#!/bin/bash
#SBATCH --job-name=lmp_test
#SBATCH --partition=64c512g
#SBATCH -N 2
#SBATCH --ntasks-per-node=64
#SBATCH --output=%j.out
#SBATCH --error=%j.err

module load lammps/20230328-intel-2021.4.0-omp

mpirun lmp -i in.lj
  1. 自行编译 LAMMPS

LAMMPS 自行编译十分容易。下面以在思源一号上为例介绍 LAMMPS 安装
1.申请计算节点资源用来编译 LAMMPS,并请注意在全部编译结束后退出:

srun -p 64c512g -n 4 --pty /bin/bash

2.从官网获得最新的 LAMMPS,推荐下载最新的版本

wget https://lammps.sandia.gov/tars/lammps-stable.tar.gz

3.加载 Intel oneapi 模块:

module load oneapi/2021.4.0

4.编译 (以额外安装 MANYBODY, MEAM, RIGID 和 Intel 加速包为例)

$ tar xvf lammps-stable.tar.gz
$ cd lammps-XXXXXX
$ cd src
$ make                                            #查看编译选项
$ make package                                    #查看可用的包
$ make yes-intel yes-manybody yes-meam yes-rigid  #添加所需的包
$ make ps                                         #查看计划安装的包列表
$ make -j 4 oneapi                                #开始编译

5.环境设置
编译成功后,src 文件夹下将生成可执行文件 lmp_oneapi
为了便于后续调用,一个简单的方法是将该文件移至 ~/bin 文件夹:

$ mkdir ~/bin
$ cp lmp_oneapi ~/bin

至此安装和设置完成。如下是计算时所需的 slurm 脚本:

#!/bin/bash

#SBATCH --job-name=lmp
#SBATCH --partition=64c512g
#SBATCH -N 2
#SBATCH --ntasks-per-node=64
#SBATCH --output=%j.out
#SBATCH --error=%j.err

ulimit -s unlimited
ulimit -l unlimited

module load oneapi/2021.4.0
export PATH=~/bin:$PATH

mpirun lmp_oneapi -pk intel 0 omp 2 -sf intel -i in.lj

# 若势函数等体系不支持intel加速,则使用下方语句:  
# mpirun lmp_oneapi -i in.lj

运行结果(单位为:秒,越低越好)

lammps/20230328-intel-2021.4.0-omp

核数 64 128 192
Wall time 0:01:57 0:01:01 0:00:46

算例内容如下: in.lj

# 3d Lennard-Jones melt

variable     x index 4
variable     y index 4
variable     z index 4

variable     xx equal 20*$x
variable     yy equal 20*$y
variable     zz equal 20*$z

units                lj
atom_style   atomic

lattice              fcc 0.8442
region               box block 0 ${xx} 0 ${yy} 0 ${zz}
create_box   1 box
create_atoms 1 box
mass         1 1.0

velocity     all create 1.44 87287 loop geom

pair_style   lj/cut 2.5
pair_coeff   1 1 1.0 1.0 2.5

neighbor     0.3 bin
neigh_modify delay 0 every 20 check no

fix          1 all nve

run          10000

参考资料

本文阅读量  次    本站总访问量  次