lammps 编译安装测试说明

 

 

科学计算软件编译安装测试方法说明 --- lammps 篇 (提供免费测试)

 

 

 

官网地址:http://lammps.sandia.gov/

下载最新稳定版本:http://lammps.sandia.gov/download.html

下载指定版本:http://lammps.sandia.gov/tars/

 

1. 什么是LAMMPS?

LAMMPS即Large-scale Atomic/MolecularMassivelyParallel Simulator,可以翻译为大规模原子分子并行模拟器,主要用于分子动力学相关的一些计算和模拟工作。

 

2. lammps编译环境

Intel Compiler /GNU Compiler  + MPI Compiler

 

3. 安装 Intel Compiler 编译器,设置编译环境

如果使用的是Intel的CPU,建议使用Intel的编译器。

详细安装方法参见博客相关文章。

 

例如使用TH-1A的Intel 2013编译器编译lammps,可以加载如下环境变量:

 

source /opt/intel/composer_xe_2013.0.079/bin/iccvars.sh intel64

 

 

 

4.安装 MPI Compiler,设置编译环境

编译并行版的程序需要并行编译器,例如MPI并行的程序需要MPI编译器,常用的MPI例如Intel MPI 、MPICH 、OPENMPI等。

不同的机器可能针对自身硬件进行MPI优化,天河系统的MPI是基于开源MPICH进行的二次开发优化,进而支持性能卓越的天河自主高速互联网络。

详细安装方法参见博客相关文章。

 

例如使用TH-1A的Intel 2013编译器编译的mpich,可以加载如下环境变量:

 

export MPI_HOME=/usr/local/mpi-intel2013
export PATH=$MPI_HOME/bin:$PATH
export LD_LIBRARY_PATH=$MPI_HOME/lib:$LD_LIBRARY_PATH

 

 

 

5.安装fftw数学库(可选,强烈建议)

编译fftw数学库,可以遵循常用的configure + make + make install 的步骤,安装方法参见博客相关文章。

lammps支持fftw数学库,可以通过在Makefile中设置变量设置,详见第7部分。

 

6.编译配置lammps的package

lammps包含了数十个package,默认情况下仅安装如下package:

 

$ cd lammps/src # 进入lammps所在的src目录,同下
$ make ps  | grep YES
Installed YES:package KSPACE
Installed YES:package MANYBODY
Installed YES:package MOLECULE


如果想安装其他扩展包,如要进行相关配置。
 
1)有的扩展包仅仅需要通过make yes-packagename的方式便可以,例如:

 

 

$ cd lammps/src
$ make yes-colloid

 

 

 

这样便可以编译出支持colloid的lammps程序。
2)有的扩展包在lammps/lib对应文件夹下出现并附带了相关源码,手动编译出相关库,然后再编译lammps的时候进行链接即可,例如:

 

$ cd lammps/lib/poems # 修改为实际路径
$ make -f make -fMakefile.icc
$ cd lammps/src
$ make yes-poems

 

 

这样便可以编译出支持poems模块的lammps程序。
 
3)有的扩展包在lammps/lib对应文件夹下出现,但是并没有附带了相关源码,这时候需要阅读该文件夹内的祥光文件,例如 README及Makefile等,根据相关内容去额外下载相关源码包进行编译安装,然后再链接到lammps中,例如:
 
voronoi模块:
Voro++ is aopensource software library for the computation of the Voronoi diagram, awidely-usedtessellation that has applications in many scientific fields.
 

 

# 下载网址:http://math.lbl.gov/voro++/download
# 版本:voro++-0.4.6.tar.gz
# 大小:791K
$ tar zxvfvoro++-0.4.6.tar.gz
$ cd voro++-0.4.6
 
# 修改config.mk, 因为1.想用intel的编译器 2.普通用户,需要修改安装路径 
  CXX=icpc
  PREFIX=/vol-th/home/zhenggang/software/voro++/0.4.6  # 修改为自己的路径
$ make
$ make install
 
# 连接lammps
$ cd lammps/lib/voronoi # 修改为实际路径
$ ln -s /vol-th/home/zhenggang/software/voro++/0.4.6/include/voro++ includelink
$ ln -s /vol-th/home/zhenggang/software/voro++/0.4.6/lib liblink
 
$ cd lammps/src
$ make yes-voronoi
/vol-th/home/zhenggang/software/voro++/0.4.6  # 修改为自己的路径
$ make
$ make install
 
# 连接lammps
$ cd lammps/lib/voronoi # 修改为实际路径
$ ln -s /vol-th/home/zhenggang/software/voro++/0.4.6/include/voro++ includelink
$ ln -s /vol-th/home/zhenggang/software/voro++/0.4.6/lib liblink
 
$ cd lammps/src
$ make yes-voronoi


其他的同类package也有不少,可以仿照上面的方式自己阅读README文件。
备注:

 

 

 

 

$ cd lammps/src
$ make help # 查看支持的相关命令


7.编译lammps
可以通过拷贝的方式,创建一个Makefile文件,也可以在原来的Makefile上进行更改。此处我们创建一个新的Makefile,名为Makefile.th

 

 

 

$ cd lammps/src
$ cp MAKE/Makefile.mpi MAKE/Makefile.th

 

 

 

使用文本编辑器编辑Makefile文件

 

 

 

$ vim MAKE/Makefile.th

 

需要修改的参数包括如下部分:
 

 

CCFLAGS =       -g -O3 # 这里可以额外添加一下编译优化选项,例如 -xHost -ip 等等,也可以保持不变。
LIB =    -lmkl_intel_lp64 -lmkl_sequential  -lmkl_core # 添加MKL数学库

 

 

 

 

# 官方FFTW
FFT_HOME =  $(HOME)/software/fftw/3.3.6
FFT_INC =    -DFFT_FFTW3  -I$(FFT_HOME)/include
FFT_PATH =
FFT_LIB =    -L$(FFT_HOME)/lib -lfftw3

# intel的FFTW
MKLROOT = /opt/intel/composer_xe_2013.0.079/mkl
FFT_INC =    -DFFT_FFTW3  -I$(MKLROOT)/include/fftw
FFT_PATH =
FFT_LIB =  $(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a

 

 

 

备注:
默认情况下安装的Intel Compiler的MKL库并未编译fftw的静态库,故可能需要手动安装。关于FFTW库的安装方法参见博客相关文章。

 

下面可以进行编译工作了:

 

$ cd lammps/src
$ make th 2>&1 | tee m.log

 

 

 

 

 

备注:
1. make th 中的th是因为我们创建的Makefile名为Makefile.th。
2."2>&1 | tee m.log" 是为了将make过程进行记录,如果出现报错,可以查看m.log文件寻找原因。
3. 如果使用多核的cpu可以使用“-j”参数加快编译速度,例如4核的cpu,可以用如下命令 make-j 4 2>&1 | tee m.log
 
编译完成会生成一个名为 lmp_th的 可执行文件。

 

8. 测试lammps
 
如果是普通的集群,那么使用通常的mpirun命令即可,如果有作业管理系统,编写作业提交脚本即可。下面举例说明如何在TH-1A系统下提交测试lammps程序:
 
1)准备测试输入文件
例如lammps/bench目录下的in.lj
 
2)准备可执行程序
刚刚编译好的lmp_th
 
3)编写提交脚本sub.sh

#!/bin/bash
yhrun -N 2 -n 24 -p debug /path/to/lmp_th < in.lj


说明:
-N 节点数;-n 核数;-p 分区;请给出lmp_th文件的路径;in.lj为 输入文件的名称
 
4)提交任务

 

yhbatch -N 2 -n 24-p debug sub.sh



5)查看输出
计算完成后会在默认的输出文件log.lammps中生成结果文件,也可以查看slurm-jobid.out文件。
 
8. 额外
1)如果希望编译支持JPEG的lammps,仅需要仿照第3步的第3种情况,先将libjpeg库安装好,然后通过Makefile中的相关变量设置即可。
2)如果希望安装单精度lammps,加入“-DFFT_SINGLE” 即可。
 
篇幅所限,部分内容并未完全展开,欢迎讨论。

 

 

 

P.S 提供lammps的测试机会,感兴趣的可以加QQ(178068275)咨询。

 

 

 

 

欢迎交流!

 

 

 

 

 

 

 

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CentOS操作系统上安装LAMMPS可以分为以下几个步骤: 1. 安装必要的软件包:首先,要确保系统上已经安装了必要的软件包,包括C++编译器(如gcc、g++)、MPI(如openmpi)和一些辅助工具(如make和cmake)。 2. 下载和解压LAMMPS源代码:从LAMMPS的官方网站(https://lammps.sandia.gov/)下载最新的源代码压缩包,并将其解压到指定的目录。 3. 配置和构建LAMMPS:进入解压后的LAMMPS源代码目录,并执行以下命令: ``` mkdir build cd build cmake ../cmake make ``` 这将创建一个名为build的目录,进入该目录,并使用cmake配置LAMMPS的构建过程,然后使用make命令进行编译和构建。 4. 设置环境变量:为了能够方便地运行LAMMPS,需要将其可执行文件所在的目录添加到系统的环境变量中。可以通过编辑bash配置文件(如~/.bashrc)并添加以下行来完成: ``` export PATH=/path/to/lammps/build/bin:$PATH ``` 将/path/to/lammps替换为解压后的LAMMPS源代码目录的路径。 5. 测试LAMMPS:执行以下命令来验证LAMMPS是否成功安装: ``` lmp_mpi -in bench/in.lj ``` 上述命令将运行一个简单的分子动力学模拟示例,如果成功运行并输出了一些结果,那么说明LAMMPS已经安装并可以正常运行。 以上就是在CentOS上安装LAMMPS的一般步骤。然而,由于系统环境和配置的复杂性,可能还需要根据具体情况进行一些额外的配置和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值