多个同步MPI_Bcast以传递数组结构

时间:2018-04-29 03:00:40

标签: c mpi

从根级别向所有其他人广播数组结构的高效,清晰和正确的方法是什么?下面的代码会实现这个吗?我希望广播能够同时利用尽可能多的通信带宽。

我担心我没有选择将数据重构为例如结构数组。

float arr1[16];
int arr2[16];
char arr3[16];
//...fill arr1-3 with great data. Establish rank ID's, etc
MPI_Request req[3];
MPI_Status status[3];
MPI_IBcast(arr1, 16, MPI_FLOAT, root_rank_ID, MPI_COMM_WORLD, &req[0]);
MPI_IBcast(arr2, 16, MPI_INT, root_rank_ID, MPI_COMM_WORLD, &req[1]);
MPI_IBcast(arr3, 16, MPI_CHAR, root_rank_ID, MPI_COMM_WORLD, &req[2]);
MPI_Waitall(3,req,status);
//check status to ensure the outcome is OK
int importantData = importantFunction(arr1,arr2,arr3);

0 个答案:

没有答案