トルクを使用して MPI ジョブのチェックポイントを設定しようとしていますが、トルクは単一のノードで実行されているジョブしか処理できないようです。コードを確認したところ、qhold を使用してジョブのチェックポイントを設定すると、qhold は PBS_BATCH_HoldJob 要求を pbs サーバーに送信し、pbs サーバーはこの要求をマスター ホストに中継し、マスター ホストは BLCR を使用して自身で実行されているジョブ プロセスをチェックポイントしますが、そうではありません。要求を姉妹ノードに送信するため、MPI ジョブはトルクでチェックポイントできないようです。
もう 1 つの問題は、チェックポイントが成功した後 (qhold によって報告される)、トルクがプロセスを強制終了するためにマスター ホストのプロセスにシグナル 15 を送信し、トルクがチェックポイント ファイルを pbs_server にコピーし、すべてのファイルをローカルに削除することです。qrls を使用してこのジョブを再起動すると、スケジューラはこのジョブに新しいノードを割り当て、チェックポイント ファイルを新しいノードにコピーしてから、チェックポイント ファイルを介してジョブを再起動すると、問題が発生します。
トルクがすべてのノードで MPI ジョブのプロセスをチェックポイントできると仮定します。通常、私たちのジョブは巨大なメモリ チャンクを使用するため、チェックポイント ファイルは非常に大きくなりますが、pbs サーバーにはチェックポイント ファイルを格納するのに十分な大きさのディスクがありません。 .
私たちの環境では、MPI ジョブが開始される前に、別のクラスターから大規模なメタデータをコンピューティング用の MPI ジョブに割り当てられたノードに直接プルし、チェックポイント/再起動後に、ジョブ プロセスがいくつかの異なるノードで再開される可能性があります。データが欠落している可能性があります。
MPI ジョブのチェックポイントの方法を教えてくれる人がいて、私の質問に答えることができ、トルク コードを変更する必要がある場合は、私もそれをやりたいです。
ありがとう。