インストール (2) OneAPI リビルド

概要

  • PHITSをIntel OneAPI環境下で再ビルドし、MPIやOpenMPに対応した実行ファイルを構築する.

  • PHITSのインストールでは、 (1) ライブラリや反応断面積データベースのディプロイ、(2) コンパイル、 (3) パス設定などを実施しているはず.

  • 既存インストールのPHITSで、srcディレクトリ内のMakefileを編集し、再コンパイルすれば、 OneAPIコンパイラ(ifx)を用いたPHITSへ変更可能


手順概要

  1. OneAPIをインストール(Fortranのページ参照).

  2. phits/src/にて、 makefile を編集.

  3. makeを実行.

  4. 作成された実行ファイルをphits/bin/へコピーして、phits.shの対象実行ファイルを書き換える.

  5. 上記、2-4は、OMP, MPI, 両方なしの3種類で作成する.


Makefileの編集

phits/src/makefile 内のビルド構成を変更する.

  • 既存の LinIfort セクション ( ifeqでマッチしている箇所 )を複製し、LinuxOneAPI の新たなセクションを作成する.

  • FC=mpiifortFC=mpiifx に,または FC=ifortFC=ifx に変更する.

  • LinIfortで検索して、引っかかる部分は、LinuxOneAPIにもマッチするように、適宜複製.(面倒であれば、LinIfortのFCを置き換えても良い.)

  • 必要に応じて FFLAGS も適宜調整する(例:-O3 -xHost -heap-arrays など).


USEOMP, USEMPI の組み合わせ

以下の3パターンをそれぞれ make 時に定義してビルドする:

  • USEOMP=0 USEMPI=0:シングルスレッド版(逐次実行用)

  • USEOMP=1 USEMPI=0:OpenMP並列化版

  • USEOMP=0 USEMPI=1:MPI並列化版

ビルド例:

make -j 8 ENVFLAGS=LinuxOneAPI USEOMP=0 USEMPI=0
make -j 8 ENVFLAGS=LinuxOneAPI USEOMP=1 USEMPI=0
make -j 8 ENVFLAGS=LinuxOneAPI USEOMP=0 USEMPI=1

実行ファイルの配置

ビルドされた実行ファイルは、phits/ ディレクトリ下に次のようなファイル名で出力される:

  • phits_LinuxOneAPI (シングルスレッド版)

  • phits_LinuxOneAPI_OMP (OpenMP版)

  • phits_LinuxOneAPI_MPI (MPI版)

これらを phits/bin ディレクトリにコピーする.


phits.sh の修正

PHITS起動スクリプト phits/bin/phits.sh を編集し、実行対象を以下のように変更する:

PHITS_SINGLE_EXE=phits_LinuxOneAPI
PHITS_OMP_EXE=phits_LinuxOneAPI_OMP
PHITS_MPI_EXE=phits_LinuxOneAPI_MPI

これにより、phits.sh 実行時に OneAPI + MPI 版 PHITS を使用するようになる.


補足

OneAPI の環境を有効にするには、以下の実行が必要:

source /opt/intel/oneapi/setvars.sh

makefileがわかってない場合は、コンパイラの位置として、絶対パスを指定するなどする.