队列号的排名是否有任何概括?对于我的代码,我想创建一个MPI :: COMM_WORLD的层次分解。假设我们使用16个线程。我使用MPI :: COMM_WORLD.Split创建4个通信器,每个通信器有4个等级。现在是否有MPI功能为相应的四个组提供一些独特的ID?
答案 0 :(得分:5)
嗯,您仍然可以按MPI_COMM_WORLD
中的原始排名来引用每个流程。您还可以通过color
的{{1}}和key
参数完全控制每个流程在其新通信器中获得的等级。这是足够的信息来创建旧排名和新组/排名之间的映射。
答案 1 :(得分:1)
如果你不喜欢@suszterpatt的回答(我这样做),你总是可以滥用笛卡尔传播者并假装通信器中索引(2,3)的进程是你的层次分解的第2组中的进程3。 / p>
但是不要读这个并且消除我推荐这种滥用的印象,这只是一个想法。