文章目錄
- 更新
- 基本需求
- 安裝編譯環境
- 安裝fftw
-
- 準備
- 配置安裝位置及安裝
- 配置路徑
- 安裝mpich
-
- 準備
- 配置安裝位置及安裝
- 配置路徑
- 安裝lammps
-
- 準備
- 安裝配置
- 切換使用者
- 編譯
- 版本管理
- 可能出現的問題及解決
-
- `mpicxx:cammond not found`
記錄LAMMPS的編譯過程,友善自己使用。
歡迎大家通路我的個人網站www.joezhouman.com檢視原文
更新
- 2021年10月1日10:50:22更新
錯誤的解決方案。mpicxx:cammond not found
基本需求
- gcc, g++, gfortran, make
- fftw
- mpich
- lammps
建議使用最新版本,新版本會修複很多bug,沒有什麼某個特定版本最好用一說。
安裝編譯環境
我一般用的Ubuntu,是以直接
安裝fftw
準備
下載下傳
*.tar.gz
檔案至伺服器上,解壓并進入解壓後的檔案夾
tar -zvxf fftw*.tar.gz
cd fftw*
配置安裝位置及安裝
一般使用者的庫最好放在
/usr/local
目錄裡,我喜歡按庫名及版本号分别命名下級檔案夾,友善版本管理,即放在
/usr/local/庫名/版本号
下,
比如這次放在
/usr/local/fftw/3.3.8
sudo ./configure --prefix=/usr/local/fftw/3.3.8 --enable-shared=yes
sudo make -j4 #(這是并行編譯,4為編譯的線程數,可以加快編譯速度)
sudo make install
等待安裝完成。
配置路徑
修改
~/.bashrc
檔案,将類庫安裝檔案夾下的
bin
和
lib
檔案夾加入路徑中。
#My Path
export PATH=$PATH:/usr/local/fftw/3.3.8/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/fftw/3.3.8/lib
在
PATH
和
LD_LIBRARY_PATH
添加相應路徑,如果沒有,則把以上内容都加上去。
修改完後,使用
source ~/.bashrc
使路徑生效
安裝mpich
準備
下載下傳
*.tar.gz
檔案至伺服器上,解壓并進入解壓後的檔案夾
tar -zvxf mpich*.tar.gz
cd mpich*
配置安裝位置及安裝
基本思想與上面一樣,這裡隻列出指令
sudo ./configure --prefix=/usr/local/mpich/3.3.2 --enable-shared=yes
sudo make -j4 #(這是并行編譯,4為編譯的線程數,可以加快編譯速度)
sudo make install
配置路徑
#My Path
export PATH=$PATH:/usr/local/fftw/3.3.8/bin:/usr/local/mpich/3.3.2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/fftw/3.3.8/lib:/usr/local/mpich/3.3.2/lib
修改完後,使用
source ~/.bashrc
使路徑生效
用
which mpirun
檢查一下,如果給出的是剛才路徑下的
bin
檔案夾,則修改成功。
安裝lammps
準備
下載下傳
*.tar.gz
檔案至伺服器上,解壓并進入解壓後的檔案夾
tar -zvxf lammps*.tar.gz
cd lammps/src/MAKE*
安裝配置
在上面進入的路徑下尋找
Makefile.mpi
檔案,對其進行修改。如果該路徑下沒有這一檔案,就去下一級的
MACHIES
裡複制一個過來。
在對于位置填上
fftw
和
mpich
的相關路徑,最終效果如下
# MPICH
MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 -I/usr/local/mpich/3.3.2/include
MPI_PATH = -L/usr/local/mpich/3.3.2/lib
MPI_LIB = -lmpi -lmpl -lpthread
# FFTW
FFT_INC = -DFFT_FFTW3 -I/usr/local/fftw/3.3.8/include
FFT_PATH = -L/usr/local/fftw/3.3.8/lib
FFT_LIB = -lfftw3
# JPEG一般用不到,直接注釋掉
#JPG_INC =
#JPG_PATH =
#JPG_LIB =
切換使用者
lammps 需要使用root使用者進行安裝
切換至root使用者。
将上面的
fftw
及·
mpich
的路徑同樣添加在
/root/.bashrc
中,方法同上。
安裝時出現 mpicxx:cammond not found
錯誤的可能是沒做這一步。
編譯
修改完後,傳回
src
檔案夾,進行編譯
cd ..
make yes-all #安裝所有包
make no-lib #取消安裝需要外鍊的包
sudo make mpi -j40
成功的話
src
路徑下會有一個
lmp_mpi
可執行檔案
版本管理
執行到上一步其實
lammps
已經可以用了,但為了我們使用的友善,有時需要多個編譯版本同時存在,這就需要我們對可執行檔案進行版本管理。
我的方法是将
lammps
可執行檔案放到同一個檔案夾下,我習慣放在
/opt/lammps
裡。
然後按
lmp_LAMMPS版本号_編譯版本說明
重命名
如此次
然後把對應的路徑加入環境變量中
export PATH=$PATH:/usr/local/fftw/3.3.8/bin:/usr/local/mpich/3.3.2/bin:/opt/lammps
大功告成
可能出現的問題及解決
mpicxx:cammond not found
mpicxx:cammond not found
- 見上方
部分切換使用者
- 在安裝
及fftw
時加上配置mpich
(見相應部分)--enable-shared=yes
- 将
及fftw
安裝至mpich
的預設目錄,即lammps
/usr/local/