Sdílet prostřednictvím


MPI_Dist_graph_create 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(
  _In_  MPI_Comm                comm_old,
        _In_range_(>=,0)  int   n,
        _In_reads_opt const int sources[],
        _In_reads_opt const int degrees[],
        _In_opt const int       destinations[],
        _In_opt const int       weights[],
  _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č).

  • n
    Počet zdrojů, pro které tento proces určuje odchozí hrany (nezáporné celé číslo)

  • zdroje[]
    Pole obsahující n zdrojů, pro které tento zdroj určuje odchozí hrany (pole nezáporných celých čísel).

  • stupňů[]
    Pole určující počet cílů pro každý zdrojový uzel v poli zdrojového uzlu (pole nezáporných celých čísel).

  • destinace[]
    Cílové uzly pro zdrojové uzly v poli zdrojů (pole nezáporných celých čísel).

  • váhy[]
    Váhy pro odpovídající hrany v poli cílů (pole nezáporných celých čísel).

  • informace [v]
    Rady k optimalizaci nebo interpretaci vah (popisovač) 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 (nepravda) (logické). V současné době se nepoužívá interně.

  • comm_dist_graph [ven]
    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.

Ve Fortranu je vrácená hodnota uložena v parametru IERROR .

Fortran

    MPI_DIST_GRAPH_CREATE (COMM_OLD, N, SOURCES, DEGREES, DESTINATIONS, WEIGHTS,
    INFO, REORDER, COMM_DIST_GRAPH, IERROR)
        INTEGER COMM_OLD, N, SOURCES (*), DEGREES (*), DESTINATIONS (*),
    WEIGHTS (*), INFO, COMM_DIST_GRAPH, IERROR
        LOGICAL REORDER

Poznámky

Pole zdrojů i cílů mohou obsahovat stejný uzel více než jednou a pořadí, ve kterém jsou uzly uvedeny jako cíle nebo zdroje, není významné. Podobně mohou různé procesy určovat hrany se stejným zdrojovým a cílovým uzlem. Zdrojové a cílové uzly musí mít pořadí procesů comm_old. Různé procesy můžou určovat různé počty zdrojových a cílových uzlů a také různé zdrojové a cílové hrany. To umožňuje plně distribuovanou specifikaci komunikačního grafu. Izolované procesy (procesy bez odchozích nebo příchozích okrajů, tj. procesy, které se ve specifikaci grafu nenacházejí jako zdrojový nebo cílový uzel) jsou povolené.

Počet procesů v comm_dist_graph je stejný jako počet procesů v comm_old. Volání této funkce je kolektivní.

V jazyce C nebo FORTRAN může aplikace poskytnout MPI_UNWEIGHTED pro pole váhy , které označují, že všechny hrany mají stejnou (vlastně žádnou) váhu. Je chybné dodávat 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 n = 0, pak MPI_WEIGHTS_EMPTY nebo libovolné pole mohou být předány váhym.

Požadavky

Produkt

Microsoft MPI v6

Hlavička

Mpi.h; Soubor Mpif.h

Knihovna

Msmpi.lib

DLL

Msmpi.dll

Viz také

Funkce topologie procesu MPI

MPI_Dist_graph_create_adjacent

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors