HΦのbuild (Intel Mac編)
はじめに
今回は
環境
今回はIntel Macです.
- MacBook Pro (2017)
- macOS Catalina 10.15.7
M1 Macは持っていないので購入する機会があればやってみます.
要件(使用libraryなど)
- C compiler
- Fortran compiler (付属する
などのbuildに使われます)K\omega - CMake (version 2.8.0以上)
- BLAS/LAPACK
- (MPI library)
Intelが開発環境を提供するoneAPIを使用してIntel C/Fortran compilerとLAPACK (Intel MKL)を用意します.
今回はMPIを使用しません.
これはoneAPIがmacOS用のMPI libraryを提供してくれないことに起因していますが, 自分でOpenMPIなどのMPI libraryを自分で用意すればbuildできるはずです(未検証).
CMakeのinstall
brewがあれば
brew install cmake
するだけです.
oneAPIのinstall
ここからIntel oneAPI Base ToolkitとIntel oneAPI HPC Toolkitをdownload & installしてください.
基本的にinstallerの指示に従うだけです.
ただ, Intel Pythonが既に導入されているPython環境を破壊するのでinstallするsoftwareから外した方が良いです.
\mathcal{H}\Phi のdownload & 展開
今回は現在最新版のversion 3.5.0をbuildします.
今後もupdateされると思いますので, 以下のcommand中の3.5.0
をこちらから最新版(あるいはお好みのversion)を確認して適宜置き換えてください.
wget https://github.com/issp-center-dev/HPhi/releases/download/v3.5.0/HPhi-3.5.0.tar.gz
tar xvf HPhi-3.5.0.tar.gz
あるいはwget
がなければ
curl -OL https://github.com/issp-center-dev/HPhi/releases/download/v3.5.0/HPhi-3.5.0.tar.gz
tar xvf HPhi-3.5.0.tar.gz
build
展開するとHPhi-3.5.0
directoryができるので移動してbuildします.
cd HPhi-3.5.0
cmake -S . -Bbuild -DCONFIG=intel -DENABLE_MPI=OFF
cmake --build build
以上のcommandでHPhi-3.5.0
directoryの下にbuild
directoryが作成され, その下に
build
は別のdirectoryでも構いませんのでお好みで変更してください.
PATHを通す
build
directory下のsrc
directoryに作成されます.
適宜PATHを通すなどして実行できるようにしてください.
export PATH=$PATH:SOME_DIR_PATH/HPhi-3.5.0/build/src/
SOME_DIR_PATH
は適宜
buildに失敗したとき
buildに失敗した場合は, build
directoryを消してやり直してください.
rm -r build
buildの確認 & 計算の実行
動作確認
以下ではPATHを通すなどして
まず
HPhi -v
で
HPhi version 3.5.0
と返ってくることを確認してください.
実行できなかった場合はPATHを確認するなどしてください.
sampleの実行
次にsampleを実行して動作確認します.
HPhi-3.5.0/samples
directoryにtutorial用のinput fileがありますので適宜好きなtutorialを実行してみてください.
# standard mode
HPhi -s stan.in
# expert mode
HPhi -e namelist.def
今回はinput fileの書き方などについては触れません.
詳しくは
あるいは, HPhi-3.5.0
directoryで
open doc/userguide_HPhi_ja.pdf
を実行してもmanualが確認できます.
なお, stan.in
とnamelist.def
はinput file名で実際の計算やtutorial毎に名前が異なる場合があるので注意してください.
また, tutorialによって前処理/後処理があるものがありますので, 基本的にそれらを含めて行うshell script run.sh
を実行する方が良いです.
cd samples/tutorial_1.1
bash run.sh
tutorialの一括実行
tutorialを一括実行するPython 3のscriptがありますのでPython 3があれば使用できます.
cd samples
python do_all.py ../build/src/HPhi
以下のような出力が出ます.
#########Test 1/14#############
Check: tutorial_1.1
Start calculation.
elapsed_time:1.2598011493682861[sec]
OK : SOME_DIR_PATH/HPhi-3.5.0/samples/tutorial_1.1
#########Test 2/14#############
.
.
.
全てOKが出れば問題ありません.
自分の場合はTest 13/14(tutorial_4.2)で
dyld: Library not loaded: @rpath/libmkl_intel_lp64.2.dylib
Referenced from: SOME_DIR_PATH/HPhi-3.5.0/build/src/HPhi
Reason: image not found
と出てきましたがtestはpassしており, 対応する操作を手でやってみたところ何も問題が発生しなかったので謎です...
まとめ
wget https://github.com/issp-center-dev/HPhi/releases/download/v3.5.0/HPhi-3.5.0.tar.gz
tar xvf HPhi-3.5.0.tar.gz
cd HPhi-3.5.0
cmake -S . -Bbuild -DCONFIG=intel -DENABLE_MPI=OFF
cmake --build build
なお, makeの-j
optionを使う場合はcmake --build build
の前に
export MAKEFLAGS=-j8
とします. この例は8並列です.
CMake 3.12以降であれば-j
optionをそのまま指定できます.
cmake --build build -j8
Discussion