3

等级编号是否有任何泛化到组编号?对于我的代码,我想创建 MPI::COMM_WORLD 的分层分解。假设我们使用 16 个线程。我使用 MPI::COMM_WORLD.Split 创建 4 个通信器,每个通信器有 4 个等级。现在是否有一个 MPI 函数可以为相应的四个组提供一些唯一的 id?

4

2 回答 2

5

好吧,您仍然可以按每个进程在MPI_COMM_WORLD. 您还可以通过 的colorkey参数完全控制每个进程在其新通信器中获得的等级MPI_Comm_split()。这是足够的信息来创建旧等级和新组/等级之间的映射。

于 2012-04-25T13:24:05.493 回答
1

如果您不喜欢@suszterpatt 的回答(我喜欢),您总是可以滥用笛卡尔通信器并假装通信器中索引 (2,3) 处的进程是层次分解的第 2 组中的进程 3。

但是不要读到这篇文章并带走我推荐这种滥用的印象,这只是一个想法。

于 2012-04-25T13:30:09.417 回答