OPAL のインストール手順¶
1. OPALとは¶
OPAL(Object Oriented Parallel Accelerator Library)は、粒子加速器のビームダイナミクスシミュレーションコード.
C++/MPI ベースのシミュレーションコード
大規模な並列計算に対応
電磁場・粒子群の時間発展などを高精度に計算可能
基本はParticle-In-Cell.
2. OPAL のインストールの流れ¶
2.1 OPAL コードの入手¶
公式 GitHub などから OPAL を取得:
git clone https://gitlab.psi.ch/OPAL/src.git opal
( or download from website.)
2.2 HDF5 の入手・コンパイル¶
OPAL では HDF5 ライブラリが必要.
通常、apt install libhdf5-dev で十分だが、OPAL、H5hutを Intel OneAPIコンパイラで使用するには、コンパイルが必要
export ${VERSION}="1.14.6"
wget https://support.hdfgroup.org/releases/hdf5/v1_14/v1_14_6/downloads/hdf5-${VERSION}.html
tar xzf hdf5-${VERSION}.tar.gz
cd hdf5-${VERSION}
./configure --prefix=/opt/hdf5/hdf5-${VERSION}_oneAPI --enable-shared --enable-fortran --enable-cxx --enable-parallel --enable-unsupported CC=mpiicx FC=mpiifx CXX=mpiicpx
make -j4
sudo su
source (PATH_TO_INTEL_COMPILER)/setvars.sh
make install
並列数(-j4)はお好み.
sudo su して、make install ( 最後リンク)をする.
2.3 H5hut の入手・コンパイル¶
H5hut は HDF5 ベースの高性能 I/O ライブラリで,OPAL の依存ライブラリです.
git clone https://gitlab.psi.ch/OPAL/h5hut.git
cd h5hut
mkdir build && cd build
CC=mpiicx CXX=mpiicpx cmake .. -DCMAKE_INSTALL_PREFIX=/opt/h5hut -DHDF5_ROOT=/opt/hdf5/hdf5-${VERSION}_oneAPI
make -j8
sudo make install
2.4 OPAL のコンパイル¶
cmake .. -DCMAKE_C_COMPILER=mpiicx \
-DCMAKE_CXX_COMPILER=mpiicpx \
-DMPI_C_COMPILER=mpiicx \
-DMPI_CXX_COMPILER=mpiicpx \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-L$(dirname $(which mpiicpx))/../lib -lmpi -lmpi_cxx -Wno-error -Wno-deprecated-declarations" \
-DCMAKE_C_FLAGS="-Wno-error-Wno-dprecated-delcarations" \
-DCMAKE_PREFIX_PATH="/usr/lib/x86_64-linux-gnu/hdf5/openmpi;/usr/local" \
-DCMAKE_EXE_LINKER_FLAGS="-lmpi -lmpi_cxx -Wl,-rpath,/usr/lib/x86_64-linux-gnu/hdf5/openmpi;/usr/local" \
-DCMAKE_CXX_STANDARD=17
3. 注意点¶
CMakeList.txt内で、Werrorフラッグを無視
warningをエラー扱いするとコンパイルができないため.
# add_compile_options( -Werror ) とコメントアウト.
HDF5, H5hut, OPALをすべて同じコンパイラ( Intel oneAPI コンパイラ )でビルドする必要あり
Note
GCC と Intel コンパイラを混在させると,undefined reference や DSO missing from command line エラーが発生した.
上記でコンパイルは一応できた.