如何在MPI编程中随机select一个master processor?

How to select a master processor randomly in MPI programming?

我需要 select 我的 Comm 中的一个处理器来做一些工作(我不希望其他处理器做这些工作)。 由于我将我的 Comm 分成多个组,所以我不能总是选择一个特定的等级(例如 0)作为我的主人。我需要从我当前的通讯中选择它。有什么建议吗?

谢谢。

进程的等级总是相对于通信器的。拆分进程后,您可以在新的通信器中使用进程 0 来执行您想要的工作。

suszterpatt 接受的答案是正确的,这是您通常应该做的。不过,我想解决随机选择主进程的问题的标题。为此

  1. 通信器中的每个等级都会生成一个随机数
  2. 使用MPI_AllreduceMPI_MAXLOC分配随机数和排名数。
  3. 现在通信器中的每个等级都可以使用等级作为大师