问题描述
我最近意识到,在我的模拟的第一次迭代中,我经历了特别缓慢的步骤,归结为以下部分
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 (将#修改为@)