Delen via


MPI_Dist_graph_create functie

Retourneert een ingang naar een nieuwe communicator waaraan de gedistribueerde grafiektopologiegegevens zijn gekoppeld.

Syntaxis

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
);

Parameters

  • comm_old [in]
    De handgreep van de communicator zonder de topologiegegevens (ingang).

  • n
    Aantal bronnen waarvoor dit proces uitgaande randen opgeeft (niet-negatief geheel getal).

  • bronnen[]
    Matrix met de n-bronnen waarvoor deze bron de uitgaande randen opgeeft (matrix van niet-negatieve gehele getallen).

  • degrees[]
    Matrix die het aantal bestemmingen voor elk bronknooppunt in de bronknooppuntmatrix (matrix van niet-negatieve gehele getallen) aangeeft.

  • bestemmingen[]
    Doelknooppunten voor de bronknooppunten in de bronmatrix (matrix van niet-negatieve gehele getallen).

  • gewichten[]
    Gewichten voor corresponderende randen in de doelmatrix (matrix van niet-negatieve gehele getallen).

  • info [in]
    Hints voor optimalisatie of interpretatie van gewichten (handvat). Gebruik momenteel MPI_INFO_NULL omdat deze variabele niet intern wordt gebruikt.

  • Opnieuw ordenen
    Rangschikkingen kunnen worden aangepast (waar) of niet (onwaar) (logisch). Dit wordt momenteel niet intern gebruikt.

  • comm_dist_graph [uit]
    Ga naar de communicator met de informatie over de gedistribueerde graaftopologie gekoppeld (ingang).

Retourwaarde

Retourneert MPI_SUCCESS bij succes. Anders is de retourwaarde een foutcode.

In Fortran wordt de retourwaarde opgeslagen in de parameter 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

Opmerkingen

Zowel de bron - als de doelmatrices kunnen hetzelfde knooppunt meer dan één keer bevatten en de volgorde waarin knooppunten worden vermeld als bestemmingen of bronnen is niet van belang. Op dezelfde manier kunnen verschillende processen randen met dezelfde bron- en doelknooppunten opgeven. Bron- en doelknooppunten moeten procesrangschikkingen van comm_old zijn. Verschillende processen kunnen verschillende aantallen bron- en doelknooppunten opgeven, evenals verschillende bron-naar-doelranden. Dit maakt een volledig gedistribueerde specificatie van de communicatiegrafiek mogelijk. Geïsoleerde processen (processen zonder uitgaande of binnenkomende randen, dat wil gezegd processen die niet voorkomen als bron- of doelknooppunt in de grafiekspecificatie) zijn toegestaan.

Het aantal processen in comm_dist_graph is gelijk aan het aantal processen in comm_old. De aanroep van deze functie is collectief.

In C of FORTRAN kan een toepassing MPI_UNWEIGHTED leveren voor de matrix met gewichten om aan te geven dat alle randen hetzelfde (in feite geen) gewicht hebben. Het is onjuist om MPI_UNWEIGHTED te leveren voor sommige, maar niet alle processen van comm_old. Het gedrag in een dergelijk geval wordt niet gegarandeerd. Als de grafiek gewogen is, maar n = 0, kan MPI_WEIGHTS_EMPTY of willekeurige matrix worden doorgegeven aan gewichten.

Vereisten

Product

Microsoft MPI v6

Header

Mpi.h; Mpif.h

Bibliotheek

Msmpi.lib

DLL

Msmpi.dll

Zie ook

MPI-procestopologiefuncties

MPI_Dist_graph_create_adjacent

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors