1
我正在測試一個非常基本的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
這是確定。
當我這樣做的代碼更改爲以下:
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?