我想确定MPI中非阻塞点对点通信的开销。有一些基准测试可用(如Sandia MPI Micro-Benchmark Suite或OSU micro-benchmarks),但由于某些原因,它们不区分MPI提供的发送模式(标准,就绪,缓冲,同步)和仅使用标准模式。 MPI报告指出非阻塞点对点通信中发送模式对MPI开销的影响
在这种模式下,由MPI决定是否将传出消息缓冲。 MPI可能缓冲传出消息。在这种情况下,发送呼叫可能会在调用匹配接收之前完成。另一方面,出于性能原因,缓冲区空间可能不可用,或者MPI可能选择不缓冲出去的消息。在这种情况下,发送呼叫将不会完成,直到发送匹配的接收,并且数据已被移至 接收器。
我认为将消息写入缓冲区可能与将消息直接发送给接收方(可能物理上很远,通过低带宽连接等进行连接)具有不同的性能。所以我的问题是,我的假设是否是错误的,缓冲发送和准备发送之间没有任何显着的性能差异(如果是,为什么) - 或者这些基准是否忽略了这些可能的差异(如果是,为什么) 。