Lammps并行安裝全解讀 這里的lammps安裝是在Ubuntu11.04下安裝,Ubuntu12.10和Redhat Enterprise也有成功案例。不同版本系統(tǒng)可能與下面一些安裝包不兼容,這個(gè)要自己負(fù)責(zé)了,出錯(cuò)要自己排查是什么問(wèn)題。非并行安裝就不寫(xiě)了,太Easy,網(wǎng)上找的基本不會(huì)錯(cuò)。還有,我這篇文章參考了很多文章,我都記不清了,如果有人需要備注,給我留言吧。我連續(xù)研究了一周,還有零碎的時(shí)間沒(méi)算進(jìn)去。遇到一堆錯(cuò)誤,看了一堆資料。有問(wèn)題的也可以問(wèn)我,僅限2012年以后就難說(shuō)啦。 首先做下準(zhǔn)備,把需要的軟件包都找好。 1.fftw-3.3.2.tar.gz,可以到這里下, http://www./file/id_34521031569913834.htm 2.mpich2-1.4.1p1.tar, 可以到這里下http://www./file/id_34521031569913840.htm 3.lammps.tar.gz,版本號(hào)30Aug12,http://www./file/id_34521031569913839.htm 4. Makefile.g++, http://www./file/id_34521031569913836.htm 然后檢查下自己的機(jī)器是否已經(jīng)安裝c和fortran編譯器 Linux一般有gcc,g++,gfortran和intel的fortran ,可以用which g++和which gfortran查看是否存在安裝目錄。 這里用ubuntu源里的g++和gfortran,保證聯(lián)網(wǎng)的情況下用以下命令: sudo apt-get install build-essential sudo apt-get install g++ sudo apt-get install gfortran 無(wú)法聯(lián)網(wǎng)的自己下載或者拷貝吧,到網(wǎng)上找解決辦法 開(kāi)始安裝: 1 安裝fftw 終端輸入: cd
/mnt 這個(gè)是fftw臨時(shí)存放文件夾,不是安裝目錄,服務(wù)器中最好放在自己的文件夾下面,例如cd /zhangsan/mnt gunzip
fftw-3.3.2.tar.gz 源碼包fftw-2.1.5.tar.gz已經(jīng)拷貝在 /mnt下,可通過(guò)“cp fftw全路徑 fftw目標(biāo)路徑”操作,具體參照cp命令 tar
xvf
fftw-3.3.2.tar cd
fftw-3.3.2 ./configure --prefix=/opt/fftw --enable-float (進(jìn)行安裝前注冊(cè)) /opt/fftw是安裝目錄,可根據(jù)需要進(jìn)行更改,這個(gè)路徑對(duì)后面的Makefile.g++有影響, make make
install
2 安裝mpich 終端輸入: cd /mnt gunzip mpich2-1.4.1p1.tar.gz tar xvf mpich2-1.4.1p1.tar cd /mpich2-1.4.1p1 ./configure --prefix=/opt/mpich make sudo
make install 修改環(huán)境變量 cd gedit .bashrc 在彈出的環(huán)境變量文件末尾添加下面代碼: If [ -f /etc/bashrc ]; then . /etc/bashrc fi expot export LD_LIBRARY_PATH=/opt/mpich/lib:/opt/fftw/lib:$LD_LIBRARY_PATH 注:如果你的mpich不是裝在/opt/mpich下面,需要把上面代碼修改成實(shí)際路徑 3 安裝lammps cd /mnt gunzip lammps.tar.gz tar xvf lammps.tar mv lammps-30Aug12 lmp cd /lmp/src 查看已經(jīng)安裝了那些包 make package-status 需要特殊安裝就 make yes-meam make yes-reax make
yes-peri 也可以make yes-all,會(huì)因缺少文件出錯(cuò)所以不建議,也可都卸載make no-all 同時(shí)注意,因?yàn)槟阌玫氖?/span>gfortran編譯器,所以里面有個(gè)Makefile.lammps的文件需要修改一下,poems不用它用的是g++編譯器: cd /mnt/lmp/lib/meam gedit Makefile.lammps 其中 meam_SYSINC = meam_SYSLIB = meam_SYSPATH =
make -f
Makefile.gfortran cd /mnt/lmp/lib/poems make -f Makefile.g++ cd /mnt/lmp/lib/reax gedit Makefile.lammps 其中 reax_SYSINC = reax_SYSLIB = - reax_SYSPATH =
make -f Makefile.gfortran 下面就是重要的Makefile.g++的編譯了,也可以Makefiel.serial 這里的東西比較難改,我已經(jīng)做好了一個(gè)如果路徑一樣可以直接用我的Makefile.g++, 如果路徑不一樣,黑體字部分路徑需要修改,先敲兩行命令調(diào)出Makefile。 cd /mnt/lmp/src/MAKE gedit Makefile.g++ 開(kāi)始修改 # g++ = RedHat Linux box, g++4, MPICH2, FFTW SHELL = /bin/sh # --------------------------------------------------------------------- # compiler/linker settings # specify flags and libraries needed for your compiler CC
= CCFLAGS
= DEPFLAGS = LINK
= LINKFLAGS = LIB
= ARCHIVE
= ARFLAGS
= SIZE
= # --------------------------------------------------------------------- # LAMMPS-specific settings # specify settings for LAMMPS features you will use # if you change any -D setting, do full re-compile after "make clean" # LAMMPS ifdef settings, OPTIONAL # see possible settings in doc/Section_start.html#2_2 (step 4) LMP_INC
= # MPI library, REQUIRED # see discussion in doc/Section_start.html#2_2 (step 5) # can point to dummy MPI library in src/STUBS as in Makefile.serial # INC = path for mpi.h, MPI compiler settings # PATH = path for MPI library # LIB = name of MPI library MPI_INC
= MPI_PATH
= MPI_LIB
= # FFT library, OPTIONAL # see discussion in doc/Section_start.html#2_2 (step 6) # can be left blank to use provided KISS FFT library # INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings # PATH = path for FFT library # LIB = name of FFT library FFT_INC = FFT_PATH = -L/opt/fftw/lib FFT_LIB
= # JPEG library, OPTIONAL # see discussion in doc/Section_start.html#2_2 (step 7) # only needed if -DLAMMPS_JPEG listed with LMP_INC # INC = path for jpeglib.h # PATH = path for JPEG library # LIB = name of JPEG library JPG_INC
= JPG_PATH =
JPG_LIB
= # --------------------------------------------------------------------- # build rules and dependencies # no need to edit this section include include EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) # Link target $(EXE): # Library target lib: # Compilation rules %.o:%.cpp %.d:%.cpp # Individual dependencies DEPENDS = $(OBJ:.o=.d) include $(DEPENDS) 保存后開(kāi)始安裝lammps cd /mnt/lmp/src make clean-all make
serial mv lmp_serial lmp 4 并行計(jì)算一example a:終端輸入 cd
/mnt/lmp/examples/shear cp /opt/mpich/bin/mpirun /mnt/lmp/e*/shear cp /mnt/lmp/src/lmp
/mnt/lmp/e*/shear mpirun –np 4
./lmp<in.shear b:終端輸入(方法二,比較簡(jiǎn)單,直接給mpirun和lmp的絕對(duì)路徑,不需要拷貝了) cd /mnt/lmp/e*/shear /opt/mpich/bin/mpirun –np 4 /mnt/lmp/src/lmp<in.shear |
|
來(lái)自: day_day__UP > 《program setup》