【发布时间】:2017-09-08 02:42:31
【问题描述】:
我正在课堂上学习使用 C 语言的 MPI。当您使用MPI_Comm_split 以及优势是什么时,我目前正在努力解决问题。如果我不使用组或者我的所有进程都在一个组中,我还试图弄清楚使用它是否比仅使用 MPI_COMM_WORLD 有任何好处。
据我了解,MPI_Comm_split 为每种“颜色”提供了一个独特的沟通者,这与使用 MPI_COMM_WORLD 不同(不确定最后一部分是否正确)。 MPI 组是一组进程,而通信器可帮助您在这些组内和这些组之间进行通信。
我在看this question的评论
例如,给定一个形状,例如正方形,程序分裂 MPI_COMM_WORLD 分为两组 grpArea 和 grpPerimeter 计算 给定形状的面积和周长。这些团体应该做 他们的私有计算并将结果返回到 root(rank 0) MPI_COMM_WORLD。
假设我们只计算面积而不是计算面积和周长,因此不使用组。使用MPI_Comm_split 拆分通信器以便每个处理器都有自己的通信器是否有任何意义?这样做有什么好处或坏处吗?
【问题讨论】: