操作
機能 #21
完了CentOS 6上でIntelコンパイラによりOpenFOAMをビルドする
説明
OpenFOAMのソースコードをダウンロードし、Intelコンパイラでビルドする。
MPIについては、Intel MPIを使用する。
参考
http://www.softflow.jp/outpages/PDF/RHEL5_IntelC_IntelMPI_OF22.pdf
http://ofbkansai.sakura.ne.jp/data/OpenFOAM%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB.pdf
高橋 徹 さんが10年以上前に更新
ソースのダウンロード¶
http://www.openfoam.org/download/source.php
現時点の最新版は2.3.0でした。
ビルド試行1¶
ソースTARを展開します。いくつか設定ファイルを変更します。
~$ mkdir -p work/OpenFOAM ~$ cd work/OpenFOAM OpenFOAM$ tar xzf ~/OpenFOAM-2.3.0.tgz : OpenFOAM$
- ~/work/OpenFOAM/OpenFOAM-2.3.0/etc/bashrcを編集
@@ -63,7 +63,7 @@ #- Compiler: # WM_COMPILER = Gcc | Gcc45 | Gcc46 | Gcc47 | Clang | Icc (Intel icc) -export WM_COMPILER=Gcc +export WM_COMPILER=Icc unset WM_COMPILER_ARCH WM_COMPILER_LIB_ARCH #- Architecture: @@ -81,7 +81,7 @@ #- MPI implementation: # WM_MPLIB = SYSTEMOPENMPI | OPENMPI | MPICH | MPICH-GM | HPMPI # | GAMMA | MPI | QSMPI | SGIMPI -export WM_MPLIB=OPENMPI +export WM_MPLIB=INTELMPI #- Operating System: # WM_OSTYPE = POSIX | ???
- ~/work/OpenFOAM/OpenFOAM-2.3.0/etc/config/settings.sh
@@ -86,8 +86,8 @@ 64) WM_ARCH=linux64 export WM_COMPILER_LIB_ARCH=64 - export WM_CC='gcc' - export WM_CXX='g++' + export WM_CC='icc' + export WM_CXX='icpc++' export WM_CFLAGS='-m64 -fPIC' export WM_CXXFLAGS='-m64 -fPIC' export WM_LDFLAGS='-m64' @@ -518,6 +518,7 @@ ;; INTELMPI) + MPI_ROOT=${I_MPI_ROOT} # no trailing slash [ "${MPI_ROOT%/}" = "${MPI_ROOT}" ] || MPI_ROOT="${MPI_ROOT%/}"
ビルドを実行します。
- インテルコンパイル環境の取り込み
OpenFOAM-2.3.0$ . /opt/intel/bin/compilervars.sh intel64 OpenFOAM-2.3.0$ . /opt/intel/impi/4.1.3/bin64/mpivars.sh intel64 OpenFOAM-2.3.0$
- OpenFOAM環境の取り込み
OpenFOAM-2.3.0$ . ./etc/bashrc OpenFOAM-2.3.0$
- bashrcの設定を変える場合、1度sourceした環境で再sourceしても反映されないので、新たなシェル環境を作ってsourceしてください
ビルドの実行
OpenFOAM-2.3.0$ ./Allwmake icc -O3 -no-prec-div -fPIC dirToString.c -o /home/toru/work/OpenFOAM/OpenFOAM-2.3.0/wmake/platforms/linux64Icc/dirToString flex wmkdep.l icc -O3 -no-prec-div -fPIC lex.yy.c -o /home/toru/work/OpenFOAM/OpenFOAM-2.3.0/wmake/platforms/linux64Icc/wmkdep icpc -std=c++0x -wd327,525,654,819,1125,1476,1505,1572 -xHost -O2 -no-prec-div -DNoRepository -fPIC \ wmkdepend.cpp wmkdependParser.cpp wmkdependScanner.cpp \ -o /home/toru/work/OpenFOAM/OpenFOAM-2.3.0/wmake/platforms/linux64Icc/wmkdepend no ThirdParty sources found - skipping : SOURCE=matrices/lduMatrix/lduAddressing/lduInterfaceFields/lduInterfaceField/lduInterfaceField.C ; icpc -std=c++0x -Dlinux64 -DWM_DP -wd327,525,654,819,1125,1476,1505,1572 -xHost -O2 -no-prec-div -DNoRepository -IMake/linux64IccDPOpt -IlnInclude -I. -I/home/toru/work/OpenFOAM/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude -I/home/toru/work/OpenFOAM/OpenFOAM-2.3.0/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64IccDPOpt/lduInterfaceField.o :ビルドにおける試行錯誤
- パッケージzlib-develがインストールされていない
致命的なエラー: ソース ファイル "zlib.h" を開けません。 #include <zlib.h>
- zlib-develパッケージをインストールする
操作