Condividi tramite


funzione MPI_Dist_graph_create_adjacent

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

Sintassi

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

Parametri

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

  • indegree
    Dimensioni delle matrici di origini e pesi di origine (integer non negativo).

  • sources[]
    Ranghi di processi per i quali il processo chiamante è la destinazione (matrice di interi non negativi).

  • pesi di origine[]
    Pesi dei bordi corrispondenti nel processo chiamante (matrice di interi non negativi).

  • outdegree
    Dimensioni delle destinazioni e delle matrici destweights (integer non negativo).

  • destinazioni[]
    Ranghi di processi per i quali il processo chiamante è l'origine (matrice di interi non negativi).

  • destweights[]
    Pesi dei bordi corrispondenti dal processo chiamante (matrice di interi non negativi).

  • info [in]
    Hint per l'ottimizzazione o l'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 questa operazione non viene usata internamente.

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

Valore restituito

Restituisce MPI_SUCCESS in caso di 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_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

Commenti

Ogni processo nel comunicatore comm_old passa tutte le informazioni sui bordi in ingresso e in uscita nella topologia del grafo distribuito virtuale. I processi chiamante devono garantire che ogni bordo del grafico sia descritto nell'origine e nel processo di destinazione con lo stesso peso, se il grafico è ponderato. Se sono presenti più bordi per una determinata coppia di destinazione di origine, la sequenza dei pesi di questi bordi non è importante.

La topologia di comunicazione completa è la combinazione di tutti i bordi visualizzati nella matrice di origini di tutti i processi in comm_old, che deve essere identico alla combinazione di tutti i bordi visualizzati nella matrice di destinazioni . Le classificazioni di origine e di destinazione devono essere classificazioni di processi di comm_old. Ciò consente una specifica completamente distribuita del grafico di comunicazione. I processi isolati, ovvero i processi senza bordi in ingresso o in uscita nella topologia distribuita, e pertanto hanno indegre o outdegree o entrambi, come zero, sono consentiti.

Il numero di processi nel comunicatore appena creato, comm_dist_graph, è identico al numero di processi in comm_old. La chiamata a questa funzione è collettiva.

I pesi vengono specificati come numeri interi non negativi usando le matrici dei pesi di origine e dei pesi destweight , se il grafico è un grafico ponderato. Un'applicazione dovrà specificare MPI_UNWEIGHTED sia per i pesi di origine che per le matrici destweight per indicare che tutti i bordi hanno lo stesso peso (in effetti no). È errato fornire MPI_UNWEIGHTED per alcuni processi, ma non per tutti i processi di comm_old. Il comportamento in questo caso non è garantito. Se il grafico è ponderato, ma indegree o outdegree è zero per un processo, MPI_WEIGHTS_EMPTY o qualsiasi matrice arbitraria può essere passata a pesi di origine o pesi destweight da tale processo.

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

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors