| 6 | 1/1 | 返回列表 |
| 查看: 3405 | 回復(fù): 5 | |||||||||
pengjun74銀蟲 (初入文壇)
|
[交流]
Ubuntu下安裝lammps單機(jī)版(no MPI,no FFT)幾點(diǎn)心得 已有2人參與
|
|
說明一下:我用的是ubuntu12,自動更新到13(去系統(tǒng)自帶的“軟件中心”安裝谷歌拼音輸入法,方便后面操作)。下載的lammps為2014年5月份的。 1.更改系統(tǒng)默認(rèn)的shell 由于ubuntu系統(tǒng)默認(rèn)的shell是dash,它更小巧、更快。但是聽說安裝一些腳本時(shí)容易出錯(cuò),因此還是改為bash。 查看系統(tǒng)默認(rèn)的shell, ls -l /bin/sh 重新配置dash, sudo dpkg-reconfigure dash 然后選擇[no],終端會自己刪除dash,并更改為bash。 2.預(yù)安裝 sudo apt-get install csh sudo apt-get install build-essential lammps要求ubuntu系統(tǒng)的(用于將ubuntu當(dāng)作debain系統(tǒng)?): sudo add-apt-repository ppa:gladky-anton/lammps sudo apt-get update 3.安裝編譯器 由于電腦CPU是Intel的,所以選擇intel的icc和ifort,聽說會比其他編譯器快很多(主要差別在浮點(diǎn)運(yùn)算?)。下載地址: https://software.intel.com/en-us ... oftware-development,獲得序列號。我下載安裝的是icc2013_sp1.2.144,ifort2013_sp1.2.144版的。 先裝(命令集), sudo apt-get install g++ 去解壓包的目錄下,我的是cd /home/bill/icc sudo ./install.sh ifort的安裝與此相同。 設(shè)置環(huán)境變量,使之生效。 gedit .bashrc 打開.bashrc后,在末尾加上 # l_ccompxe_2013_sp1.2.144 # l_fcompxe_2013_sp1.2.144 這兩行只是用來注釋的 source /opt/intel/bin/compilervars.sh ia32 加這一條可同時(shí)使icc,ifort,icpc生效,而不用分別添加。因?yàn)閏ompilervars.sh本身就包含了它們的鏈接。 保存,關(guān)閉。 source .bashrc 測試確認(rèn)一下:輸入which icc,再which icpc,which ifort 卸載和安裝前面的步驟相同,只需在安裝菜單中選“卸載”。 4.MPI和FFT 我是用單機(jī)算的,因此沒裝MPI,它是用來不同平臺之間并行計(jì)算的。對于單機(jī),還有一個(gè)多核并行計(jì)算的問題,即openMP。由于intel的編譯器已包括了它,所以不用專門去安裝。這里也把網(wǎng)上的安裝MPI和FFT的貼過來吧: (1)先去軟件中心下載mpich2,這樣省事。cd mpich2-1.0.2p1(去解壓包的目錄)./configure --prefix= /opt/mpich2-gnu(配置,好像這個(gè)命令是要求要有g(shù)nu的)make(會出來好多選項(xiàng))再make install(安裝)。 (2)去官網(wǎng)下載,http://www.fftw.org/download.html,解壓后,cd fftw-2.1.5,./configure --prefix=/opt/mathlib/fftw215-gnu --enable-float,make,make install。 5.編譯lammps (1)MPI庫:去官網(wǎng)下載安裝包,http://lammps.sandia.gov/download.html#tar,常選“發(fā)展包”。 去lammps/src/STUBS/目錄下,將Makefile中的g++改為icc,保存。該目錄是關(guān)于MPI的。 cd /home/bill/lammps/src/STUBS/ make 生成libmpi_stubs.a,是用于非并行的“偽MPI庫”,還有 mpi.o是整體編譯lammps時(shí)用于鏈接的“中間目標(biāo)文件”。 (2)額外庫:poems是C語言寫的,可用icc來編譯;meam和reax是用fortran語言寫的,可用ifort編譯。 cd /home/bill/lammps/lib/poems make -f Makefile.icc 即開始用icc來編譯poems了。會在lammps/lib/poems目錄下會生成一個(gè)libpoems.a庫文件,用于編譯整個(gè)lammps時(shí)調(diào)用,還有一個(gè)Makefile.lammps,用于引導(dǎo)編譯時(shí)相關(guān)庫的調(diào)用,另外還有若干*.o的“中間目標(biāo)文件”。(舊版的lammps是直接去MAKE下的Makefile.*加路徑,現(xiàn)在則通過各個(gè)“額外包”的Makefile.lammps來改,這樣操作更方便、集中) cd /home/bill/lammps/lib/meam make -f Makefile.ifort 即開始用ifort編譯meam了。會在lammps/lib/meam目錄下生成libmeam.a,Makefile.lammps,*.o。將其Makefile.lammps改為 meam_SYSINC = meam_SYSLIB = -lifcore -lsvml -liompstubs5 -limf meam_SYSPATH = -L/opt/intel/composerxe/lib/ia32 第二行有四個(gè)庫,-lifcore調(diào)用libifcore.a庫,為ifort編譯器所需;-lsvml 調(diào)用libsvml.a庫,是short vector math library;-liompstubs5(舊版的ifort是-lompstub,若裝的是新版的ifort用它就會出錯(cuò))調(diào)用libompstub.a庫,它與OMP的一個(gè)子程序相關(guān),用它(intel編譯器已經(jīng)預(yù)裝了)就不用另外安裝OMP了;-limf調(diào)用libimf.a庫,是一個(gè)數(shù)學(xué)庫。 第三行為安裝的intel編譯器的庫(鏈接*.o時(shí)候用的?)的地址。 reax的安裝與meam的步驟相同。 (3)選擇和修改Makefile文件:編譯之前先去修改負(fù)責(zé)編譯整個(gè)lammps的Makefile文件。lammps/src/目錄下有個(gè)Makefile.sh,用于引導(dǎo)Makefile.*的選擇,這些備選的Makefile文件都在lammps/src/MAKE目錄下。比如在src目錄下輸make linux,則編譯時(shí)將使用Makefile.linux文件來編譯整個(gè)lammps。我只要做串行計(jì)算,因此選擇的是Makefile.serial這個(gè)文件。在用它進(jìn)行編譯之前,先對它作一點(diǎn)修改。1.編譯器部分兩處改為icc。2.如果安裝了MPI和FFT,則要修改MPI和FFT相應(yīng)的部分,比如 MPI_INC = -I/opt/mpich/include -DMPICH_SKIP_MPICXX MPI_PATH = -L/opt/mpich/lib MPI_LIB = -lmpich -lpthread FFT_INC = -I/opt/fftw/include -DFFT_FFTW FFT_PATH = -L/opt/fftw/lib FFT_LIB = -lfftw3f 3.如果要使用JPEG的功能(in文件中有相應(yīng)的輸出JPEG圖片的命令),則要修改相應(yīng)的部分。 修改完后,保存。 (4)整體編譯lammps:該準(zhǔn)備的都準(zhǔn)備好后(主要是庫文件和Makefile文件),就可以開始編譯整個(gè)lammps了。 回到lammps/src/目錄下(其實(shí)前一步也還是在這個(gè)目錄下) cd /home/bill/lammps/src/ 查看各包的選擇狀態(tài),make package-status 選擇和剔除各包,我選的是 make yes-all,然后 make no-gpu make no-kim make no-mpiio make no-voronoi make no-user-atc make no-user-awpmd make no-user-colvars make no-user-cuda make no-user-lb make no-user-qmmm 總共安裝了22+8=30個(gè)包。其中27個(gè)平常的(user-omp需要openMP,單核并行),3個(gè)額外包(poems,meam和reax)。 剔除了4+6=10個(gè)特殊包。其中g(shù)pu需要cuda(有兩個(gè)cuda需要注意區(qū)分),voronoi需要voro++,user-atc需要blas和lapack庫,user-awpmd需要openMPI(多核并行)。 最后即可開始編譯lammps了, cd /home/bill/lammps/src/ make clean-all make serial 編譯成功后會在該目錄下生成名為lmp_serial.exe(后綴可能看不到)的可執(zhí)行文件?蓮(fù)制、剪切、更改名字,復(fù)制到其他地方的同樣可進(jìn)行計(jì)算。 6.用編譯好的lammps來進(jìn)行計(jì)算 將in.*即in文件(可能會帶一個(gè)data.*文件)與lmp_serial.exe放在同一個(gè)目錄下。若用的是lammps/examples里的in文件,則需要先把dump命令前的#去掉,還可以按需要把輸出的步子比如50改為10等。 先去該目錄下, cd /home/bill/Compute 在該目錄下, ./lmp_serial < in.name 即開始計(jì)算了,生成數(shù)據(jù)文件dump.*,包含位置等信息,以及日志log.cite,log.lammps等,記錄命令的運(yùn)行情況。 7.對計(jì)算結(jié)果進(jìn)行可視化 (1)安裝VMD(visual Molecular Dynamics):預(yù)裝 sudo apt-get install build-essential csh sudo apt-get install csh sudo apt-get install libstdc++5(安裝編譯器也要用到它?) 下載,http://www.ks.uiuc.edu/Developme ... cgi?PackageName=VMD,解壓。 如果要更改安裝位置,則先去目錄/home/bill/vmd-1.9.1/下,找到并修改configure文件, install_bin_dir="/home/bill/lammps-18Apr14/src"(startup script一個(gè)啟動腳本,引導(dǎo)作用) install_library_dir="/home/bill/vmd-1.9.1/bin/$install_name"(executables一個(gè)可執(zhí)行文件,一個(gè)用于實(shí)際運(yùn)行的文件) 如果默認(rèn)安裝路徑/usr/local/bin/vmd(啟動腳本),則上面不用改。 改好后進(jìn)行配置, cd /home/bill/vmd-1.9.1 ./configure (出現(xiàn)幾個(gè)選項(xiàng),using configure.options: LINUX OPENGL FLTK TK ACTC CUDA IMD LIBSBALL XINERAMA XINPUT LIBTACHYON VRPN NETCDF TCL PTHREADS SILENT ICC) ./configure LINUX(選LINUX) 配置好后,開始安裝, cd src(或者cd /home/bill/vmd-1.9.1/src) sudo make install 試試 vmd 命令,直接在終端輸“vmd”,結(jié)果出現(xiàn) rlwrap: Command not found. 但仍然可以運(yùn)行,并出現(xiàn)vmd的兩個(gè)窗口界面。 去軟件中心搜“rlwrap”,下載、安裝即可。若運(yùn)行vmd還是出現(xiàn)那個(gè)問題,就去/usr/local/bin下找名為vmd的啟動腳本,修改它。 先用命令改其權(quán)限。 sudo chmod g+rw /usr/local/bin/vmd 再打開該文檔,查找與rlwrap有關(guān)的字段,有兩處亂碼,是需要slash才能正確顯示的符號。不想安裝slash就要把以下亂碼刪除。 -b(){}[],&^%#;|\\ 為了留個(gè)記錄,可把原句注釋掉(在該行最開頭加個(gè)符號#),再在下面加上沒有亂碼的語句。 再用chmod命令把文件的屬性改回來(也可以不改),運(yùn)行vmd試試。 (2)先把前面計(jì)算得到的dump.*文件改為vmd所要求的.lammpstrj格式,可直接在dump文件名后加此后綴。 運(yùn)行vmd:在終端輸入vmd,打開軟件的主界面和圖示界面。 載入分子或原子:點(diǎn)開主界面的“File→New Molecules”,會彈出一個(gè)名為“Molecule File Browser”的菜單。先在Determine file type下選擇LAMMPS Trajectory,再點(diǎn)Browser,去合適的目錄下尋找.lammpstrj格式的文件,最后點(diǎn)Load,即可導(dǎo)入分子或原子。 改變顯示方式:在主菜單下Graphics→Representations,會彈出Graphical Representations。Drawing Method下選,VDW,此時(shí)原子顯示為小球。更改球的半徑,Sphere Scale調(diào)為0.5或0.4。 將模擬過程保存為動畫:主菜單Extensions→Visualization→Movie Maker,會彈出一個(gè)名為VMD Movie Generator的菜單。先在Movie Settings下選擇Trajectory即輸出軌跡(此菜單下還可決定是否刪除在制作動畫過程中生成的一系列圖片),再點(diǎn)Set working directory設(shè)置輸出動畫的地址。如果要輸出GIF格式的圖片,則Fornat→Animated GIF(ImageMagick);如果要輸出mpeg格式的視頻,則Format→mpeg-1(ppmtompeg)。最后Make Movie,開始制作。在使用這兩個(gè)功能之前,需要先安裝相應(yīng)的插件(可通過軟件中心):ImageMagick用以輸出GIF,NetPBM用以輸出mpeg。 |
資源收集 | 分子動力學(xué) | MD分子動力學(xué) | 科研 |
lammps學(xué)習(xí) | 分子動力學(xué) |
銅蟲 (初入文壇)
銅蟲 (初入文壇)
銀蟲 (初入文壇)
銀蟲 (小有名氣)
銀蟲 (初入文壇)
| 6 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 298-一志愿中國農(nóng)業(yè)大學(xué)-求調(diào)劑 +7 | 手機(jī)用戶 2026-03-17 | 7/350 |
|
|---|---|---|---|---|
|
[考研] 一志愿985,本科211,0817化學(xué)工程與技術(shù)319求調(diào)劑 +6 | Liwangman 2026-03-15 | 6/300 |
|
|
[考研] 化學(xué)工程321分求調(diào)劑 +14 | 大米飯! 2026-03-15 | 17/850 |
|
|
[考研] 一志愿中國海洋大學(xué),生物學(xué),301分,求調(diào)劑 +3 | 1孫悟空 2026-03-17 | 3/150 |
|
|
[考研] 307求調(diào)劑 +3 | 冷笙123 2026-03-17 | 3/150 |
|
|
[考研] 268求調(diào)劑 +6 | 簡單點(diǎn)0 2026-03-17 | 6/300 |
|
|
[考研] 301求調(diào)劑 +4 | A_JiXing 2026-03-16 | 4/200 |
|
|
[考研] 332求調(diào)劑 +6 | Zz版 2026-03-13 | 6/300 |
|
|
[考研] 26考研求調(diào)劑 +6 | 丶宏Sir 2026-03-13 | 6/300 |
|
|
[考研] 274求調(diào)劑 +5 | 時(shí)間點(diǎn) 2026-03-13 | 5/250 |
|
|
[考研] 328求調(diào)劑 +3 | 5201314Lsy! 2026-03-13 | 6/300 |
|
|
[考研] 材料與化工求調(diào)劑一志愿 985 總分 295 +8 | dream…… 2026-03-12 | 8/400 |
|
|
[考研] 材料工程調(diào)劑 +9 | 咪咪空空 2026-03-12 | 9/450 |
|
|
[考研] 求材料調(diào)劑 +5 | 隔壁陳先生 2026-03-12 | 5/250 |
|
|
[考研] 333求調(diào)劑 +3 | 球球古力 2026-03-11 | 3/150 |
|
|
[考研] 310求調(diào)劑 +3 | 【上上簽】 2026-03-11 | 3/150 |
|
|
[考研] 工科278分求調(diào)劑 +5 | 周慢熱啊 2026-03-12 | 7/350 |
|
|
[考研] 295求調(diào)劑 +3 | 小匕仔汁 2026-03-12 | 3/150 |
|
|
[論文投稿]
投稿問題
5+4
|
星光燦爛xt 2026-03-12 | 6/300 |
|
|
[考研] 277求調(diào)劑 +4 | anchor17 2026-03-12 | 4/200 |
|