繁体   English   中英

如何在mpi python mpi4py中的“收集之后”之前打印“收集之前”

[英]how to print “before gather” before “after gather” in mpi python mpi4py

请参考以下收集代码:

from mpi4py import MPI

comm = MPI.COMM.WORLD
size = comm.Get_size()
rank = comm.Get_rank()
stat = MPI.Status()

message = (rank)**2
print "Before Gather ",rank, message

message = comm.gather(message, root=0)

if rank == 0:
        print "After Gather ",rank,message

如何使用comm.barrier()函数来确保“ After”步骤始终位于所有“ Before”步骤之后?

如果将comm.barrier()放在if条件之前,则结果将以任何顺序排列。

我尝试过冲洗,但不起作用。

我应该使用Gather指定发送缓冲区和接收缓冲区吗?

或者,我应该尝试将所有内容收集到一个过程中,然后分散,然后再次收集吗?

任何建议都值得欢迎和赞赏。

基本上,您不能。

收集每个MPI任务的stdout ,然后由mpirun打印,并且没有强制执行任何种类的全局顺序的机制。

唯一的保证是, Before Gather 0 ...之前将始终打印After Gather 0 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM