[英]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.