Freigeben über


MPI_Dist_graph_create-Funktion

Gibt ein Handle an einen neuen Kommunikator zurück, dem die Topologieinformationen des verteilten Graphs angefügt sind.

Syntax

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

Parameter

  • comm_old [in]
    Der Handle des Communicators ohne die Topologieinformationen (Handle).

  • n
    Anzahl der Quellen, für die dieser Prozess ausgehende Kanten angibt (nicht negative ganze Zahl).

  • Quellen[]
    Array mit den n-Quellen , für die diese Quelle die ausgehenden Kanten angibt (Array von nicht negativen ganzen Zahlen).

  • Grad[]
    Array, das die Anzahl der Ziele für jeden Quellknoten im Quellknotenarray angibt (Array nicht negativer Ganzzahlen).

  • Ziele[]
    Zielknoten für die Quellknoten im Quellenarray (Array mit nicht negativen ganzen Zahlen).

  • Gewichtungen[]
    Gewichtungen für entsprechende Kanten im Zielarray (Array nicht negativer ganzzahliger Werte).

  • info [in]
    Hinweise zur Optimierung oder Interpretation von Gewichtungen (Handle). Verwenden Sie derzeit MPI_INFO_NULL , da diese Variable nicht intern verwendet wird.

  • Neu anordnen
    Ränge können neu sortiert werden (true) oder nicht (false) (logisch). Derzeit wird dies intern nicht verwendet.

  • comm_dist_graph [out]
    Handle an den Communicator mit angefügten Informationen zur verteilten Graphtopologie (Handle).

Rückgabewert

Gibt MPI_SUCCESS nach Erfolg zurück. Andernfalls ist der Rückgabewert ein Fehlercode.

In Fortran wird der Rückgabewert im IERROR-Parameter gespeichert.

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

Hinweise

Sowohl die Quellen - als auch die Zielarrays können denselben Knoten mehrmals enthalten, und die Reihenfolge, in der Knoten als Ziele oder Quellen aufgeführt werden, ist nicht signifikant. Ebenso können verschiedene Prozesse Edges mit denselben Quell- und Zielknoten angeben. Quell- und Zielknoten müssen Prozessrangfolgen von comm_old sein. Verschiedene Prozesse können eine unterschiedliche Anzahl von Quell- und Zielknoten sowie unterschiedliche Quell- und Zielränder angeben. Dies ermöglicht eine vollständig verteilte Spezifikation des Kommunikationsgraphen. Isolierte Prozesse (Prozesse ohne ausgehende oder eingehende Edges, d. h. Prozesse, die nicht als Quell- oder Zielknoten in der Graphspezifikation auftreten) sind zulässig.

Die Anzahl der Prozesse in comm_dist_graph ist identisch mit der Anzahl der Prozesse in comm_old. Der Aufruf dieser Funktion ist kollektiv.

In C oder FORTRAN kann eine Anwendung MPI_UNWEIGHTED für das Gewichtungsarray bereitstellen, um anzugeben, dass alle Kanten die gleiche (effektiv keine) Gewichtung aufweisen. Es ist falsch, MPI_UNWEIGHTED für einige, aber nicht für alle Prozesse der comm_old bereitzustellen. Das Verhalten in einem solchen Fall ist nicht garantiert. Wenn das Diagramm gewichtet, aber n = 0 ist, können MPI_WEIGHTS_EMPTY oder beliebige Arrays an Gewichtungen übergeben werden.

Anforderungen

Produkt

Microsoft MPI v6

Header

Mpi.h; Mpif.h

Bibliothek

Msmpi.lib

DLL

Msmpi.dll

Weitere Informationen

MPI-Prozesstopologiefunktionen

MPI_Dist_graph_create_adjacent

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors