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