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

Posted

技术标签:

【中文标题】MPI 中不同类型的点对点通信在性能方面有何不同?【英文标题】:How do the different types of point to point communication in MPI differ in terms of performance? 【发布时间】:2022-01-14 09:03:22 【问题描述】:

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

阻止 普通非阻塞 持久非阻塞 分区非阻塞

据我所知,历史上阻止 p-p 通信是存在的第一种类型。然后不同类型的非阻塞 p-p 通信一个接一个地被引入以提高性能。例如,它们允许计算和通信的重叠。但是是否存在阻塞 p-p 通信实际上比非阻塞替代方案更快的情况?如果不是,什么是他们存在的理由?只是向后兼容和使用简单?

【问题讨论】:

【参考方案1】:

认为非阻塞通信是由性能驱动的,这是一种误解:它主要是为了能够表达无死锁/无序列化的通信模式。 (事实上​​,实际上只有通过“Iprobe 技巧”才能实现通信/计算的重叠。直到最近才使用“进度线程”才成为一种更系统的可能性。)

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

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

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

【讨论】:

以上是关于MPI 中不同类型的点对点通信在性能方面有何不同?的主要内容,如果未能解决你的问题,请参考以下文章

西门子PPI与MPI有何区别?

各位,请问有没有支持CC2530的点对点通信的zigbee例程呢? 谢谢

MPI简介

数据链路层中的点对点通信详解

用SSH框架ajax和jms实现网页的点对点聊天通信。这个策略可以不?

基于Linux的点对点VXLAN通信