私は非常に基本的なMPIコードをテストしてい:なぜランクは1ですか?
int main(int argc, char** argv){
MPI_Init(&argc, &argv);
int size, rank;
MPI_Status status;
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if(rank == 0)
cout << "world size" << size << " my rank " << rank;
else
cout << rank << endl;
MPI_Finalize();
return 1;
}
このコードを印刷:
world size1324 my rank
0
okです。
私は次のようにコードを変更する操作を行います。
int main(int argc, char** argv){
MPI_Init(&argc, &argv);
int size, rank;
MPI_Status status;
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if(rank == 0)
cout << "world size" << size << " my rank " << rank;
if(rank =! 0)
cout << rank << endl;
MPI_Finalize();
return 1;
}
出力は次のとおりです。
world size111
4
my rank
01
私は第二のアプローチでは、-np 4
なぜでコードを実行し、ランクは常に1として印刷されますか?