gnuパラレルとmpirunの組み合わせ:最大コア数を処理する方法は?

gnuパラレルとmpirunの組み合わせ:最大コア数を処理する方法は?

私は32のコアマシンを持っていて、さまざまなコア数を使っていくつかのmpiタスクを実行したいと思います(質問にこれが必要なためです)。各タスクを開始するタイミングを管理するために、Gnuが並行してmpiタスクの数を知ることができる方法はありますか?

例: 次の数の mpi ジョブで多数の (200) ジョブを開始する必要があるとします。

NMPI=(2 2 2 4 4 4 4 6 7 10 12 24 32)

したがって、最初は配列の最初の8つの要素(合計が合計コア数32個より小さいため)のみを実行し、各最初の要素が完了するとすぐに制限を超えずに他のタスクを順次実行しようとします。合計32の同時mpi作業中。たとえば、最初の8つのプロセスが実行中で、最初のプロセスが完了したばかりです(最初のNMPI [0] == 2の場合)。これにより、次のタスクにNMPI [8] = = 7があり、32コアの最大制限を超えるため、十分な空きプロセッサがあるまで並列に新しいものを実行しないでください。それとも、最後のmpiタスク(32コア)を最初に起動し、最後のタスクから1を減算して最初の3つを追加することで、タスクの開始を並列に改善する方法はありますか?

ご案内ありがとうございます。

ベストアンサー1

最大の作業から始めるように配列の順序を変更します。

使用できるので、--load 100%次の--delay 10sタスクを開始する前に、そのタスクがすべてのコアを使用していると確信していますか?

おすすめ記事