Partager via


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

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors