Udostępnij za pośrednictwem


MPI_Dist_graph_create_adjacent, funkcja

Zwraca uchwyt do nowego komunikatora, do którego dołączono rozproszone informacje topologii grafu.

Składnia

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
);

Parametry

  • comm_old [in]
    Uchwyt komunikatora bez informacji o topologii (uchwyt).

  • indegree
    Rozmiar źródeł i tablic wagi źródłowej (liczba całkowita nie ujemna).

  • sources[]
    Rangi procesów, dla których proces wywołujący jest miejscem docelowym (tablica nie ujemnych liczb całkowitych).

  • sourceweights[]
    Wagi odpowiednich krawędzi do procesu wywoływania (tablica liczb całkowitych nie ujemnych).

  • outdegree
    Rozmiar miejsc docelowych i tablic destweights (liczba całkowita nie ujemna).

  • miejsca docelowe[]
    Szeregi procesów, dla których proces wywołujący jest źródłem (tablica nie ujemnych liczb całkowitych).

  • destweights[]
    Wagi odpowiednich krawędzi poza procesem wywołującym (tablica nie ujemnych liczb całkowitych).

  • info [in]
    Wskazówki dotyczące optymalizacji lub interpretacji wag (uchwyt). Obecnie należy używać MPI_INFO_NULL , ponieważ ta zmienna nie jest używana wewnętrznie.

  • Zmienić kolejność
    Klasyfikacje mogą być zmieniane na kolejność (prawda) lub nie (fałsz) (logiczne). Obecnie nie jest to używane wewnętrznie.

  • comm_dist_graph [out]
    Obsługa komunikatora za pomocą dołączonych informacji topologii wykresu rozproszonego (uchwyt).

Wartość zwracana

Zwraca MPI_SUCCESS po powodzeniu. W przeciwnym razie zwracana wartość jest kodem błędu.

W fortran wartość zwracana jest przechowywana w parametrze 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

Uwagi

Każdy proces w comm_old komunikatora przekazuje wszystkie informacje o jego przychodzących i wychodzących krawędziach w topologii wirtualnego rozproszonego grafu. Procesy wywołujące muszą zapewnić, że każda krawędź grafu jest opisana w źródle i w procesie docelowym o tej samej wadze, jeśli wykres jest ważony. Jeśli istnieje wiele krawędzi dla danej pary źródłowej docelowej, sekwencja wag tych krawędzi nie ma znaczenia.

Pełna topologia komunikacji jest kombinacją wszystkich krawędzi pokazanych w tablicy źródeł wszystkich procesów w comm_old, które muszą być identyczne z kombinacją wszystkich krawędzi pokazanych w tablicy miejsc docelowych . Klasyfikacje źródłowe i docelowe muszą być szeregami procesów comm_old. Umożliwia to w pełni rozproszoną specyfikację grafu komunikacyjnego. Izolowane procesy, czyli procesy bez krawędzi przychodzących lub wychodzących w topologii rozproszonej, a tym samym mają niedegree lub outdegree lub oba, jako zero, są dozwolone.

Liczba procesów w nowo utworzonym komunikatorze, comm_dist_graph, jest identyczna z liczbą procesów w comm_old. Wywołanie tej funkcji jest zbiorcze.

Wagi są określane jako nie ujemne liczby całkowite używające wag źródłowych i tablic destweights , jeśli wykres jest wykresem ważonym. Aplikacja musi określić MPI_UNWEIGHTED zarówno dla macierzy wagi źródłowej , jak i macierzy destweights , aby wskazać, że wszystkie krawędzie mają taką samą (skutecznie nie) wagę. Błędne jest dostarczanie MPI_UNWEIGHTED dla niektórych, ale nie wszystkich procesów comm_old. Zachowanie w takim przypadku nie jest gwarantowane. Jeśli wykres jest ważony, ale niegree lub outdegree jest zerowy dla procesu, MPI_WEIGHTS_EMPTY lub dowolna tablica może zostać przekazana do wagi źródłowej lub wagi przez ten proces.

Wymagania

Produkt

Microsoft MPI v6

Nagłówek

Mpi.h; Mpif.h

Biblioteka

Msmpi.lib

DLL

Msmpi.dll

Zobacz też

Funkcje topologii procesów MPI

MPI_Dist_graph_create

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors