- ユーザー操作:
- ユーザーはSSHを使用してクラスターにログイン
- OpenFOAMのケースディレクトリとSLURMジョブスクリプトを準備
sbatchやsrunコマンドでジョブを投入
- SLURM管理:
- SLURMコントローラーがジョブを受け付け
- ジョブスケジューラーが優先順位と利用可能なリソースを評価
- 要求されたリソースに基づいて適切な計算ノードを割り当て
- 計算プロセス:
- ノードが割り当てられると、OpenFOAM計算が開始
decomposeParで自動的にケースが分割される
- 各計算ノードが領域の一部を担当
- MPI(Message Passing Interface)でノード間通信
- OpenFOAMワークフロー:
decomposePar:領域を並列部分に分割
- 並列ソルバーが複数ノードで同時実行
reconstructPar:結果を単一のソリューションに統合
- ストレージシステム:
- 共有ストレージから入力ファイルを読み込み
- 結果を共有ストレージに書き込み
- すべてのノードが同じファイルシステムにアクセス可能
#!/bin/bash
#SBATCH --job-name=openfoam_calc
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=32
#SBATCH --time=24:00:00
#SBATCH --partition=compute
# OpenFOAMモジュールの読み込み
module load openfoam
# ケースの分割
decomposePar
# 並列でソルバーを実行
mpirun simpleFoam -parallel
# 結果の再構築
reconstructPar