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 referenceDSO missing from command line エラーが発生した.


  1. 上記でコンパイルは一応できた.