Прочитать на английском

Поделиться через


функция 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 для массива весовых коэффициентов , чтобы указать, что все ребра имеют одинаковый (фактически нет) вес. Ошибочно предоставлять MPI_UNWEIGHTED для некоторых, но не всех процессов comm_old. Поведение в таком случае не гарантируется. Если граф взвешен, но n = 0, то MPI_WEIGHTS_EMPTY или любой произвольный массив можно передать в весовые коэффициенты.

Требования

Продукт

Microsoft MPI версии 6

Заголовок

Mpi.h; Mpif.h

Библиотека

Msmpi.lib

DLL

Msmpi.dll

См. также раздел

Функции топологии процесса MPI

MPI_Dist_graph_create_adjacent

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors