MPI_Dist_graph_create_adjacent-Funktion
Gibt ein Handle an einen neuen Communicator zurück, an den die Topologieinformationen des verteilten Graphs angefügt sind.
Syntax
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
);
Parameter
comm_old [in]
Das Handle des Communicators ohne die Topologieinformationen (Handle).indegree
Größe der Quellen - und Quellgewichtsarrays (nicht negative ganze Zahl).Quellen[]
Rangfolgen von Prozessen, für die der aufrufende Prozess das Ziel ist (Array von nicht negativen ganzen Zahlen).sourceweights[]
Gewichtung der entsprechenden Kanten in den aufrufenden Prozess (Array von nicht negativen ganzen Zahlen).outdegree
Größe der Ziel- und Destgewichtungsarrays (nicht negative ganze Zahl).Destinationen[]
Rangfolgen von Prozessen, für die der aufrufende Prozess die Quelle ist (Array von nicht negativen ganzen Zahlen).destweights[]
Gewichtung der entsprechenden Kanten aus dem aufrufenden Prozess (Array von nicht negativen ganzen Zahlen).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 angeordnet werden (true) oder nicht (falsch) (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_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
Hinweise
Jeder Prozess im comm_old Communicator übergibt alle Informationen zu seinen ein- und ausgehenden Kanten in der Topologie des virtuellen verteilten Graphs. Die aufrufenden Prozesse müssen sicherstellen, dass jeder Rand des Graphen in der Quelle und im Zielprozess mit der gleichen Gewichtung beschrieben wird, wenn das Diagramm gewichtet ist. Wenn für ein bestimmtes Quell-Ziel-Paar mehrere Kanten vorhanden sind, spielt die Reihenfolge der Gewichtungen dieser Kanten keine Rolle.
Die vollständige Kommunikationstopologie ist die Kombination aller Kanten, die im Quellenarray aller Prozesse in comm_old angezeigt werden, die mit der Kombination aller Kanten im Zielarray identisch sein muss. Quell- und Zielränge müssen Prozessrangfolgen von comm_old sein. Dies ermöglicht eine vollständig verteilte Spezifikation des Kommunikationsgraphen. Isolierte Prozesse, d. h. Prozesse, die keine ein- oder ausgehenden Kanten in der verteilten Topologie aufweisen und daher undegree oder outdegree oder beides als Null aufweisen, sind zulässig.
Die Anzahl der Prozesse im neu erstellten Kommunikator comm_dist_graph ist identisch mit der Anzahl der Prozesse in comm_old. Der Aufruf dieser Funktion ist kollektiv.
Gewichtungen werden als nicht negative ganze Zahlen mithilfe der Sourceweights - und Destweights-Arrays angegeben, wenn das Diagramm ein gewichtetes Diagramm ist. Eine Anwendung muss MPI_UNWEIGHTED sowohl für die Sourceweights - als auch für die Destweights-Arrays angeben, um anzugeben, dass alle Kanten die gleiche (effektiv keine) Gewichtung aufweisen. Es ist falsch, für einige, aber nicht für alle Prozesse der comm_old MPI_UNWEIGHTED zu liefern. Das Verhalten in einem solchen Fall ist nicht garantiert. Wenn das Diagramm gewichtet ist, aber indegree oder outdegree für einen Prozess null ist, kann MPI_WEIGHTS_EMPTY oder beliebige Arrays von diesem Prozess an Quellgewichte oder Destgewichte übergeben werden.
Anforderungen
Produkt |
Microsoft MPI v6 |
Header |
Mpi.h; Mpif.h |
Bibliothek |
Msmpi.lib |
DLL |
Msmpi.dll |
Weitere Informationen
MPI-Prozesstopologiefunktionen