コンテキスト:再シミュレーションファイルからシミュレーションを続行するときにMPIスレッドの数が変更されないようにするシミュレーションコードをデバッグしています。このコードは大規模なクラスタで実行されていましたが、小さなローカルマシンでデバッグしていますので、ジョブをキューに投入するまで待つ必要はありません。コードにはローカルマシン上のコア数を超える72スレッドが必要です。これは問題ではありません。コアよりも多くのスレッドで実行でき、デバッグ時に重要な問題ではないパフォーマンス・ヒットを取るだけです。コアよりスレッドが多い場合は、どのようにしてMPIをすべてのコアで実行しないようにしますか?
問題:他のタスクや他のユーザーのためにいくつかのコアを空けておきたい。たとえば、私の小さなローカルコンピュータに48コアがある場合、私は72コアを例えば36コアで動かし、12コアを解放したいと考えています。マシンを完全に乗っ取ることなく、大規模なコードをローカルでデバッグしたい。
私は、コアより多くのスレッドを実行するというメモリとパフォーマンスの問題に対処したいと考えていますが、実際にはどうしたらいいですか?何とかスケジューラのバックエンドに入る必要がありますか?それはMPICHやOpen-MPIなどを使用しているかどうかによって異なりますか?
私は基本的にmpirun -np 72 --cpus-per-proc 0.5
のようなものを探しています。