【发布时间】:2014-04-07 09:40:43
【问题描述】:
我用 MPI 编写了一个排序算法。它是递归合并排序,左孩子在与父进程相同的进程中对数组的一半进行排序,而右孩子获得一个新进程并从父进程接收一半数组,然后将排序后的数组发送回父进程。现在我需要对一堆整数文件进行排序。这是我目前的设计:
int main()
{
MPI_init();
if(my_rank == 0)
{
foreach data file
{
sort_mpi(array);
}
}
else
{
MPI_Recv(right_array...);
sort_mpi(right_array);
MPI_Finalize();
}
MPI_Finalize();
}
使用此代码,第一个文件被排序并移至下一个文件。然而,在 for 循环的第二次交互中,它只停留在 0 级并且永远不会进入 1 级。如果我可以在进入下一个文件之前重置 MPI 实例应该是理想的。有没有办法做到这一点?
【问题讨论】: