Partager via


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

Paramètres

  • comm_old [in]
    Handle du communicateur sans les informations de topologie (handle).

  • indégrée
    Taille des tableaux sources et sourcesweights (entier non négatif).

  • sources[]
    Rangs des processus pour lesquels le processus appelant est la destination (tableau d’entiers non négatifs).

  • sourcesweights[]
    Pondérations des arêtes correspondantes dans le processus appelant (tableau d’entiers non négatifs).

  • outdegree
    Taille des tableaux destinations et destweights (entier non négatif).

  • destinations[]
    Rangs des processus pour lesquels le processus appelant est la source (tableau d’entiers non négatifs).

  • destweights[]
    Pondérations des arêtes correspondantes hors du processus appelant (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_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

Remarques

Chaque processus du comm_old communicator transmet toutes les informations sur ses bords entrants et sortants dans la topologie de graphe distribué virtuel. Les processus appelants doivent s’assurer que chaque bord du graphe est décrit dans la source et dans le processus de destination avec le même poids, si le graphe est pondéré. S’il existe plusieurs arêtes pour une paire source-destination donnée, la séquence des pondérations de ces arêtes n’a pas d’importance.

La topologie de communication complète est la combinaison de tous les bords affichés dans le tableau sources de tous les processus dans comm_old, qui doit être identique à la combinaison de tous les bords affichés dans le tableau de destinations . Les rangs source et de destination doivent être des rangs de processus de comm_old. Cela permet une spécification entièrement distribuée du graphe de communication. Les processus isolés, c’est-à-dire les processus sans arête entrante ou sortante dans la topologie distribuée, et qui ont donc un degré d’indégrée ou de dépassement, ou les deux, comme zéro, sont autorisés.

Le nombre de processus dans le communicateur nouvellement créé, comm_dist_graph, est identique au nombre de processus dans comm_old. L’appel à cette fonction est collectif.

Les pondérations sont spécifiées sous forme d’entiers non négatifs à l’aide des tableaux de pondérations source et destweights , si le graphe est un graphe pondéré. Une application doit spécifier MPI_UNWEIGHTED pour les tableaux sourceweights et destweights 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 graphe est pondéré, mais que l’indégree ou l’outdegree est égal à zéro pour un processus, MPI_WEIGHTS_EMPTY ou n’importe quel tableau arbitraire peut être passé à des poids sources ou destweights par ce processus.

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

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors