微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以看到 MPI_ISEND 不立即返回

如何解决是否可以看到 MPI_ISEND 不立即返回

我最近意识到,在我的模拟的第一次迭代中,我经历了特别缓慢的步骤,归结为以下部分

 do I= 1,hpc_nodes 
     call mpi_isend(cnt(i),1,mpi_integer,whoisrootInNode(i),10000,comm,req(i),mpierr) 
 enddo 

我意识到第 i 个 mpi_isend 中的一个在大约 2 秒后返回,而其余的将在几分之一秒内返回。这最终会逐渐消失,并且所有 mpi_isend 调用的成本都将降至最低。但是,我试图理解为什么会发生这种情况。

为什么有时 mpi_isend 会在 2 秒后返回同一等级内的某个 I 而紧跟在 I+1 之后的速度快 10 倍 - 为什么它只在开始时发生,即代码部分在一个大的时间循环内,在 2-3 个时间步之后这个问题似乎消失了

这是否与以下article

有关

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。