Delen via


MPI_Dist_graph_create_adjacent functie

Retourneert een ingang naar een nieuwe communicator waaraan de informatie over de gedistribueerde grafiektopologie is gekoppeld.

Syntaxis

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
);

Parameters

  • comm_old [in]
    De ingang van de communicator zonder de topologiegegevens (ingang).

  • indegree
    Grootte van de bron - en brongewichtmatrices (niet-negatief geheel getal).

  • bronnen[]
    Rangschikkingen van processen waarvan het aanroepende proces het doel is (matrix van niet-negatieve gehele getallen).

  • sourceweights[]
    Gewichten van de bijbehorende randen in het aanroepende proces (matrix van niet-negatieve gehele getallen).

  • outdegree
    Grootte van de bestemmingen en destweights matrices (niet-negatief geheel getal).

  • bestemmingen[]
    Rangschikkingen van processen waarvan het aanroepende proces de bron is (matrix van niet-negatieve gehele getallen).

  • destweights[]
    Gewichten van de bijbehorende randen buiten het aanroepende proces (matrix van niet-negatieve gehele getallen).

  • info [in]
    Hints over 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]
    Handle naar de communicator met de gedistribueerde grafiektopologiegegevens bijgevoegd (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_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

Opmerkingen

Elk proces in de comm_old communicator geeft alle informatie over de binnenkomende en uitgaande randen door in de virtueel gedistribueerde graaftopologie. De aanroepende processen moeten ervoor zorgen dat elke rand van de grafiek wordt beschreven in de bron en in het doelproces met hetzelfde gewicht, als de grafiek wordt gewogen. Als er meerdere randen zijn voor een bepaald bron-doelpaar, maakt de volgorde van de gewichten van deze randen niet uit.

De volledige communicatietopologie is de combinatie van alle randen die worden weergegeven in de bronmatrix van alle processen in comm_old, die identiek moet zijn aan de combinatie van alle randen die worden weergegeven in de doelmatrix . Bron- en doelrangschikkingen moeten procesrangschikkingen van comm_old zijn. Dit maakt een volledig gedistribueerde specificatie van de communicatiegrafiek mogelijk. Geïsoleerde processen, dat wil gezegd, processen zonder binnenkomende of uitgaande randen in de gedistribueerde topologie, en dus indegree of outdegree hebben of beide, als nul, zijn toegestaan.

Het aantal processen in de zojuist gemaakte communicator, comm_dist_graph, is identiek aan het aantal processen in comm_old. De aanroep van deze functie is collectief.

Gewichten worden opgegeven als niet-negatieve gehele getallen met behulp van de brongewichten en destweights-matrices , als de grafiek een gewogen grafiek is. Een toepassing moet MPI_UNWEIGHTED opgeven voor zowel de brongewichten als destweights-matrices 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 indegree of outdegree nul is voor een proces, kan MPI_WEIGHTS_EMPTY of willekeurige matrix worden doorgegeven aan brongewichten of destweights door dat proces.

Vereisten

Product

Microsoft MPI v6

Header

Mpi.h; Mpif.h

Bibliotheek

Msmpi.lib

DLL

Msmpi.dll

Zie ook

MpI-procestopologiefuncties

MPI_Dist_graph_create

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors