Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает дескриптор для нового коммуникатора, к которому присоединены сведения о топологии распределенного графа.
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 .
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