MPI_Dist_graph_create_adjacent funkce
Vrátí popisovač nového komunikátoru, ke kterému jsou připojeny informace o distribuované topologii grafu.
Syntaxe
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 [v]
Popisovač komunikátoru bez informací o topologii (popisovač).indegree
Velikost polí sourcea sourceweights (nezáporné celé číslo)zdroje[]
Pořadí procesů, pro které je volající proces cílem (pole nezáporných celých čísel).sourceweights[]
Váhy odpovídajících hran do procesu volání (pole nezáporných celých čísel).outdegree
Velikost polí cílů a destweights (nezáporné celé číslo)destinations[]
Pořadí procesů, pro které je volající proces zdrojem (pole nezáporných celých čísel).destweights[]
Váhy odpovídajících hran z procesu volání (pole nezáporných celých čísel)info [v]
Rady týkající se optimalizace nebo interpretace vah (úchytu). V současné době se používá MPI_INFO_NULL , protože tato proměnná se nepoužívá interně.Přiobjednání
Pořadí může být přeuspořádané (pravda) nebo ne (false) (logická hodnota). V současné době se nepoužívá interně.comm_dist_graph [out]
Popisovač komunikátoru s připojenými informacemi o distribuované topologii grafu (popisovač).
Vrácená hodnota
Vrátí MPI_SUCCESS při úspěchu. V opačném případě je návratovou hodnotou kód chyby.
V nástroji Fortran je vrácená hodnota uložena v parametru 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
Poznámky
Každý proces v comm_old communicatoru předává všechny informace o svých příchozích a odchozích hranách ve virtuální distribuované grafové topologii. Volající procesy musí zajistit, aby každá hrana grafu byla popsána ve zdroji a v cílovém procesu se stejnou váhou, pokud je graf vážený. Pokud existuje více hran pro danou dvojici zdroj-cíl, pak pořadí hmotností těchto hran nezáleží.
Kompletní komunikační topologie je kombinace všech hran zobrazených v poli sources všech procesů v comm_old, která musí být shodná s kombinací všech hran zobrazených v poli cílů . Zdrojové a cílové pořadí musí být pořadí procesů comm_old. To umožňuje plně distribuovanou specifikaci komunikačního grafu. Izolované procesy, tj. procesy bez příchozích nebo odchozích okrajů v distribuované topologii, a proto mají nedegree nebo outdegree nebo obojí, jako nula, jsou povoleny.
Počet procesů v nově vytvořeném communicatoru , comm_dist_graph, je stejný jako počet procesů v comm_old. Volání této funkce je kolektivní.
Váhy se zadají jako nezáporná celá čísla pomocí polí sourceweights a destweights , pokud je graf váženým grafem. Aplikace bude muset zadat MPI_UNWEIGHTED pro pole sourceweights i destweights , aby bylo možné označit, že všechny hrany mají stejnou (v podstatě ne) váhu. Je chybné poskytovat MPI_UNWEIGHTED pro některé, ale ne všechny procesy comm_old. Chování v takovém případě není zaručeno. Pokud je graf vážený, ale nedegree nebo outdegree je pro proces nula, pak MPI_WEIGHTS_EMPTY nebo libovolné pole může být předáno do zdrojových vah nebo destweights tímto procesem.
Požadavky
Produkt |
Microsoft MPI v6 |
Hlavička |
Mpi.h; Mpif.h |
Knihovna |
Msmpi.lib |
DLL |
Msmpi.dll |