我们如何计算“MPI_graph_create”索引数组?
How do we compute the `MPI_graph_create` index array?
任何人都可以使用通俗易懂的英语来解释 index
在函数 MPI_Graph_create(MPI_Comm comm_old, int nnodes, const int index[],
const int edges[], int reorder, MPI_Comm *comm_graph)
中的作用吗
我一直在分析 MPI 手册页中指定的 MPI_Graph_create
函数。我想念 index[]
的计算方式。该标准规定 index
变量指的是节点的度数,这意味着从特定节点入射的边数。对于下面的邻接矩阵,标准有 index = 2, 3, 4, 6
。我期待 2 , 1 ,1 ,2
基于在邻接矩阵中指定的边。
Process Neighbors
0 1,3
1 0
2 3
3 0,2
MPI 标准的正确答案是:-
nnodes = 4
index = 2, 3, 4, 6
edges = 1 ,3, 0, 3, 0 ,2
你理解正确,但是索引写错了。也就是说,"answer" index= 2, 3, 4, 6
等同于 index= 2, 1, 1, 2
.
只需注意
2 = 2
3 = 2 + 1
4 = 2 + 1 + 1
6 = 2 + 1 + 1 + 2
您可以看到您对问题的理解如何与规范的答案相匹配。您所要做的就是总结您的版本,以便为 MPI_Graph_create()
提供所需的索引。
任何人都可以使用通俗易懂的英语来解释 index
在函数 MPI_Graph_create(MPI_Comm comm_old, int nnodes, const int index[],
const int edges[], int reorder, MPI_Comm *comm_graph)
我一直在分析 MPI 手册页中指定的 MPI_Graph_create
函数。我想念 index[]
的计算方式。该标准规定 index
变量指的是节点的度数,这意味着从特定节点入射的边数。对于下面的邻接矩阵,标准有 index = 2, 3, 4, 6
。我期待 2 , 1 ,1 ,2
基于在邻接矩阵中指定的边。
Process Neighbors
0 1,3
1 0
2 3
3 0,2
MPI 标准的正确答案是:-
nnodes = 4
index = 2, 3, 4, 6
edges = 1 ,3, 0, 3, 0 ,2
你理解正确,但是索引写错了。也就是说,"answer" index= 2, 3, 4, 6
等同于 index= 2, 1, 1, 2
.
只需注意
2 = 2
3 = 2 + 1
4 = 2 + 1 + 1
6 = 2 + 1 + 1 + 2
您可以看到您对问题的理解如何与规范的答案相匹配。您所要做的就是总结您的版本,以便为 MPI_Graph_create()
提供所需的索引。