在華爲雲進行openfoam並行測試,採用nfs共享進行openfoam-2.4.0的安裝並行。
系統爲centOS6.5,只支持openfoam-2.4.0以下版本的源代碼編譯。
參考:
https://blog.csdn.net/ztq157677114/article/details/49819925
- 安裝包準備
所需程序安裝包包括
Openfoam-2.4.0、Thirdparty-2.4.0
依賴庫安裝包包括:
gcc-4.8.5,gmp-5.1.2,mpfr-3.1.2,mpc-1.0.1,boost-1.55.0,llvm-3.4.src.tar.gz, qt-everywhere-opensource-src-4.7.3.tar.gz
並行安裝包
Mpich-3.3或openmpi-1.8.5,openfoam第三方庫中的openmpi-1.8.5有問題,需要重新下載。採用mpich並行需要修改openfoam-2.4.0/etc/config下的setting.sh文件以及openfoam-2.4.0/etc/bashrc文件。 - 安裝步驟
a) 創建路徑,解壓縮。安裝目錄/opt/OpenFOAM。
/opt/OpenFOAM爲安裝包默認安裝路徑,嘗試過修改爲其他路徑,但總是出現腳本路徑報錯。腳本中路徑邏輯關係太煩了,就用的默認路徑。
mkdir /opt/OpenFOAM
tar -zxf OpenFOAM-2.4.0.tgz -C /opt/OpenFOAM/
tar -zxf ThirdParty-2.4.0.tgz -C /opt/OpenFOAM/
cd /opt/OpenFOAM
b) 修改配置文件
需要修改的文件有兩個,分別是位於/opt/OpenFOAM/OpenFOAM-2.4.0/etc/bashrc和/opt/OpenFOAM/OpenFOAM-2.4.0/etc/config/settings.sh。
foamInstall 修改文件安裝目錄
foamCompiler 選擇編譯器,ThirdParty表示採用ThirdParty中的第三方編譯器及其他庫來進行編譯。Openfoam不支持混合編譯,如gcc用系統自帶,cgal用thirdParty中的軟件,這種不支持。需要全部用系統自帶或者全部爲第三方庫。
雖然我安裝服務器爲centOS中gcc爲4.8.5,但依然選用ThirdParty
WM_MPLIB=MPICH,選擇並行軟件,默認systemOpenMPI。選擇openmpi,默認版本爲1.8.5。我在安裝時openmpi-1.8.5不能實現並行,無論是採用thirdParty自帶openmpi或者官方下載的openmpi。根據官方論壇所述,系統自帶openmpi存在問題,在2.4.5後續版本已經修復。
選擇MPICH,系統默認版本爲mpich2-1.1.1p1,需要在setting.sh中修改爲mpich3.3。安裝時要保持文件夾名稱一致。
setting.sh
- 修改ThirdParty下依賴庫版本號
- 修改MPICH下並行軟件版本號
注意:嚴格按照settings.sh文件中規定的版本下載相應的包並解壓到ThirdParty目錄下,解壓後的名字和圖片中的一致。需要下載的包有gcc-4.8.2,mpfr-3.1.2, gmp-5.1.2, mpc-1.0.1, boost-1.55.0,llvm-3.4.src.tar.gz,qt-everywhere-opensource-src-4.7.3.tar.gz
加入環境變量:
vim ~/.bashrc
source /opt/OpenFOAM/OpenFOAM-2.4.0/etc/bashrc
export PLATFORM=/opt/OpenFOAM/ThirdParty-2.4.0/platforms
關閉.bashrc
生效source ~/.bashrc
配置完成 開始編譯
- 編譯gcc
cd /opt/OpenFOAM/ThirdParty-2.4.0
tar -jxvf gcc-4.8.5.tar.bz2
mkdir gcc-4.8.5
進入安裝目錄
./configure –prefix=/opt/OpenFOAM/ ThirdParty-2.4.0/ gcc-4.8.5
make
make install
gcc –v ###正確後將編譯後文件拷貝到$PLATFORM/linux64/gcc-4.8.5/目錄
vim /root/.bashrc //加入環境變量
export PATH=$PLATFORM/linux64/gcc-4.8.5/bin:$PATH
LD_LIBRARY_PATH=$PLATFORM/linux64/gcc4.8.5/lib:$PLATFORM/lnux64/gcc4.8.2/lib64:$PLATFORM/linux64/mpc1.0.1/lib:$PLATFORM/linux64/mpfr-3.1.2/lib:$PLATFORM/linux64/gmp5.1.2/lib:$LD_LIBRARY_PATH
export LD_LIBRAYR_PATH
###保存退出
source /root/.bashrc
安裝完成查看版本gcc –version,若爲4.8.5則安裝成功 - 編譯cmake
./makeCmake
編譯成功後,添加環境變量
export PATH=$PLATFORM/linux64Gcc/cmake-2.8.12.1/bin:$PATH
若自帶腳本編譯不成功,可獨立編譯。參考gcc編譯過程 - 編譯cgal
makeCGAL的軟件安裝包名稱需要修改。
./makeCGAL
export PATH=$PLATFORM/linux64Gcc/CGAL-4.6/bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64Gcc/CGAL4.6/lib:$LD_LIBRARY_PATH - 編譯llvm
./makeLLVM
export PATH=$PLATFORM/linux64/llvm-3.4/bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64/llvm-3.4/lib:$LD_LIBRARY_PATH - 編譯qt
./makeQt
export PATH=$PLATFORM/linux64Gcc/qt-4.7.3/bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64Gcc/qt-4.7.3/lib:$LD_LIBRARY_PATH - 編譯Scotch
cd /opt/OpenFOAM/ThirdParty-2.4.0/scotch_6.0.3/src
make
make install
完成後將編譯後文件夾拷貝到$PLATFORM/linux64/ scotch_6.0.3/目錄
或者./Allwmake 編譯 - 編譯mpich-3.3
進入安裝文件夾
./configure --prefix=/opt/OpenFOAM/ ThirdParty-2.4.0/ mpich-3.3
make
make install
export PATH=$PLATFORM/linux64Gcc/mpich2-1.1.1p1/bin:$PATH
export LD_LIBRARY_PATH=$PLATFORM/linux64Gcc/mpich2-1.1.1p1/include: $LD_LIBRARY_PATH
測試是否成功: whereis mpirun 顯示安裝目錄則成功 - OpenFOAM編譯
cd /opt/OpenFOAM/OpenFOAM-2.4.0
./Allwmake
編譯成功,若需日誌,可採用./Allwmake >allmake.log 2>&1 &