다음을 통해 공유


MPI_Dist_graph_create_adjacent 함수

분산 그래프 토폴로지 정보가 연결된 새 통신자에 대한 핸들을 반환합니다.

구문

int WINAPI MPI_Dist_graph_create_adjacent(
  _In_  MPI_Comm                comm_old,
        _In_range_(>=,0)  int   indegree,
        _In_reads_opt const int sources[],
        _In_reads_opt const int sourceweights[],
        _In_range_(>=,0)  int   outdegree,
        _In_reads_opt const int destinations[],
        _In_reads_opt const int destweights[],
  _In_  MPI_Info                info,
        _In_range_(0,1) int     reorder,
  _Out_ MPI_Comm                *comm_dist_graph
);

매개 변수

  • comm_old [in]
    토폴로지 정보(핸들)가 없는 통신기의 핸들입니다.

  • indegree
    원본 및sourceweights 배열의 크기(음수가 아닌 정수)입니다.

  • sources[]
    호출 프로세스가 대상인 프로세스의 순위(음수가 아닌 정수의 배열)입니다.

  • sourceweights[]
    호출 프로세스에 해당하는 에지의 가중치(음수가 아닌 정수 배열)입니다.

  • outdegree
    대상destweights 배열의 크기(음수가 아닌 정수)입니다.

  • destinations[]
    호출 프로세스가 원본(음수가 아닌 정수의 배열)인 프로세스의 순위입니다.

  • destweights[]
    호출 프로세스에서 해당하는 에지의 가중치(음수가 아닌 정수 배열)입니다.

  • 정보 [in]
    가중치(핸들)의 최적화 또는 해석에 대한 힌트입니다. 현재 이 변수는 내부적으로 사용되지 않으므로 MPI_INFO_NULL 사용합니다.

  • 순서
    순위는 (true) 또는 (false)(논리적)이 아닌 순서를 다시 정렬할 수 있습니다. 현재 내부적으로 사용되지 않습니다.

  • comm_dist_graph [out]
    분산 그래프 토폴로지 정보가 연결된 통신자에 대한 핸들(핸들)입니다.

반환 값

성공에 대한 MPI_SUCCESS 반환합니다. 그렇지 않으면 반환 값이 오류 코드입니다.

Fortran에서 반환 값은 IERROR 매개 변수에 저장됩니다.

Fortran

    MPI_DIST_GRAPH_CREATE_ADJACENT (COMM_OLD, INDEGREE, SOURCES, SOURCEWEIGHTS,
    OUTDEGREE, DESTINATIONS, DESTWEIGHTS, INFO, REORDER,
    COMM_DIST_GRAPH, IERROR)
        INTEGER COMM_OLD, INDEGREE, SOURCES (*), SOURCEWEIGHTS (*), OUTDEGREE,
    DESTINATIONS (*), DESTWEIGHTS (*), INFO, COMM_DIST_GRAPH, IERROR
        LOGICAL REORDER

설명

comm_old 커뮤니케이터의 각 프로세스는 가상 분산 그래프 토폴로지에서 들어오고 나가는 에지에 대한 모든 정보를 전달합니다. 호출 프로세스는 그래프의 가중치가 지정된 경우 그래프의 각 가장자리가 원본 및 대상 프로세스에서 동일한 가중치로 설명되도록 해야 합니다. 지정된 원본 대상 쌍에 대해 여러 가장자리가 있는 경우 이러한 가장자리의 가중치 시퀀스는 중요하지 않습니다.

전체 통신 토폴로지는 comm_old 모든 프로세스의 원본 배열에 표시된 모든 가장자리의 조합으로, 대상 배열에 표시된 모든 가장자리의 조합 동일해야 합니다. 원본 및 대상 순위는 comm_old 프로세스 순위여야 합니다. 이렇게 하면 통신 그래프의 완전히 분산된 사양을 사용할 수 있습니다. 격리된 프로세스, 즉 분산 토폴로지에서 들어오거나 나가는 에지가 없는 프로세스는 0으로 허용됩니다.

새로 만든 통신기의 프로세스 수( comm_dist_graph)는 comm_old 프로세스 수와 동일합니다. 이 함수에 대한 호출은 집합입니다.

그래프가 가중 그래프인 경우 가중치는 sourceweightsdestweights 배열을 사용하여 음수가 아닌 정수로 지정됩니다. 애플리케이션은 모든 가장자리의 가중치가 동일함을 나타내기 위해 sourceweightsdestweights 배열 모두에 대한 MPI_UNWEIGHTED 지정해야 합니다. comm_old 일부 프로세스에 대한 MPI_UNWEIGHTED 제공하는 것은 잘못되었습니다. 이러한 경우의 동작은 보장되지 않습니다. 그래프에 가중치가 있지만 프로세스에 대한 indegree 또는 outdegree 가 0이면 MPI_WEIGHTS_EMPTY 또는 임의의 배열이 해당 프로세스에 의해 sourceweights 또는 destweights 에 전달될 수 있습니다.

요구 사항

제품

Microsoft MPI v6

헤더

Mpi.h; Mpif.h

라이브러리

Msmpi.lib

DLL

Msmpi.dll

추가 정보

MPI 프로세스 토폴로지 함수

MPI_Dist_graph_create

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors