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

MPI_Dist_graph_create

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors