MPI_Dist_graph_create 函数
返回分布式图形拓扑信息所附加到的新通信器的句柄。
语法
int WINAPI MPI_Dist_graph_create(
_In_ MPI_Comm comm_old,
_In_range_(>=,0) int n,
_In_reads_opt const int sources[],
_In_reads_opt const int degrees[],
_In_opt const int destinations[],
_In_opt const int weights[],
_In_ MPI_Info info,
_In_range_(0,1) int reorder,
_Out_ MPI_Comm *comm_dist_graph
);
参数
comm_old [in]
没有拓扑信息的通信器的句柄 (处理) 。n
此过程指定传出边缘 (非负整数) 的源的数目。sources[]
包含 n 个源的数组,此源指定) 非负整数数组 (传出边缘。degrees[]
指定源节点数组中每个源节点的目标数的数组, () 非负整数数组。destinations[]
源数组中源节点的目标节点 (非负整数数组) 。weights[]
目标数组中相应边缘的权重 (非负整数数组) 。info [in]
有关优化或解释权重的提示, (处理) 。 当前使用 MPI_INFO_NULL ,因为此变量未在内部使用。排序
(true) 或不 (false) (逻辑) ,可能会对排名重新排序。 目前,这不会在内部使用。comm_dist_graph [out]
通信器的句柄,其中附加了分布式图形拓扑信息, (处理) 。
返回值
返回成功 时MPI_SUCCESS 。 否则,返回值为错误代码。
在 Fortran 中,返回值存储在 IERROR 参数中。
Fortran
MPI_DIST_GRAPH_CREATE (COMM_OLD, N, SOURCES, DEGREES, DESTINATIONS, WEIGHTS,
INFO, REORDER, COMM_DIST_GRAPH, IERROR)
INTEGER COMM_OLD, N, SOURCES (*), DEGREES (*), DESTINATIONS (*),
WEIGHTS (*), INFO, COMM_DIST_GRAPH, IERROR
LOGICAL REORDER
注解
源数组和目标数组可能多次包含同一个节点,并且节点作为目标或源列出的顺序并不重要。 同样,不同的进程可以指定具有相同源节点和目标节点的边缘。 源节点和目标节点必须是 comm_old的进程级别。 不同的进程可以指定不同数量的源节点和目标节点,以及不同的源到目标边缘。 这允许通信图的完全分布式规范。 独立进程 (没有传出边缘或传入边缘的进程,也就是说,允许在图形规范) 中不作为源节点或目标节点发生的进程。
comm_dist_graph中的进程数与 comm_old 中的进程数相同。 对此函数的调用是集体的。
在 C 或 FORTRAN 中,应用程序可以为权重数组提供MPI_UNWEIGHTED,以指示所有边缘具有相同 (实际上没有) 权重。 为 某些但 不是所有comm_old过程提供 MPI_UNWEIGHTED是错误的。 在这种情况下,无法保证其行为。 如果图形是加权的,但 n = 0,则 MPI_WEIGHTS_EMPTY 或任何任意数组都可以传递给 权重。
要求
产品 |
Microsoft MPI v6 |
标头 |
Mpi.h;Mpif.h |
库 |
Msmpi.lib |
DLL |
Msmpi.dll |
另请参阅
MPI_Dist_graph_create_adjacent