无论我使用多少np,等级0总是最后[重复]

问题描述 投票:0回答:1

我一直在尝试完成所有任务,当我尝试打印某些东西(并执行其他操作)以查看等级时,我看到等级0应该是第一个,然后是等级1,等级2等等始终是排名的最后一位。

mpich版本= mpich-3.3.2Windows 10(ubuntu终端)

谢谢你。

parallel-processing mpi rank mpich
1个回答
0
投票

MPI标准中未指定如何从所有节点订购标准输出。即未定义打印顺序(see)。

有时,当您尝试打印大字符串时,甚至可以观察到不同等级的输出已合并并打印。总而言之,如果您需要按从rank 0rank N的顺序打印,则可能必须编写额外的代码行。在您的示例中,Rank 0总是最后打印也不确定。会有所不同。

下面是关于MPI中I / O的书[[An Introduction to Parallel Programming by Peter Pacheco的摘录。

尽管MPI标准未指定哪些进程可以访问 几乎所有MPI实现都将I / O设备连接到哪个I / O设备 MPI COMM WORLD拥有对stdout和stderr的完全访问权限,因此大多数MPI实现 允许所有进程执行printf和fprintf(stderr,...)。 但是,大多数MPI实施不提供任何自动计划 访问这些设备。也就是说,如果多个进程试图写入(例如)stdout,则这些进程的输出出现的顺序将是不可预测的。 确实,甚至可能发生一个过程的输出将被中断的情况。 另一个过程的输出。发生这种情况的原因是MPI进程正在“竞争”访问 共享输出设备stdout,并且无法预测 进程的输出将排队。这样的竞争导致不确定性。 也就是说,实际输出将在一次运行之间变化。 See Page 98了解更多。
© www.soinside.com 2019 - 2024. All rights reserved.