Condividi tramite


funzione MPI_Dist_graph_create

Restituisce un handle a un nuovo comunicatore a cui sono associate le informazioni sulla topologia del grafico distribuito.

Sintassi

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

Parametri

  • comm_old [in]
    Handle del comunicatore senza informazioni sulla topologia (handle).

  • n
    Numero di origini per cui questo processo specifica i bordi in uscita (intero non negativo).

  • origini[]
    Matrice contenente le n origini per cui questa origine specifica i bordi in uscita (matrice di interi non negativi).

  • gradi[]
    Matrice che specifica il numero di destinazioni per ogni nodo di origine nella matrice di nodi di origine (matrice di interi non negativi).

  • destinazioni[]
    Nodi di destinazione per i nodi di origine nella matrice di origini (matrice di interi non negativi).

  • pesi[]
    Pesi per i bordi corrispondenti nella matrice di destinazioni (matrice di interi non negativi).

  • info [in]
    Hint sull'ottimizzazione o sull'interpretazione dei pesi (handle). Attualmente usare MPI_INFO_NULL perché questa variabile non viene usata internamente.

  • Riordinare
    I ranghi possono essere riordinati (true) o non (false) (logico). Attualmente non viene usato internamente.

  • comm_dist_graph [out]
    Gestire il comunicatore con le informazioni sulla topologia del grafico distribuita associate (handle).

Valore restituito

Restituisce MPI_SUCCESS sull'esito positivo. In caso contrario, il valore restituito è un codice di errore.

In Fortran il valore restituito viene archiviato nel parametro 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

Commenti

Sia le origini che le matrici di destinazioni possono contenere lo stesso nodo più di una volta e l'ordine in cui i nodi sono elencati come destinazioni o origini non sono significativi. Analogamente, i processi diversi possono specificare i bordi con gli stessi nodi di origine e destinazione. I nodi di origine e di destinazione devono essere in grado di elaborare i ranghi di comm_old. I diversi processi possono specificare diversi numeri di nodi di origine e di destinazione, oltre a diverse origini ai bordi di destinazione. Ciò consente una specifica completamente distribuita del grafico di comunicazione. Processi isolati (processi senza bordi in uscita o in ingresso, ovvero processi che non si verificano come nodo di origine o di destinazione nella specifica del grafico) sono consentiti.

Il numero di processi in comm_dist_graph è identico al numero di processi in comm_old. La chiamata a questa funzione è collettiva.

In C o FORTRAN un'applicazione può fornire MPI_UNWEIGHTED per la matrice di pesi per indicare che tutti i bordi hanno lo stesso peso (in modo efficace). Non è corretto fornire MPI_UNWEIGHTED per alcuni, ma non per tutti i processi di comm_old. Il comportamento in questo caso non è garantito. Se il grafico è ponderato, ma n = 0, MPI_WEIGHTS_EMPTY o qualsiasi matrice arbitraria può essere passata a pesi.

Requisiti

Prodotto

Microsoft MPI v6

Intestazione

Mpi.h; Mpif.h

Libreria

Msmpi.lib

DLL

Msmpi.dll

Vedi anche

Funzioni di topologia del processo MPI

MPI_Dist_graph_create_adjacent

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors