等待其他处理器在MPI中完成其任务
问题描述:
使用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();
答
如果线程你的意思流程/行列,那么答案是MPI_Barrier
。但是也要看看其他集体操作:它们在您的应用程序中可能有意义,并且提供比手动编码通信更好的性能。例如,您可以使用MPI_Allgather
将所有数据传递给所有职级,依此类推。
如果你的意思是线程(如pthreads),那么你必须使用线程库提供的任何东西。
我的意思是进程/排名。谢谢,那正是我正在寻找的。 – 2012-04-24 21:45:59