0

私は30のノード(各ノードに32のコアを持っている)で動かしたいMPIプログラムを持っています。ノードのすべてのコアを単一のジョブ/プロセスにどのように割り当てることができますか?MPIクラスタの単一ジョブ/プロセスに単一ノードの複数のコアを割り当てる方法は?

私はスロットを使用して、特定のノードのジョブ数を制限しています。 node001スロット= 1 max_slots = 20 node002スロット= 1 max_slots = 20

これを達成するために使用できるパラメータはありますか?

ありがとうございます。

+0

へようこそ! [Slurm](https://slurm.schedmd.com/sbatch.html)のようなジョブマネージャを使用している場合、 'sbatch'コマンドは有用と思われる' --exclusive'オプションを備えていますが、他のユーザが泣くかもしれません。 PBSの '' qsub'には、 '' node-exclusive'に対応するオプション '-n'があります。クラスタにジョブマネージャがありますか?あなたが単独でクラスタにいて、 'mpirun'を直接実行していて、別のホストファイルを使用しているなら、maxslotsを指定することはそのトリックを行うことができます。 [mpirun](https://www.open-mpi.org/faq/?category=running#mpirun-hostfile)の '--bynode'オプションを見てください。 – francis

+0

ジョブマネージャを使用していません。mpirunとhostfileを使用しています。 1つのノードに1つのスロットが必要なので、私は "slot = 1"をhostfileに記述しました。私はこの単一のスロットにそのノード内のすべてのCPUを使用したい。 --bynodeオプションを使用すると、ラウンドロビン方式でジョブが配布されます。 CPU /リソースを明示的に割り当てるオプションはありますか?ありがとうございました。 –

答えて

1

openmpiを使用すると、--rankfileオプションを使用してランクを明示的に設定できます。

ファイルの構文は、ここで見つけることができます:

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
#include <sched.h> 
#include <mpi.h> 
#include <omp.h> 

void main(int argc, char** argv) 
{ 
    MPI_Init(&argc, &argv); 
    unsigned cpu; 
    unsigned node; 

    int rank; 
    MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
    #pragma omp parallel 
    { 
     printf("[%d:%d] %d\n", rank, omp_get_thread_num(), sched_getcpu()); 
    } 
    MPI_Finalize(); 
} 

[MPI_rank:OMP_rank]印刷します:各OpenMPスレッドのCPUを^

https://www.open-mpi.org/doc/v2.0/man1/mpirun.1.php

ここでは、非常にシンプルなMPI + OpenMPプログラムです。

rankfilesのための基本的な形式は次のとおりです。この基本的なrankfile(ホスト=マーヴィン、1つのスロット上の2CPU)で

rank <rank>=<host> slot=<slot>:<cores> 

>cat ./rankfile 
rank 0=Marvin slot=0:0 
rank 1=Marvin slot=0:0 
rank 2=Marvin slot=0:0 
rank 3=Marvin slot=0:1 
rank 4=Marvin slot=0:0-1 
rank 5=Marvin slot=0:0 

これらは私の版画です:

>mpirun -n 6 --rankfile ./rankfile ./main 
[0:0] 0 
[1:0] 0 
[2:0] 0 
[3:0] 1 
[4:0] 1 
[4:1] 0 
[5:0] 0 

OMP_NUM_THREADS環境変数を設定していないため、OpenMPが各コアで使用可能なコア数を検出できるようにしましたランク。

ご希望の場合は、

+0

例を使って答えを説明できますか? –

+0

ありがとう、これは私を助けた。 –

関連する問題