MPI中不同类型的点对点通信在性能方面有何不同



MPI的最新版本包括以下类型的点对点(p-p(通信:

  • 阻塞
  • 普通非阻塞
  • 持久性非阻塞
  • 分区非阻塞

据我所知,历史上阻止p-p通信是第一种存在的类型。然后,为了提高性能,相继引入了不同类型的无阻塞p-p通信。例如,它们允许计算和通信的重叠。但是,是否存在阻塞p-p通信实际上比非阻塞替代方案更快的情况?如果没有,是什么证明了它们的存在?简单的向后兼容性及其使用的简单性?

人们错误地认为非阻塞通信是由性能驱动的:它主要是为了能够表达无死锁/串行化的通信模式。(事实上,实际上只有通过"Iprobe技巧"才能获得通信/计算的重叠。直到最近,"进度线程"才成为一种更系统的可能性。(

分区通信适用于多线程上下文。您可以将其称为一个性能参数,或者一个全新的用例。

持久发送确实具有提高性能的潜力,因为各种设置和缓冲区分配都可以摊销。然而,我没有看到太多证据表明MPI实现确实做到了这一点。https://arxiv.org/abs/1809.10778

最后,您缺少缓冲、同步和就绪的发送。这些确实有提高性能的潜力,尽管我看不到太多证据表明它们确实有

最新更新