MPI初心者です。Mac_OSX Mountain Lion を実行している Macbook で、最も単純な MPI "hello world" コードを実行しようとしています。プロセッサは 1 つしかありませんが、4 つのコアがあります。C++コードは次のようになります
#include <iostream>
#include "mpi.h"
using namespace std;
int main(int argc, char* argv[])
{
int rank, size;
MPI::Init();
rank = MPI::COMM_WORLD.Get_rank();
size = MPI::COMM_WORLD.Get_size();
std::cout << "Hello, world! I am " << rank << " of " << size << std::endl;
cout << "size is " << size << endl;
cout << "rank is " << rank << endl;
MPI::Finalize();
return 0;
}
次に、コードをコンパイルして実行します
$ mpic++ -o bb code2.cpp
$ mpirun -np 2 bb
「アプリケーション "bb" が着信ネットワーク接続を受け入れますか?」という警告を示す 2 つのダイアログ ボックスが即座に表示されます。ダイアログ ボックスが表示されたり消えたりして、コードが正常に実行されます。
Hello, world! I am 0 of 2
size is 2
rank is 0
Hello, world! I am 1 of 2
size is 2
rank is 1
クラスターまたは CPU のグループで実行する場合、MPI はネットワーク接続を使用すると思います。しかし、ファイアウォールのダイアログ ボックスが何度も表示されたり消えたりするのは面倒です。ファイアウォールを無効にしたり、特定の実行可能ファイルの着信接続を許可したりできますが、そうしたくありません。単一のコンピューターで MPI を実行しているため、ネットワーク接続を使用しないように MPI に指示する方法はありますか? ありがとう。