Compartir a través de


función MPI_Dist_graph_create

Devuelve un identificador a un nuevo comunicador al que se adjunta la información de topología del grafo distribuido.

Sintaxis

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

Parámetros

  • comm_old [in]
    Identificador del comunicador sin la información de topología (identificador).

  • n
    Número de orígenes para los que este proceso especifica los bordes salientes (enteros no negativos).

  • sources[]
    Matriz que contiene los n orígenes para los que este origen especifica los bordes salientes (matriz de enteros no negativos).

  • degrees[]
    Matriz que especifica el número de destinos para cada nodo de origen de la matriz de nodos de origen (matriz de enteros no negativos).

  • destinos[]
    Nodos de destino para los nodos de origen de la matriz de orígenes (matriz de enteros no negativos).

  • weights[]
    Ponderaciones para los bordes correspondientes de la matriz de destinos (matriz de enteros no negativos).

  • info [in]
    Sugerencias sobre optimización o interpretación de pesos (controlador). Actualmente, use MPI_INFO_NULL , ya que esta variable no se usa internamente.

  • Reordenar
    Las clasificaciones se pueden reordenar (true) o no (false) (lógica). Actualmente no se usa internamente.

  • comm_dist_graph [out]
    Controle al comunicador con la información de topología de grafos distribuida adjunta (identificador).

Valor devuelto

Devuelve MPI_SUCCESS si se realiza correctamente. De lo contrario, el valor devuelto es un código de error.

En Fortran, el valor devuelto se almacena en el parámetro 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

Comentarios

Las matrices de orígenes y destinos pueden contener el mismo nodo más de una vez y el orden en el que los nodos se enumeran como destinos o orígenes no son significativos. De forma similar, los distintos procesos pueden especificar bordes con los mismos nodos de origen y destino. Los nodos de origen y destino deben ser rangos de procesos de comm_old. Los distintos procesos pueden especificar diferentes números de nodos de origen y de destino, así como diferentes bordes de origen a destino. Esto permite una especificación totalmente distribuida del grafo de comunicación. Se permiten procesos aislados (procesos sin bordes salientes o entrantes, es decir, procesos que no se producen como nodo de origen o destino en la especificación del grafo).

El número de procesos de comm_dist_graph es idéntico al número de procesos de comm_old. La llamada a esta función es colectiva.

En C o FORTRAN, una aplicación puede proporcionar MPI_UNWEIGHTED para la matriz weights para indicar que todos los bordes tienen el mismo peso (eficazmente no). Es erróneo suministrar MPI_UNWEIGHTED para algunos pero no todos los procesos de comm_old. El comportamiento en tal caso no está garantizado. Si el gráfico se pondera, pero n = 0, MPI_WEIGHTS_EMPTY o cualquier matriz arbitraria se puede pasar a pesos.

Requisitos

Producto

Microsoft MPI v6

Encabezado

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

Archivo DLL

Msmpi.dll

Consulte también

Funciones de topología de proceso de MPI

MPI_Dist_graph_create_adjacent

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors