Compartir a través de


función MPI_Dist_graph_create_adjacent

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

Parámetros

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

  • indegree
    Tamaño de las matricesde orígenes y pesos de origen (entero no negativo).

  • sources[]
    Rangos de procesos para los que el proceso de llamada es el destino (matriz de enteros no negativos).

  • sourceweights[]
    Pesos de los bordes correspondientes en el proceso de llamada (matriz de enteros no negativos).

  • outdegree
    Tamaño de las matrices de destinos y destweights (entero no negativo).

  • destinos[]
    Rangos de procesos para los que el proceso de llamada es el origen (matriz de enteros no negativos).

  • destweights[]
    Pesos de los bordes correspondientes fuera del proceso de llamada (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_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

Comentarios

Cada proceso del comunicador comm_old pasa toda la información sobre sus bordes entrantes y salientes en la topología de grafo distribuido virtual. Los procesos de llamada deben asegurarse de que cada borde del grafo se describe en el origen y en el proceso de destino con el mismo peso, si se pondera el gráfico. Si hay varios bordes para un par de origen-destino determinado, la secuencia de los pesos de estos bordes no importa.

La topología de comunicación completa es la combinación de todos los bordes que se muestran en la matriz de orígenes de todos los procesos de comm_old, que deben ser idénticos a la combinación de todos los bordes que se muestran en la matriz de destinos . Las clasificaciones de origen y destino deben ser rangos de procesos de comm_old. Esto permite una especificación totalmente distribuida del grafo de comunicación. Los procesos aislados, es decir, los procesos sin bordes entrantes o salientes en la topología distribuida y, por tanto, tienen un valor indegree o outdegree o ambos, como cero, se permiten.

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

Los pesos se especifican como enteros no negativos mediante las matrices sourceweights y destweights , si el gráfico es un gráfico ponderado. Una aplicación deberá especificar MPI_UNWEIGHTED para las matrices de pesos de origen y destweights 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 el valor de indegree o outdegree es cero para un proceso, MPI_WEIGHTS_EMPTY o cualquier matriz arbitraria puede pasarse a pesos de origen o destweights por ese proceso.

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

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors