funktionen MPI_Dist_graph_create
Returnerar ett handtag till en ny kommunikatör som den distribuerade graftopologiinformationen är kopplad till.
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
);
Parametrar
comm_old [in]
Handtaget för kommunikatören utan topologiinformationen (handtaget).n
Antal källor som den här processen anger utgående kanter för (icke-negativt heltal).sources[]
Matris som innehåller de n källor som den här källan anger utgående kanter för (matris med icke-negativa heltal).degrees[]
Matris som anger antalet mål för varje källnod i källnodmatrisen (matris med icke-negativa heltal).destinations[]
Målnoder för källnoderna i källmatrisen (matris med icke-negativa heltal).vikter[]
Vikter för motsvarande kanter i målmatrisen (matris med icke-negativa heltal).info [in]
Tips om optimering eller tolkning av vikter (handtag). Använd för närvarande MPI_INFO_NULL eftersom den här variabeln inte används internt.Ordna
Rangordningen kan ändras (sant) eller inte (falskt) (logiskt). Detta används för närvarande inte internt.comm_dist_graph [ut]
Hantera till kommunikatören med den distribuerade graftopologiinformationen bifogad (referens).
Returvärde
Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.
I Fortran lagras returvärdet i parametern 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
Kommentarer
Både käll - och målmatriserna kan innehålla samma nod mer än en gång, och ordningen i vilken noder listas som mål eller källor är inte betydande. På samma sätt kan olika processer ange kanter med samma käll- och målnoder. Käll- och målnoder måste vara processklasser för comm_old. Olika processer kan ange olika antal käll- och målnoder samt olika käll- och målkanter. Detta möjliggör en fullständigt distribuerad specifikation av kommunikationsdiagrammet. Isolerade processer (processer utan utgående eller inkommande kanter, d.v.s. processer som inte sker som käll- eller målnod i grafspecifikationen) tillåts.
Antalet processer i comm_dist_graph är identiskt med antalet processer i comm_old. Anropet till den här funktionen är kollektivt.
I C eller FORTRAN kan ett program tillhandahålla MPI_UNWEIGHTED för matrisen weights för att indikera att alla kanter har samma (i praktiken ingen) vikt. Det är felaktigt att tillhandahålla MPI_UNWEIGHTED för vissa men inte alla processer i comm_old. Beteendet i ett sådant fall är inte garanterat. Om grafen är viktad, men n = 0, kan MPI_WEIGHTS_EMPTY eller valfri matris skickas till vikter.
Krav
Produkt |
Microsoft MPI v6 |
Huvud |
Mpi.h; Mpif.h |
Bibliotek |
Msmpi.lib |
DLL |
Msmpi.dll |
Se även
Topologifunktioner för MPI-processer
MPI_Dist_graph_create_adjacent