MPI_Dist_graph_create fonction
Retourne un handle à un nouveau communicateur auquel les informations de topologie de graphe distribuées sont attachées.
Syntaxe
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
);
Paramètres
comm_old [in]
Handle du communicateur sans les informations de topologie (handle).n
Nombre de sources pour lesquelles ce processus spécifie des arêtes sortantes (entier non négatif).sources[]
Tableau contenant les n sources pour lesquelles cette source spécifie les arêtes sortantes (tableau d’entiers non négatifs).degrés[]
Tableau spécifiant le nombre de destinations pour chaque nœud source dans le tableau de nœuds source (tableau d’entiers non négatifs).destinations[]
Nœuds de destination pour les nœuds sources dans le tableau sources (tableau d’entiers non négatifs).poids[]
Pondérations des arêtes correspondantes dans le tableau de destinations (tableau d’entiers non négatifs).info [in]
Conseils sur l’optimisation ou l’interprétation des pondérations (handle). Utilisez actuellement MPI_INFO_NULL , car cette variable n’est pas utilisée en interne.Réorganiser
Les rangs peuvent être réorganisés (true) ou non (faux) (logique). Actuellement, il n’est pas utilisé en interne.comm_dist_graph [out]
Gérez le communicateur avec les informations de topologie de graphe distribuées jointes (handle).
Valeur retournée
Retourne MPI_SUCCESS en cas de réussite. Sinon, la valeur de retour est un code d’erreur.
Dans Fortran, la valeur de retour est stockée dans le paramètre 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
Remarques
Les tableaux de sources et de destinations peuvent contenir le même nœud plusieurs fois, et l’ordre dans lequel les nœuds sont répertoriés en tant que destinations ou sources n’est pas significatif. De même, différents processus peuvent spécifier des arêtes avec les mêmes nœuds source et de destination. Les nœuds source et de destination doivent être des rangs de processus de comm_old. Différents processus peuvent spécifier différents nombres de nœuds source et de destination, ainsi que des arêtes de source à destination différentes. Cela permet une spécification entièrement distribuée du graphe de communication. Les processus isolés (les processus sans arêtes sortantes ou entrantes, c’est-à-dire les processus qui ne se produisent pas en tant que nœud source ou de destination dans la spécification du graphique) sont autorisés.
Le nombre de processus dans comm_dist_graph est identique au nombre de processus dans comm_old. L’appel à cette fonction est collectif.
En C ou FORTRAN, une application peut fournir des MPI_UNWEIGHTED pour le tableau de pondérations afin d’indiquer que tous les bords ont le même poids (en fait aucun). Il est erroné de fournir des MPI_UNWEIGHTED pour certains processus de comm_old, mais pas tous. Dans ce cas, le comportement n’est pas garanti. Si le graphique est pondéré, mais que n = 0, MPI_WEIGHTS_EMPTY ou n’importe quel tableau arbitraire peut être passé à des pondérations.
Configuration requise
Produit |
Microsoft MPI v6 |
En-tête |
Mpi.h ; Mpif.h |
Bibliothèque |
Msmpi.lib |
DLL |
Msmpi.dll |
Voir aussi
Fonctions de topologie de processus MPI
MPI_Dist_graph_create_adjacent