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