Sdílet prostřednictvím


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

Viz také

Funkce procesní topologie MPI

MPI_Dist_graph_create

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors