C++ 在MPI程序中放置数组创建方法的位置
我听说MPI程序中的所有代码都应该在C++ 在MPI程序中放置数组创建方法的位置,c++,concurrency,mpi,openmpi,C++,Concurrency,Mpi,Openmpi,我听说MPI程序中的所有代码都应该在MPI\u Init和MPI\u Finalize之间进行去噪。那么,以下差异对beow MPI计划有何影响 int main(int argc, char** argv) { MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); int** arr
MPI\u Init
和MPI\u Finalize
之间进行去噪。那么,以下差异对beow MPI计划有何影响
int main(int argc, char** argv)
{
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
int** array = createArray(START_VAL, ARRAY_SIZE);
printArray(array, ARRAY_SIZE);
MPI_Finalize();
return 0;
}
而且
int main(int argc, char** argv)
{
int** array = createArray(START_VAL, ARRAY_SIZE);
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
printArray(array, ARRAY_SIZE);
MPI_Finalize();
return 0;
}
两个都可以。MPI标准唯一规定的是,在调用
MPI\u INIT
之前或调用MPI\u FINALIZE
之后,不能使用任何其他MPI函数。您可以在这些调用之前和之后执行其他操作,但不能使用MPI
在(第8.7节,较旧的HTML版本可用)中有一整节介绍这一点