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

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors