2

SLURM クラスターで MPI ジョブを実行していて、結果のプロセスをノード上の特定のコアに固定したいと考えています。これには、異なるノード上の異なる数のプロセスと、異なるノード上の異なる固定パターンが含まれる場合があります。salloc を使用してノードの割り当てを取得し、mpi プロセスのランク ファイルを作成し、mpirun を使用してプロセスを開始すると、これはすべて比較的簡単です。

残念ながら、タイムアウトやプリエンプションなどの理由で割り当てが取り消された場合、ノードで実行されているプロセスは強制終了されますが、ヘッド ノードで実行されている mpirun は強制終了されず、無視できる負荷の生成から 100 の生成に移行します。無期限に実行されているスレッドの % 負荷。

答えは mpirun の代わりに srun を使用してアプリケーションを起動することであると思われますが、これを行う場合にプロセスの配置を設定する方法を見つけるのに苦労しています。誰にも提案はありますか?

4

1 に答える 1

0

私は slurm の専門家ではありません。あなたがしようとしていることの詳細を知らなければ、具体的な答えを出すことはできません。ただし、おそらく必要なものは SLURM のドキュメントに記載されています。

https://computing.llnl.gov/linux/slurm/mc_support.html

これには、コア、ソケットなどにバインドするための100万の異なる方法に関するあらゆる種類のドキュメントがあります. プロセスを個々のコアに明確にバインドする場合は--cpu-bind、 withを使用することをお勧めします。map_cpu

お使いのマシンでそれを行う方法について、特定のシステムで利用できるドキュメントもあるかもしれません。たとえば、アルゴンヌ国立研究所のスーパーコンピューターのサイトでは、IBM BG/Q に特化した方法に関する情報を見つけることができます。

http://www.alcf.anl.gov/user-guides/running-jobs#mapping-of-mpi-tasks-to-cores

于 2014-12-18T16:32:56.530 に答える