Compartilhar via


Função MPI_Dist_graph_create

Retorna um identificador para um novo comunicador ao qual as informações de topologia do grafo distribuído estão anexadas.

Sintaxe

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]
    O identificador do comunicador sem as informações de topologia (identificador).

  • n
    Número de fontes para as quais esse processo especifica bordas de saída (inteiro não negativo).

  • sources[]
    Matriz que contém as n fontes para as quais essa fonte especifica as bordas de saída (matriz de inteiros não negativos).

  • degrees[]
    Matriz especificando o número de destinos para cada nó de origem na matriz de nós de origem (matriz de inteiros não negativos).

  • destinos[]
    Nós de destino para os nós de origem na matriz de fontes (matriz de inteiros não negativos).

  • pesos[]
    Pesos para bordas correspondentes na matriz de destinos (matriz de inteiros não negativos).

  • informações [in]
    Dicas sobre otimização ou interpretação de pesos (identificador). Atualmente, use MPI_INFO_NULL , pois essa variável não está sendo usada internamente.

  • Reordenar
    As classificações podem ser reordenadas (true) ou não (false) (lógica). Atualmente, isso não é usado internamente.

  • comm_dist_graph [out]
    Manipule para o comunicador com as informações de topologia do grafo distribuído anexadas (identificador).

Retornar valor

Retorna MPI_SUCCESS com êxito. Caso contrário, o valor retornado será um código de erro.

No Fortran, o valor retornado é armazenado no 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

Comentários

As matrizes de fontes e destinos podem conter o mesmo nó mais de uma vez e a ordem na qual os nós são listados como destinos ou fontes não é significativa. Da mesma forma, processos diferentes podem especificar bordas com os mesmos nós de origem e de destino. Os nós de origem e de destino devem ser classificações de processo de comm_old. Processos diferentes podem especificar diferentes números de nós de origem e de destino, bem como diferentes bordas de origem para destino. Isso permite uma especificação totalmente distribuída do grafo de comunicação. Processos isolados (processos sem bordas de saída ou de entrada, ou seja, processos que não ocorrem como nó de origem ou destino na especificação do grafo) são permitidos.

O número de processos em comm_dist_graph é idêntico ao número de processos em comm_old. A chamada para essa função é coletiva.

Em C ou FORTRAN, um aplicativo pode fornecer MPI_UNWEIGHTED para a matriz de pesos para indicar que todas as bordas têm o mesmo peso (efetivamente não). É errado fornecer MPI_UNWEIGHTED para alguns, mas não todos os processos de comm_old. O comportamento nesse caso não é garantido. Se o grafo for ponderado, mas n = 0, então, MPI_WEIGHTS_EMPTY ou qualquer matriz arbitrária poderá ser passada para pesos.

Requisitos

Produto

Microsoft MPI v6

parâmetro

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Confira também

Funções de topologia de processo MPI

MPI_Dist_graph_create_adjacent

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors