安装lammps

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
zh359615596
帖子: 3
注册时间: 2015-12-23 11:43
系统: win7

安装lammps

#1

帖子 zh359615596 » 2015-12-23 11:49

寻求大神,求教Ubuntu kylin系统下安装lammps教程。
qq 602146851
谢谢
头像
qy117121
论坛版主
帖子: 50530
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 安装lammps

#2

帖子 qy117121 » 2015-12-23 13:00

渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
头像
qy117121
论坛版主
帖子: 50530
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 安装lammps

#3

帖子 qy117121 » 2015-12-23 13:05

第二个好像被墙了,我复制过来

-------------------------------------------------------------------

之前实习的时候最后一个工单是编译安装LAMMPS,可惜是最后一个工作日接的,而且网上的资料比较旧,以前版本的安装方法现在已经不适用,所以没来得及装完。虽然离职以后这已经和我没啥关系了,然而自己依旧觉得不爽,所以回来以后在自己的系统上摸索了一下,终于弄清楚怎么装了。下面写一下我的安装过程。


安装环境:Intel Core i7-4702MQ, Arch Linux (Kernel 4.1.6, x86_64),GCC 5.2, Open MPI 1.10.0
关于编译器的使用,如果你的平台是Intel平台并有装ICC,则下文中的高版本GCC可能可以不用装,但要看ICC是否支持c++11的标准。使用ICC进行编译的时候,以下所有涉及到configure和make的环节,都要注意指定CC=icc CXX=icpc FC=ifort这三项,下文中将不再提醒。如果是AMD平台的,就不要用ICC了,否则ICC会按最差的Intel CPU架构去进行优化的。
由于是编译安装,所以理论上对其他的linux-x86_64环境都适用。同时,我的GCC 5.2和Open MPI 1.10.0是用包管理器安装的,在集群或者其他环境中,请自行编译安装GCC 4.9或以上的版本和Open MPI 1.6.5或以上的版本。因为编译LAMMPS时需要用到c++11的标准,低版本的GCC不支持。Open MPI 版本太低也可能引起其他问题,1.6.5是一个适中的稳定版。编译GCC和Open MPI的方法在网上有很多,此处不再赘述。
GCC、OpenMPI及下列涉及的依赖的软件的版本,我仅保证我所使用的版本是可以正确编译安装的,你可以尝试使用其余版本,但我不保证其有效性。

一、下载最新打包的稳定版的LAMMPS
我下载的是2015年8月10日打包的版本,下面这个网站应该是最新的版本的下载地址:
下载地址:http://lammps.sandia.gov/tars/lammps-stable.tar.gz
md5sum:e73e779d1e9ac1a26358485b3a6d6117 lammps-stable.tar.gz
这两天的XcodeGhost病毒提醒我们,下载任何软件,如果官方提供了md5或其他数字签名,下载完以后一定要核对!
下载完以后一定要核对!
下载完以后一定要核对!
重要的事情说三遍。
一开始我拿到的是一个10年年初的版本,浪费了我一个上午的时间,后来发现自己没去用最新版本的真是脑子进水……

二、编译安装fftw-3.3.4
下载地址:http://www.fftw.org/fftw-3.3.4.tar.gz
md5sum:2edab8c06b24feeb3b82bbb3ebf3e7b3 fftw-3.3.4.tar.gz
Shell

代码: 全选

tar zxvf fftw-3.3.4.tar.gz
cd fftw-3.3.4
./configure –prefix=<你想要安装fftw 3.3.4的路径> <其他参数,比如ICC的三项,下略>
make
make install
三、编译安装jpeg-9a
下载地址:http://www.ijg.org/files/jpegsrc.v9a.tar.gz
md5sum:3353992aecaee1805ef4109aadd433e7 jpegsrc.v9a.tar.gz

代码: 全选

tar zxvf fftw-3.3.4.tar.gz
cd fftw-3.3.4
./configure –prefix=<你想要安装fftw 3.3.4的路径> <其他参数,比如ICC的三项,下略>
make
make install
四、设置LAMMPS安装参数

代码: 全选

tar zxvf lammps-stable.tar.gz
解压出来应该得到lammps-10Aug15这个文件夹,不同版本的解压出来不一样,和打包日期对应。将此文件夹移动到你想要安装lammps的路径中,我放到~/software/lammps-10Aug15,下面的路径和此对应,不再提醒。然后到~/software/lammps-10Aug15/src/MAKE/MACHINE文件夹里,将Makefile.ubuntu复制成Makefile.ompi-omp-hybrid,其中 ompi-omp-hybrid可以是你自己起的任何名字。打开Makefile.ompi-omp-hybrid,修改以下几项参数(下面列出的是修改以后的参数和取值):
编译参数部分修改:

代码: 全选


#一个小的提醒:ICC中-fopenmp应该改为-openmp,其他项可能也要改动
CCFLAGS   = -g -O3 -funroll-loops -DLAMMPS_MEMALIGN=64 -fstrict-aliasing -fopenmp
LINKFLAGS = -g -O3 -fopenmp
LMP_INC   = -DLAMMPS_GZIP -DLAMMPS_FFMPEG -DLAMMPS_JPEG
MPI部分修改:

代码: 全选

MPI_INC  = -I<OpenMPI-1.10.0安装目录>/include
MPI_PATH = -L<OpenMPI-1.10.0安装目录>/lib
MPI_LIB  = -lpthread -lmpi
FFTW部分修改:

代码: 全选

FFT_INC  = -DFFT_FFTW3 -I<fftw-3.3.4安装目录>/include
FFT_PATH = -L<fftw-3.3.4安装目录>/lib
FFT_LIB  =   <fftw-3.3.4安装目录>/lib/libfftw3.a
JPG部分修改:

代码: 全选

JPG_INC  = -I<jpeg-9a安装目录>/include
JPG_PATH = -L<jpeg-9a安装目录>
JPG_LIB  =   <jpeg-9a安装目录>/lib/libjpeg.so.9
保存,退出。
这里要说明一下,原来的LMP_INC中有一个值是-LAMMPS_PNG,但是我编译的时候发现png相关的一些函数在头文件里没有,不知道是jpeg这个包的变化还是我下的是v9a版本的问题,我看有资料里用v9版本的可以不修改LMP_INC,我还没试过。

五、安装LAMMPS自己带的包
1、设置使用哪些LAMMPS自带的包
在~/software/lammps-10Aug15/src目录下输入:

代码: 全选

make yes-all
make no-gpu no-kim no-user-cuda no-user-atc no-user-awpmd no-user-smd no-user-quip no-user-qmmm
2、安装某些LAMMPS自带的需要使用到的包
分别是meam、reax、poems和colvars,这四个包都在~/software/lammps-10Aug15/lib中对应的同名文件夹里,因此,只需要依次执行如下命令:

代码: 全选

cd ~/software/lammps-10Aug15/lib
cd meam
make -f Makefile.gfortran
cd ../reax
make -f Makefile.gfortran
cd ../poems
make -f Makefile.g++
cd ../colvars
make -f Makefile.g++
3、安装voro++-0.4.6
下载地址:http://math.lbl.gov/voro++/download/dir ... 4.6.tar.gz
md5sum:13b59d98e888cde20dc85ecdfe82dbb4 voro++-0.4.6.tar.gz

代码: 全选

tar zxvf voro++-0.4.6.tar.gz
cd voro++-0.4.6
修改config.mk文件,将PREFIX项改成你想安装voro++-0.4.6的路径,保存退出,然后直接make即可。随后进入~/software/lammps-10Aug15/lib/voronoi中,修改Makefile.lammps文件的如下几项:

代码: 全选

voronoi_SYSINC = -I<你安装voro++-0.4.6的路径>/include/voro++
voronoi_SYSLIB = -lvoro++
voronoi_SYSPATH = -L<你安装voro++-0.4.6的路径>/lib
保存退出。

六、编译安装LAMMPS和测试

代码: 全选

cd ~/software/lammps-10Aug15/src
make ompi-omp-hybrid #这一步需要一点时间
如果你看到类似:
text data bss dec hex filename
30886917 55160 1612612576 1643554653 61f6a75d ../lmp_ ompi-omp-hybrid
make[1]: Leaving directory ‘/home/enigma/softwares/lammps-10Aug15/src/Obj_ompi-omp-hybrid’
这样的结束输出,那么恭喜你,编译成功了。如果报错了,请仔细检查上面的步骤,如果有必要,请在~/software/lammps-10Aug15/src中执行make clean-all,然后再来一次。如果有其他的错误,请仔细查看最后的报错信息,然后善用Google。
测试方法如下:

代码: 全选

cd ~/software/lammps-10Aug15/src
OMP_NUM_THREADS=2 mpirun -np 2 lmp_ompi-omp-hybrid < ../bench/in.lj
如果你使用自己编译的和默认系统变量中的MPI环境不同的MPI,请先设置相关的路径再执行。其中OMP_NUM_THREADS的值可以事先export出来,指示每个MPI进程使用多少条线程。LAMMPS支持OpenMP和MPI混合并行实在太有良心了。
在我的电脑上,输出如下:
LAMMPS (10 Aug 2015)
using 2 OpenMP thread(s) per MPI task
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
Created orthogonal box = (0 0 0) to (33.5919 33.5919 33.5919)
1 by 1 by 2 MPI processor grid
Created 32000 atoms
Neighbor list info …
1 neighbor list requests
update every 20 steps, delay 0 steps, check no
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
Setting up Verlet run …
Unit style : lj
Current step: 0
Time step : 0.005
Memory usage per processor = 5.4829 Mbytes
Step Temp E_pair E_mol TotEng Press
0 1.44 -6.7733681 0 -4.6134356 -5.0197073
100 0.7574531 -5.7585055 0 -4.6223613 0.20726105
Loop time of 1.13662 on 4 procs (2 MPI x 2 OpenMP) for 100 steps with 32000 atoms

Pair time (%) = 0.939499 (82.6573)
Neigh time (%) = 0.127438 (11.212)
Comm time (%) = 0.0365608 (3.21663)
Outpt time (%) = 0.000108004 (0.00950218)
Other time (%) = 0.0330137 (2.90455)

Nlocal: 16000 ave 16001 max 15999 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Nghost: 13632.5 ave 13635 max 13630 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Neighs: 601416 ave 605200 max 597633 min
Histogram: 1 0 0 0 0 0 0 0 0 1

Total # of neighbors = 1202833
Ave neighs/atom = 37.5885
Neighbor list builds = 5
Dangerous builds = 0
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
回复