轉(zhuǎn)載自http://www.reibang.com/p/1e24935004f7,加入了自己的注釋和理解光酣。
---------ubuntu下lammps的安裝----------
1、前提條件
2救军、安裝需要的三個(gè)軟件
? ? ? 2-1 安裝fftw(快速傅里葉計(jì)算軟件)
? ? ? 2-2 安裝mpich(并行計(jì)算)
? ? ? 2-3 安裝lammps
3财异、配置環(huán)境
---------ubuntu下lammps的安裝----------
1、前提條件
1-1 筆者所用操作系統(tǒng)為Ubuntu18.04唱遭,Ubuntu下安裝LAMMPS并行版需要安裝必要的依賴包戳寸,(重復(fù)安裝無(wú)影響)。
sudo apt-getinstall gcc
sudo apt-getinstall g++
sudo apt-getinstall gfortran
sudo apt-getinstall make
注意: 如果ubuntu的apt-get無(wú)法正常使用請(qǐng)? sudo apt-get update
1-2 準(zhǔn)備安裝包
fftw-3.3.8.tar.gz ?FFTW Download Page
lammps-stable.tar.gz? (解壓后為lammps-22Aug18) ?Download LAMMPS
mpich-3.2.1.tar.gz ?Downloads | MPICH
準(zhǔn)備工作:在 /home/xukang/ 文件夾下建立文件夾/lammps拷泽,將相應(yīng)安裝包分別解壓這個(gè)文件夾中.
創(chuàng)建fftw3和mpich3文件夾用來(lái)安裝
接下來(lái)就是安裝fftw和mpich疫鹊。
2、安裝需要的三個(gè)軟件
2-1 安裝fftw
輸入指令:
$ cd ~/lammps/fftw-3.3.8
$ sudo ./configure--prefix=/home/xukang/lammps/fftw--enbale-shared=yes?
(#安裝命令./configure --prefix=fftw安裝路徑 --enable-shared=yes
#注意:--enable-shared=yes 這個(gè)配置非常重要司致,將fftw設(shè)置為動(dòng)態(tài)庫(kù)拆吆,會(huì)生成 .so 文件。)
$ sudo make
$ make install
在/lammps/lammps-22Aug18/src/MAKE/OPTIONS路徑下有Makefile.fftw文件脂矫,
通過(guò)查看以下內(nèi)容可知lammps默認(rèn)fftw調(diào)用路徑為/usr/local锈拨,(暫時(shí)不用修改路徑)
FFT_INC = ? ? ? ? -DFFT_FFTW3 -I/usr/local/include
FFT_PATH =? ? ? -L/usr/local/lib
FFT_LIB = ? ? ? ?? -lfftw3
2-2 安裝mpich
輸入指令:
1.cd ? home/xukang/lammps/mpich-3.2.1
2.sudo ? ./configure--prefix=/home/xukang/lammps/mpich
3.sudo ? make
4.sudo ? make ? install
在/lammps/lammps-22Aug18/src/MAKE/OPTIONS路徑下有Makefile.g++_mpich_link文件,
通過(guò)查看以下內(nèi)容可知lammps默認(rèn)mpich調(diào)用路徑為/usr/local羹唠。(暫時(shí)不用修改路徑)
MPI_INC= ? ? ? ? -DMPICH_SKIP_MPICXX-DOMPI_SKIP_MPICXX=1-I/usr/local/include
MPI_PATH= ? ?? -L/usr/local/lib
MPI_LIB= ? ? ? ?? -lmpi-lmpl-lpthread
2-3 安裝lammps
1、串行的安裝
$ cd ? ?? ~/lammps/lammps-22Aug18/src/STUBS娄昆,(串行安裝需要在STUBS先make佩微,并行不需要)
$ sudo? make
$ cd ? ?? ~/lammps/lammps-22Aug18/src/MAKE
該文件夾包括Makefile.mpi、Makefile.serial兩個(gè)編譯文件萌焰。
Makefile.serial用來(lái)串行哺眯,Makefile.mpi用來(lái)并行
打開(kāi)Makefile.serial文件,配置fftw的路徑即可
在/lammps/lammps-22Aug18/src/MAKE/OPTIONS路徑下有Makefile.fftw文件扒俯,
通過(guò)查看以下內(nèi)容可知lammps默認(rèn)fftw調(diào)用路徑為/usr/local奶卓,
FFT_INC =? ? ? ? ? ? -DFFT_FFTW3 -I/usr/local/include
FFT_PATH =? ? ? -L/usr/local/lib
FFT_LIB =? ? ? ? -lfftw3
但這里要將/usr/local/改成你的fftw所安裝的路徑一疯,如
FFT_INC = ? ? ? -DFFT_FFTW3 -I/<fftw的安裝路徑>/include
FFT_PATH =? ? ? -L/<fftw的安裝路徑>/lib
2、并行的安裝
打開(kāi)Makefile.mpi文件夺姑,配置mpich和fftw的路徑
首先將下面部分注釋掉墩邀。
LMP_INC =? -DLAMMPS_GZIP -DLAMMPS_MEMALIGN=64
(由于lammps運(yùn)行過(guò)程中不需要圖片支持,因而將關(guān)于圖片這幾行斜線部分刪除)
還要需要修改mpich和fftw的路徑文件盏浙,
fftw與串行一樣
mpich與串行類似
在/lammps/lammps-22Aug18/src/MAKE/OPTIONS路徑下有Makefile.g++_mpich_link文件眉睹,
通過(guò)查看以下內(nèi)容可知lammps默認(rèn)mpich調(diào)用路徑為/usr/local。
MPI_INC= ? ? ?? -DMPICH_SKIP_MPICXX-DOMPI_SKIP_MPICXX=1-I/usr/local/include
MPI_PATH= ? ? -L/usr/local/lib
MPI_LIB= ? ? ? ? -lmpi-lmpl-lpthread
但這里要將/usr/local/改成你的mpich所在路徑
修改完成后保存就行废膘。
3竹海、接下來(lái)編譯 LAMMPS 的庫(kù)文件,我這里根據(jù)我自己的需求,選擇編譯了部分庫(kù) 文件
lib目錄下
輸入指令:
$? cd ? ? ?? meam
$? sudo ?? make -f Makefile.gfortran
$ cd ? ? ? ? poems
$ sudo ? ? make -f Makefile.g++
$ cd ? ? ? ? reax
$ sudo ? ? make -f Makefile.gfortran
LAMMPS 是通過(guò)各個(gè)模塊來(lái)實(shí)現(xiàn)分子動(dòng)力學(xué)模擬里面不同的功能的,但每 一個(gè)具體的任務(wù)并不是需要用到 LAMMPS 所有的功能,我們可以選擇安 裝一些常用的模塊,等遇到特別的需求時(shí)再來(lái)安裝額外的模塊。每一個(gè)模 塊實(shí)現(xiàn)的具體功能,也通過(guò)查閱 LAMMPS 使用手冊(cè)來(lái)獲知丐黄。
在 src 目錄下運(yùn)行make yes-all(一般不用斋配,電腦容易崩潰)
這個(gè)命令告訴電腦,我要準(zhǔn)備安裝所有的模塊了,然后再用排除法,告訴電 腦,哪些模塊是不要安裝的,比如我一般用不到 user-atc 模塊,那么就make no-user-atc。我也一般用不到 kim,kokkos,voronoi, user-qmmm, gpu, user-cuda, 當(dāng)然,
我用不到不代表你們用不到,要根據(jù)實(shí)際情況來(lái)判斷灌闺。
src目錄下
$ cd ?? lammps/lammps-22Aug18/src/
$make? package-status
$make ? yes-meam
$make ? yes-poems
$make ? yes-reax
4艰争、接著make生成lmp_mpi和lmp_serial的文件
$? sudo? make? mpi?
$? sudo? make? serial
成功的話會(huì)生成lmp_mpi和lmp_serial的文件。
5菩鲜、測(cè)試一下
到/home/xukang/lammps/lammps-22Aug18/examples/min文件夾中
串行
$ /home/xukang/lammps/lammps-22Aug18/src/lmp_serial <in.min
(可以發(fā)現(xiàn)园细,如果沒(méi)有設(shè)置環(huán)境變量,每次運(yùn)行需要指定lmp_serial的路徑接校,非常麻煩猛频,可見(jiàn)設(shè)置環(huán)境變量的作用)
并行
$/usr/local/bin/mpirun -np 3 /home/xukang/lammps/lammps-22Aug18/src/lmp_mpi < in.min
3、配置環(huán)境
此外我們可以設(shè)置環(huán)境變量蛛勉,簡(jiǎn)化命令鹿寻。
$ vi .bashrc ? (不行的話為vi. ~/.bashrc)
在最后一行加入
export PATH="$PATH:/home/xukang/lammps/lammps-22Aug18/src:/home/xukang/lammps/mpich3/bin:/home/xukang/lammps/fftw/bin"
exportLD_LIBRARY_PATH=/home/xukang/lammps/fftw/lib:/home/xukang/lammps/mpich/lib:/home/**(用戶名)/lammps/lammps-22Aug18/src:$LD_LIBRARY_PATH
(#格式為export PATH="$PATH:/lmp_serial或者lmp_mpi所在的路徑/")
$ source .bashrc 使得環(huán)境生效
再次測(cè)試一下
到/home/xukang/lammps/lammps-22Aug18/examples/min文件夾中
串行
$ lmp_serial <in.min ? ?? (這就很方便簡(jiǎn)潔了)
然而并行出錯(cuò)了
/home/xukang/lammps/lammps-22Aug18/src/lmp_mpi:errorwhileloading shared libraries:libmpi.so.12:cannotopensharedobjectfile:No such fileordirectory
輸入ldd ~/lammps/lammps-22Aug18/src/lmp_mpi
發(fā)現(xiàn)libmpi.so.12 => not found
應(yīng)該是libmpi.so.12不在你的LD_LIBRARY_PATH路徑下
作者:xukang919
鏈接:http://www.reibang.com/p/1e24935004f7
來(lái)源:簡(jiǎn)書(shū)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)诽凌,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處毡熏。