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