Compartilhar via


função MPI_Dist_graph_create_adjacent

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

  • indegree
    Tamanho das matrizes de fontes e pesos-fonte (inteiro não negativo).

  • sources[]
    Classificações de processos para os quais o processo de chamada é o destino (matriz de inteiros não negativos).

  • sourceweights[]
    Pesos das bordas correspondentes no processo de chamada (matriz de inteiros não negativos).

  • outdegree
    Tamanho dos destinos e matrizes de pesos (inteiro não negativo).

  • destinos[]
    Classificações de processos para os quais o processo de chamada é a origem (matriz de inteiros não negativos).

  • destweights[]
    Pesos das bordas correspondentes fora do processo de chamada (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_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

Comentários

Cada processo no comunicador comm_old passa todas as informações sobre suas bordas de entrada e saída na topologia de grafo distribuído virtual. Os processos de chamada devem garantir que cada borda do grafo seja descrita na origem e no processo de destino com o mesmo peso, se o grafo for ponderado. Se houver várias bordas para um determinado par de origem-destino, a sequência dos pesos dessas bordas não importa.

A topologia de comunicação completa é a combinação de todas as bordas mostradas na matriz de fontes de todos os processos em comm_old, que devem ser idênticas à combinação de todas as bordas mostradas na matriz de destinos . As classificações de origem e destino devem ser classificações de processo de comm_old. Isso permite uma especificação totalmente distribuída do grafo de comunicação. Processos isolados, ou seja, processos sem bordas de entrada ou saída na topologia distribuída e, portanto, têm entrada ou saída ou ambos, como zero, são permitidos.

O número de processos no comunicador recém-criado, comm_dist_graph, é idêntico ao número de processos em comm_old. A chamada para essa função é coletiva.

Os pesos são especificados como inteiros não negativos usando as matrizes de pesos-fonte e pesos-fonte , se o grafo for um grafo ponderado. Um aplicativo precisará especificar MPI_UNWEIGHTED para as matrizes de pesos-fonte e pesos-fonte 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 indegree ou outdegree for zero para um processo, MPI_WEIGHTS_EMPTY ou qualquer matriz arbitrária poderá ser passada para pesos-fonte ou pesos-fonte por esse processo.

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

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors