将MPI等级数推广到MPI组?

时间:2012-04-25 12:59:27

标签: mpi

队列号的排名是否有任何概括?对于我的代码,我想创建一个MPI :: COMM_WORLD的层次分解。假设我们使用16个线程。我使用MPI :: COMM_WORLD.Split创建4个通信器,每个通信器有4个等级。现在是否有MPI功能为相应的四个组提供一些独特的ID?

2 个答案:

答案 0 :(得分:5)

嗯,您仍然可以按MPI_COMM_WORLD中的原始排名来引用每个流程。您还可以通过color的{​​{1}}和key参数完全控制每个流程在其新通信器中获得的等级。这是足够的信息来创建旧排名和新组/排名之间的映射。

答案 1 :(得分:1)

如果你不喜欢@suszterpatt的回答(我这样做),你总是可以滥用笛卡尔传播者并假装通信器中索引(2,3)的进程是你的层次分解的第2组中的进程3。 / p>

但是不要读这个并且消除我推荐这种滥用的印象,这只是一个想法。