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