다음을 통해 공유


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 프로세스 토폴로지 함수

MPI_Dist_graph_create_adjacent

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors