在华为云进行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 &