インストール
まず研究室の orca・bero で環境を選び、必要な言語のライブラリと h5xdmf を用意します。h5cpp は h5c を先にインストールしてください。
orca・bero:導入済みの HDF5 を使う
$HOSTNAME で orca・bero のどちらにいるか確認します。両クラスタとも HDF5 は導入済みです。逐次版は hdf5、MPI 対応版は phdf5 モジュールを選びます。
printf '%s\n' "$HOSTNAME"
module avail hdf5 phdf5
# 逐次版を使う環境
module load hdf5
module show hdf5
並列版を使う場合は、逐次版を外してから切り替えます。コンパイラ・MPI も、その HDF5 を構築した環境と合わせます。モジュールが示す実際の導入先を下の HDF5_ROOT に設定してください。
module unload hdf5
module load phdf5
module show phdf5
以下では導入先を ~/.local/opt/{intel,gnu}/<name>-<version>、版番号がなければ日付 yyyy.mm.dd としています。並列版は h5c-mpi-<version> などの名前で区別できます。
ライブラリをインストールする
以下のコマンドは対象リポジトリのルートで実行します。以下は Intel LLVM を使う例です。GNU を使う場合は GNU 用の HDF5 とプリセットを選びます。
h5fortran
出典:h5fortran/README.md、h5fortran/CMakePresets.json。
Fortran 2008 対応コンパイラ、HDF5 の Fortran・HL コンポーネントが必要です。逐次 API は常に構築され、H5FORTRAN_ENABLE_PARALLEL=ON で並列 API を追加します(既定 OFF)。並列版には MPI Fortran も必要です。
cmake -S . -B build -DHDF5_ROOT=/path/to/hdf5
cmake --build build
cmake --install build --prefix "$HOME/.local/opt/intel/h5fortran-<version>"
/path/to/hdf5 と <version> を実際の値に置換してください。逐次専用にするには次を指定します。
cmake -S . -B build-serial -DH5FORTRAN_ENABLE_PARALLEL=OFF
同梱プリセットを使う場合の構成例です。intel/gnu は逐次、intel-mpi/gnu-mpi は並列です。
cmake --preset intel -DHDF5_ROOT=/path/to/hdf5 -DCMAKE_INSTALL_PREFIX="$HOME/.local/opt/intel/h5fortran-<version>"
cmake --build --preset intel
cmake --install build/intel
API とリンク先は h5fortran の使い方、逐次・並列ターゲットの違いは 可視化用 HDF5 出力を参照してください。
h5c
出典:h5c/README.md。C11 対応コンパイラ、CMake 3.20 以上、HDF5 の C コンポーネントが必要です。
misc/CMakeUserPresets.json.template をコピーし、HDF5_ROOT と CMAKE_INSTALL_PREFIX を編集します。CMakeUserPresets.json はマシン固有のパスを書く場所なので、テンプレートとして別に用意されています。
cp misc/CMakeUserPresets.json.template CMakeUserPresets.json
$EDITOR CMakeUserPresets.json
cmake --preset my-intel
cmake --build --preset my-intel
cmake --install build/my-intel
GNU では my-gnu、並列版では my-intel-mpi に切り替えます(最後の build/ 以下も同じ名前)。並列版は H5C_ENABLE_PARALLEL=ON、既定は OFF です。テンプレートの HDF5 版番号は例なので、モジュールの実際の導入先へ修正します。
h5cpp:h5c の導入後
出典:h5cpp/README.md。C++17 対応コンパイラと CMake 3.20 以上を用意します。先にインストールした h5c と、その h5c と同じ HDF5 の導入先を CMAKE_PREFIX_PATH にセミコロン区切りで設定します。CMAKE_INSTALL_PREFIX は h5cpp 自身の導入先です。
cp misc/CMakeUserPresets.json.template CMakeUserPresets.json
$EDITOR CMakeUserPresets.json
cmake --preset my-intel
cmake --build --preset my-intel
cmake --install build/my-intel
並列版は my-intel-mpi を選び、H5C_ENABLE_PARALLEL=ON で導入した h5c を指定します。H5CPP_ENABLE_PARALLEL は既定 OFF、並列プリセットで ON です。
GNU 用にはユーザープリセットで gnu または gnu-mpi を継承し、対応する依存先を指定します。テンプレートには my-gnu はありません。詳細は h5cpp のビルド設定を参照してください。
h5xdmf
出典:h5xdmf/README.md。Python 3.10 以上と uv を用意し、専用環境へインストールします。
uv tool install git+https://github.com/suzuyuyuyu/h5xdmf.git
h5xdmf --help
次は 配列の次元順序と使い方、出力済みなら ParaView で開く手順へ進みます。
orca・bero 以外のマシン
使用するコンパイラに対応した HDF5 を先に用意します。h5fortran には Fortran・HL、h5c には C コンポーネントが必要です。並列出力には Parallel HDF5 と対応する MPI が必要です。HDF5 の導入先も ~/.local/opt/{intel,gnu}/hdf5-<version> などとし、上記の HDF5_ROOT/CMAKE_PREFIX_PATH に指定します。
その後は同じライブラリ導入手順を使います。