如何在MPI编程中随机select一个master processor?
How to select a master processor randomly in MPI programming?
我需要 select 我的 Comm 中的一个处理器来做一些工作(我不希望其他处理器做这些工作)。
由于我将我的 Comm 分成多个组,所以我不能总是选择一个特定的等级(例如 0)作为我的主人。我需要从我当前的通讯中选择它。有什么建议吗?
谢谢。
进程的等级总是相对于通信器的。拆分进程后,您可以在新的通信器中使用进程 0 来执行您想要的工作。
suszterpatt 接受的答案是正确的,这是您通常应该做的。不过,我想解决随机选择主进程的问题的标题。为此
- 通信器中的每个等级都会生成一个随机数
- 使用
MPI_Allreduce
和MPI_MAXLOC
分配随机数和排名数。
- 现在通信器中的每个等级都可以使用等级作为大师
我需要 select 我的 Comm 中的一个处理器来做一些工作(我不希望其他处理器做这些工作)。 由于我将我的 Comm 分成多个组,所以我不能总是选择一个特定的等级(例如 0)作为我的主人。我需要从我当前的通讯中选择它。有什么建议吗?
谢谢。
进程的等级总是相对于通信器的。拆分进程后,您可以在新的通信器中使用进程 0 来执行您想要的工作。
suszterpatt 接受的答案是正确的,这是您通常应该做的。不过,我想解决随机选择主进程的问题的标题。为此
- 通信器中的每个等级都会生成一个随机数
- 使用
MPI_Allreduce
和MPI_MAXLOC
分配随机数和排名数。 - 现在通信器中的每个等级都可以使用等级作为大师