MPI_Reduce也是MPI_Barrier的工作吗?

Is MPI_Reduce also does the work of MPI_Barrier?

本文关键字:MPI 工作 Barrier Reduce 也是      更新时间:2023-10-16

由于MPI_Reduce和MPI_Barrier是昂贵的命令,所以我必须减少线程之间的一些通信。 我知道MPI_Reduce和MPI_Barrier的主要工作。 有时我观察到MPI_Reduce正在减少一个线程中的所有值,并且它也在做MPI_Barrier的工作。如果我必须使用mpi_Reduce那么我可以跳过MPI_Barrier,是否有可能?

不,MPI_Reduce()不会隐式执行MPI_Barrier()

话虽如此,MPI_Allreduce()(具有非零大小的数据(执行隐式MPI_Barrier(),因此这可能适合您的算法。

我不太确定你所说的MPI_Barrier()是一项昂贵的手术是什么意思。假设你有一个不错的互连,屏障本身应该非常快,并且花费的大部分时间应该是由进程不平衡引起的。