集体交流——一些对所有的广播?

Collective communication - some-to-all broadcasting?

我知道有一种广播机制,其中一个进程向所有其他进程发送消息,还有一种全对所有广播,其中所有进程向所有其他进程发送消息。

有没有人知道有什么机制可以做类似于 all-to-all 但只有一定数量的处理器才能进行广播?假设我有 n 个处理器,但我只想要其中的 x 个处理器进行广播。

编辑:我正在使用 MPI。有 MPI_Bcast 和 MPI_alltoall,但没有任何东西可以让我指定一组可以进行广播的 x 数量的 proc。

MPI 具有 "group" 和 "communicator" 的概念,您可以使用它们来定义进程组(请注意许多 MPI 函数将 MPI_Comm 作为参数)。我不知道如何使用这些,但是 this article seems to be a decent introduction.