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_Dist_graph_create_adjacent