Funkcja służy do uporządkowania procesów według topologii
grafowej, gdzie comm_old - uchwyt do komunikatora bez zdefiniowanej
topologii, nnodes liczba węzłów w grafie, index - tablica zawierająca
stopnie węzłów w grafie, edges tablica zawierająca informacje o połączeniach,
reorder flaga zezwolenia na zmianę kolejności procesów, comm_graph uchwyt
do komunikatora z topologią grafową.
Jeśli liczba nnodes oznaczająca ilość węzłów w grafie jest mniejsza od liczby procesów w komunikatorze
comm, funkcja zwraca niektórym procesom MPI_COMM_NULL. Gdy procesów jest mniej niż węzłów funkcja zwraca błąd.
Struktura grafu definiowana jest przez trzy zmienne:
nnodes, index oraz edges. Parametr nnodes to liczba węzłów w grafie. Węzły są ponumerowane od 0 do nnodes-1. I-ty element tablicy index zawiera liczbę sąsiadów i-tego węzła (stopień węzła). Lista sąsiadów węzłów o numerach 0, 1, ..., nnodes-1 są zamieszczone kolejno w tablicy
edges.
Przykład.
Załóżmy, że mamy cztery procesy o numerach 0, 1, 2, 3, których powiązania opisuje poniższa tablica:
Numer procesu
Numery sąsiadów procesu
0
1, 3
1
0
2
3
3
0, 2
W tych warunkach argumenty wejściowe funkcji MPI_GRAPH_CREATE będą miały postać: