gpt4 book ai didi

mpi - 发送多个mpi非阻塞发送-它会保留发送的顺序吗

转载 作者:行者123 更新时间:2023-12-04 16:12:30 25 4
gpt4 key购买 nike

说我有 3 个像这样的非阻塞发送

  1. MPI_Isend ();
  2. MPI_Isend ();
  3. MPI_Isend ();


和 3 个相应的接收

  1. MPI_Recv();
  2. MPI_Recv();
  3. MPI_Recv();


现在假设第二个 Isend 没有发送,因为它不会阻塞第三个将被发送。现在 MPI_Recv 函数会得到预期的函数吗?

我的意思是第一个 MPI_ISend 将数据发送到第一个接收,第二个 MPI_ISent 发送到第二个 MPI_Recv 等等。

最佳答案

更新 :下面评论中的 Jeremiah Willcock 我认为是对的,而这个答案是错误的。

如果依次调用三个ISend,并且接收都匹配它们,那么发送操作是更大,还是更快,或者其他什么都没有关系; MPI 的非超车保证告诉您消息将按照 Isends 的顺序到达(因此可用于 Recv)。

如果对 ISend 的调用被延迟了,这就是我最初解释问题的方式,或者如果调用按照建议失败(但请注意,如果调用失败,稍后您会遇到其他问题),那么原始答案成立:如果收到匹配任何所有的 Isend,并且对第二个 ISend 的调用以某种方式被阻止,然后第一个 MPI_Recv() 将获得第一个 Isend,第二个 Recv 将获得第三个 Isend,第三个将挂起直到第二个 Isend 发生.

如果要确保第一个 MPI_Recv 接收特定消息,则应使用标签来区分各种消息,并让接收指定该标签。

关于mpi - 发送多个mpi非阻塞发送-它会保留发送的顺序吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9055413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com