CRAY 超级计算机使用 MPICH2 库。每个节点有 32 个 CPU。
我在 N 个不同的 MPI 等级上有一个浮点数,其中每个等级都在不同的节点上。我需要对这组浮点数执行归约操作。我想知道 MPI_Reduce 是否比 MPI_Gather 更快,对于任何 N 值,在根上计算减少。请假设在根等级上完成的减少将使用可以利用 N 个线程的良好并行减少算法完成.
如果对于任何 N 值都不是更快,那么对于较小的 N(如 16)或较大的 N 是否会更适合?
如果是真的,为什么?(例如,MPI_Reduce 是否会使用一种树通信模式,该模式倾向于在它用于与树的下一层通信的方法中隐藏归约操作的时间?)