2017-09-23 9 views
0

I型の場合:1つのスレッド/ノード12個のノードを使用Open MPIを使用して、1つのMac Proと12コアの1つの大きなジョブをどのように分けることができますか?

、12のプロセス

の合計私は全体を希望:

mpiexec -n 12 ./Main 

を私はメッセージを取得します12個のコアのそれぞれに12個の別々のジョブが送信されるのではなく、1個のノードとして認識され、12個のスレッドをすべて実行することができます。

答えて

0

私はメッセージが非常に誤解を招くと思います。あなたは混乱しています。 MPIは、Message Passing Interfaceの略で、MPIタスク(プロセスなど)に関連しています。 あなたが一緒に動作します12のMPIタスクで作られた1つのジョブを作成するためにMPIを求めているあなた

mpiexec -n 12 ./Main 

場合。 MPIはスレッドを作成しません。 12スレッドで1つのプロセスを使用する場合は、OpenMPなどの他のパラダイムを考慮する必要があります。 ハイブリッドMPI + OpenMPコードを使用することができます.2つのMac Proを使用する場合は、1つのジョブを2つのMPIタスクと1つのタスクにつき12個のOpenMPスレッドで構成できます。

メッセージは、メッセージ言及スレッド以来、既にアプリでMPI + OpenMPのかもしれないが、言われていることを using 12 MPI tasks with 1 thread/task, for a total of 12 threads

でなければなりません。この場合、1つのMPIタスクと12のOpenMPスレッドが必要な場合は、mpiexec(別名シングルトンモード)も必要なく、単純にできる必要があります。

OMP_NUM_THREADS=12 ./Main 
関連する問題