无阻塞点对点通信中发送模式对MPI开销的影响 [英] Influence of send modes to MPI overhead in non-blocking point-to-point communication

查看:94
本文介绍了无阻塞点对点通信中发送模式对MPI开销的影响的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想确定MPI中非阻塞点对点通信的开销.有一些基准可用(例如 Sandia MPI Micro-Benchmark Suite OSU微型基准),但对于由于某些原因,它们不能区分MPI提供的发送模式(标准,就绪,缓冲,同步),而仅使用标准模式. MPI报告指出

I want to determine the overhead of non-blocking point-to-point communications in MPI. There are some benchmarks available (like Sandia MPI Micro-Benchmark Suite or OSU micro-benchmarks), but for some reason they do not discriminate between the send modes MPI offers (standard, ready, buffered, synchronous) and only using the standard mode. The MPI report states that

在此模式下,由MPI决定是否将缓冲传出的消息. MPI可以缓冲传出的消息.在这种情况下,发送调用可以在调用匹配的接收之前完成.另一方面,出于性能原因,缓冲区空间可能不可用,或者MPI可能选择不缓存传出消息.在这种情况下,只有在发布了匹配的接收方并将数据移至相应的接收方之前,发送呼叫才会完成. 接收器.

In this mode, it is up to MPI to decide whether outgoing messages will be buffered. MPI may buffer outgoing messages. In such a case, the send call may complete before a matching receive is invoked. On the other hand, buffer space may be unavailable, or MPI may choose not to buffer outgoing messages, for performance reasons. In this case, the send call will not complete until a matching receive has been posted, and the data has been moved to the receiver.

我假设将消息写入缓冲区的性能可能不同于直接将消息发送给接收者的性能(接收者可能在物理上较远,可以通过低带宽连接进行连接,等等).所以我的问题是,我的假设是否错误,缓冲发送和就绪发送之间是否没有任何显着的性能差异(如果是,为什么)-或者这些基准测试是否只是忽略了这些可能的差异(如果是,为什么)

I would assume that writing the message into a buffer may have a different performance than sending the message directly to the receiver (which could be physically far away, be connected via a low bandwidth connection, etc). So my question is, whether my assumptions are wrong and there are never any significant performance differences between a buffered send and a ready send (and if yes, why) - or whether these benchmarks just ignore these possible differences (and if yes, why).

推荐答案

您理解缓冲和非缓冲发送的性能可能不同是正确的.如果调用MPI_Send,则MPI实现可以根据消息大小,系统体系结构,网络速度和许多其他变量来选择使用哪种机制.通常,缓冲发送用于小消息,同步发送用于大消息.

You understanding is correct that performance of buffered and unbufferred sends can be different. If you call MPI_Send, the MPI implementation can choose which mechanism to use based on the message size, system architecture, network speed, and many other variables. In general, buffered sends are used for small messages and synchronous sends are used for large messages.

MPI应用程序开发人员坚持推荐 MPI_Send,并依靠MPI实现来提供最佳性能.因此,大多数MPI基准测试还报告了MPI_Send的性能,而不是其他不常用的模式.

It is recommended that MPI application developers stick with MPI_Send and rely on the MPI implementation to provide the best performance. Consequently, most MPI benchmarks also report the performance of MPI_Send and not the other modes, which are not as commonly used.

这篇关于无阻塞点对点通信中发送模式对MPI开销的影响的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆