gpt4 book ai didi

synchronization - 与 MPI_BCAST 隐式同步发送方和接收方?

转载 作者:行者123 更新时间:2023-12-04 15:47:49 29 4
gpt4 key购买 nike

调用 MPI_BCAST 时,是否有隐含的同步?例如,如果发送方进程要在其他人之前到达 MPI_BCAST,它是否可以执行 BCAST,然后在没有任何确认的情况下继续?最近的一些测试代码如下:

program test
include 'mpif.h'

integer ierr, tid, tmp

call MPI_INIT(ierr)
call MPI_COMM_RANK(MPI_COMM_WORLD, tid, ierr)

tmp = tid

if(tid.eq.0) then
call MPI_BCAST(tmp,1,MPI_INTEGER,MPI_ROOT,MPI_COMM_WORLD, ierr)
else

endif

write(*,*) tid,'done'
call MPI_FINALIZE(ierr)

end

表明,尽管只有发送方调用 MPI_BCAST,但使用两个线程它们都完成了。

输出:
1 done           0
0 done 0

这可能是我正在使用的 MPI 安装 (MPICH) 的问题,还是 MPI 的标准行为?

最佳答案

Bcast是一个集体通信调用,因此阻塞。更准确地说,它会阻塞,直到指定通信器中的所有进程都对 Bcast 进行了匹配调用。 ,此时发生通信并继续执行。

您的代码过于简化,无法进行调试。您可以发布一个演示该问题的最小示例吗?

关于synchronization - 与 MPI_BCAST 隐式同步发送方和接收方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6653084/

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