はじめに
東京大学物性研究所スーパーコンピューターセンターのスーパーコンピュータ(システムB)のコンパイラが2023年4月のメンテナンスから新しくなり,oneAPIしか使えなくなりました。それに伴い様々な問題が発生していましたが、情報を頂きましたのでここに記録します。
これまでIntelMPIを使用するとプログラムがクラッシュする問題が発生していて、OpenMPIの使用が推奨されていましたが、以下のようにするとこれまでの問題を避けることができそうです。
モジュール
使用したモジュールは以下です。
- openapi_compiler/2023.0.0
- oneapi_mkl/2023.0.0
- oneapi_mpi/2023.0.0
以下を実行するか、.bashrc
に記述
module load oneapi_compiler/2023.0.0 oneapi_mkl/2023.0.0 oneapi_mpi/2023.0.0
以下を実行してモジュールがロードされていることを確認
module list
1) oneapi_compiler/2023.0.0 2) oneapi_mkl/2023.0.0 3) oneapi_mpi/2023.0.0
これで使用するプログラムをコンパイルします。
ジョブスクリプト
プログラムが問題無くコンパイルできたならば次はジョブスクリプトを用意します。
コンパイル時に使用した上記のモジュールのロード文に加え、以下をジョブスクリプトに記述します(bashを使用する場合)
export FI_PROVIDER=psm3
私が使用しているプログラムSTATEの場合、Intelコンパイラ+OpenMPIの組み合わせで以前と比べて数倍の計算時間がかかってしまっていましたが、今回教えていただいた変数の設定で以前と同程度の計算速度になりました。これで研究を進めることができそうです。今後Quantum-ESPRESSOでも試す予定です。
物性研スパコン管理者のみなさまと、問合せをしてくれた研究室の学生に感謝です!
かなり改善されたものの完全には問題が解決していないようで、計算の途中でsegmentation faultで止まることがまだあります。
現在ではFAQのohtakaのセクションにも上記の方法が記載されています。