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