【问题标题】:MPI sends that "can't be buffered by the network"MPI 发送“无法被网络缓冲”
【发布时间】:2018-12-20 12:09:28
【问题描述】:

我正在关注http://mpitutorial.com/tutorials/point-to-point-communication-application-random-walk/ 上的教程 并且有一句话说“如果发送最终无法被网络缓冲,它们将阻塞,直到发布匹配的接收。”

MPI_SEND() 何时无法被网络缓冲?

我猜这个问题之前有人问过,但老实说,我不知道在这里搜索什么关键字。

【问题讨论】:

    标签: parallel-processing mpi


    【解决方案1】:

    长话短说,视情况而定。

    长话短说,这取决于您的 MPI 库、消息大小、正在使用的互连、之前缓冲了多少消息、正在使用的调整选项以及其他因素。

    请注意,如果没有发布匹配的接收,则假定 MPI_Send() 将返回的程序不符合 MPI 标准。

    另一种说法是,如果将所有MPI_Send() 替换为MPI_Ssend(),则正确的MPI 程序不会死锁。

    【讨论】:

    • 谢谢。您的最后一句话是不是暗示我们应该努力使用 MPI_Send 的 MPI_Ssend 发送?
    • 在生产中,你应该使用MPI_Send(),除非你有充分的理由使用MPI_Ssend()。话虽如此,使用MPI_Ssend()(或强制MPI_Send() 阻止直到通过一些调整参数发布接收)并在释放代码之前检查代码没有挂起是一个好习惯。
    猜你喜欢
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多