等待其他处理器在MPI中完成任务

时间:2012-04-24 19:23:30

标签: mpi

使用MPI,你如何等待线程完成?

例如:

for (int i = localstart; i < localend; i++)
{
    // do stuff that is computationally intensive
}
// I need to wait for all other threads to finish here
if (rank == 0) do_something();

1 个答案:

答案 0 :(得分:4)

如果您通过线程表示流程/排名,则答案为MPI_Barrier

但是看看其他集体操作:它们可能在您的应用程序中有意义,并提供比手动编码通信更好的性能。例如,您可以使用MPI_Allgather将所有数据传达给所有等级,依此类推。

如果你的意思是线程(比如pthreads),那么你必须使用线程库提供的任何东西。