软件部署第三弹-Lammps在linux系统部署安装

LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator),即大规模原子分子并行模拟器,是一款由美国Sandia国家实验室开发的经典分子动力学代码。它主要用于模拟气体、液体和固体状态下粒子的集合行为,能够处理全原子、聚合物、生物、金属、粒状和粗粒化体系。

LAMMPS是目前用于分子动力学模拟的常用软件之一,网上安装教程五花八门,质量良莠不齐。本次教程旨在提供高效可用的安装部署方法,对初级使用Linux系统以及刚接触科学计算类软件用户十分友好。

如何获取LAMMPS

Lammps是开源软件,官方链接参考:https://www.lammps.org

进入下载的页面,历史版本可以通过:

https://github.com/lammps/lammps/releases 获取对应的版本

为了更加灵活的构建或者扩展LAMMPS,建议下载源码,从源代码级别重新构建。

安装编译环境 Intel oneAPI

详细可以参考

安装部署oneAPI 

https://blog.csdn.net/u013206206/article/details/139010576?spm=1001.2014.3001.5502

安装部署LAMMPS

加载编译依赖环境:

source /media/public2/compiler/oneapi/setvars.sh

解压安装

tar -xvf lammps-xx.tgzcd  lammps-xx/src/MAKE/OPTIONS

该路径下有常用各类编译器配置的makefile文件,本次以intel+intelmpi为例

cd srccp -r MAKE/OPTIONS/Makefile.intel_cpu_intelmpi MAKE/Makefile.mpi

编译配置参考

CC =            mpiicpc -std=c++11OPTFLAGS =      -O2 -fp-model fast=2 -no-prec-div -qoverride-limits \                -march=haswellCCFLAGS =       -qopenmp -qno-offload -ansi-alias -restrict \                -DLMP_INTEL_USELRT -DLMP_USE_MKL_RNG $(OPTFLAGS) \                -I$(MKLROOT)/includeSHFLAGS =       -fPICDEPFLAGS =      -M LINK =          mpiicpc -std=c++11LINKFLAGS =     -qopenmp $(OPTFLAGS) -L$(MKLROOT)/lib/intel64/LIB =           -ltbbmalloc -lmkl_intel_ilp64 -lmkl_sequential -lmkl_coreSIZE =          size ARCHIVE =       arARFLAGS =       -rcSHLIBFLAGS =    -shared

非intel平台平台的优化和注意事项

修改Makefile.mpi以下内容

去掉-xHost -qopt-zmm-usage=high,添加-march=haswell

-xHOST是Intel 编译器针对Intel处理器增加的编译优化选项,Intel 编译器内没有集成AMD处理器微架构相关信息。但AMD处理器所包含X86扩展指令集特性与Intel  Haswell架构处理器类似,所以可参考AMD手册选取合适参数来帮助intel编译器识别AMD处理器上的指令集特性。

可选模块安装

cd srcmake ps 查看其他软件包安装情况

make yes-xx:安装所需安装包
make no-xx:卸载对应安装包,需要注意有些安装包需要额外下载编译

例如electrode需要在xx/lib/electrode/下执行

python Install.py -m mpi

生成对应的Makefile.lammps文件和对应的库文件libelectrode.a

VORONOI安装需要额外安装voro++-0.4.6

http://math.lbl.gov/voro++/download

下载解压到lammps/lib/voronoi

cd voro++-0.4.6
make
ln -s voro++-0.4.6/src includelink
ln -s voro++-0.4.6/src liblink

修改lammps-xx/lib/voronoi/Makefile.lammps​

# Settings that the LAMMPS build will import when this package library is used
​
​
voronoi_SYSINC = -Ilammps/lib/voronoi/voro++-0.4.6/includelink
voronoi_SYSLIB = -lvoro++
voronoi_SYSPATH = -L/lammps/lib/voronoi/voro++-0.4.6/liblink
make -j 10 mpi

在src目录下生成如下可执行文件

./lmp_mpi -h

可以查看已经具体安装配置信息和已安装模块

LAMMPS软件测试

解压目录下:

cd lammps-xx /examples/deposit

加载lammps环境

export PATH=xx/xx/lmp_mpi(绝对路径):$PATH

Lammps使用MKL库完成其中的数学运算,但该库会通过内部函数检测是否为Intel处理器,在Intel处理器上MKL库的加速效果更好。在AMD平台可以加载libisintel.so,把AMD识别成Intel,以更好发挥MKL数学库的计算能力。libisintel.so库具体可参考上期文章

非Intel平台的优化和注意事项

export LD_PRELOAD=/PATH/libisintel.so

手动运行:

  • 两个进程默认每个进程一个线程:

mpirun -n 2 lmp_ mpi -in in.deposit.atom
  • 两个进程,每个进程绑定4个线程(线程的绑定并不一定会提高并行计算效率。)

mpirun -n 2 lmp_ mpi -in in.deposit.atom -pk omp 4 -sf omp

运行结果示例

图中timesteps/s值为性能参数,值越大性能越好。

参考引用:

  • https://www.lammps.org

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值