funktionen MPI_Dist_graph_create_adjacent
Returnerar ett handtag till en ny kommunikatör som den distribuerade graftopologiinformationen är kopplad till.
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
);
Parametrar
comm_old [in]
Handtaget för kommunikatören utan topologiinformationen (handtaget).indegree
Storleken på matriserna för källor och källvikter (icke-negativt heltal).sources[]
Rangordning av processer för vilka anropsprocessen är målet (matris med icke-negativa heltal).sourceweights[]
Vikter för motsvarande kanter i anropsprocessen (matris med icke-negativa heltal).outdegree
Storleken på mål - och destweights-matriserna (icke-negativt heltal).destinations[]
Rangordning av processer för vilka anropsprocessen är källan (matris med icke-negativa heltal).destweights[]
Vikter för motsvarande kanter från anropsprocessen (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_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
Kommentarer
Varje process i comm_old-kommunikatören skickar all information om dess inkommande och utgående kanter i den virtuella distribuerade graftopologin. De anropande processerna måste se till att varje kant av grafen beskrivs i källan och i målprocessen med samma viktning, om grafen är viktad. Om det finns flera kanter för ett givet källmålpar spelar det ingen roll hur vikterna i dessa kanter väger.
Den fullständiga kommunikationstopologin är en kombination av alla kanter som visas i källmatrisen för alla processer i comm_old, som måste vara identisk med kombinationen av alla kanter som visas i målmatrisen . Käll- och målrankningarna måste vara processklasser för comm_old. Detta möjliggör en fullständigt distribuerad specifikation av kommunikationsdiagrammet. Isolerade processer, d.v.s. processer utan inkommande eller utgående kanter i den distribuerade topologin, och har därför indegree eller outdegree eller båda, som noll, tillåts.
Antalet processer i den nyligen skapade kommunikatören , comm_dist_graph, är identiskt med antalet processer i comm_old. Anropet till den här funktionen är kollektivt.
Vikter anges som icke-negativa heltal med matriserna sourceweights och destweights , om grafen är en viktad graf. Ett program måste ange MPI_UNWEIGHTED för både källvikts - och destweights-matriserna 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 indegree eller outdegree är noll för en process, kan MPI_WEIGHTS_EMPTY eller valfri matris skickas till källvikter eller destweights av den processen.
Krav
Produkt |
Microsoft MPI v6 |
Huvud |
Mpi.h; Mpif.h |
Bibliotek |
Msmpi.lib |
DLL |
Msmpi.dll |
Se även
Topologifunktioner för MPI-processer