Partilhar via


função MPI_Dist_graph_create_adjacent

Devolve uma alça a um novo comunicador ao qual as informações de topologia de grafos distribuídos 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 [em]
    A alça do comunicador sem as informações de topologia (alça).

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

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

  • pesos-fonte[]
    Pesos das arestas correspondentes no processo de chamada (matriz de números inteiros não negativos).

  • outdegree
    Tamanho das matrizes de destinos e de pesos-pesados (número inteiro não negativo).

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

  • destweights[]
    Pesos das arestas correspondentes fora do processo de chamada (matriz de números inteiros não negativos).

  • informações [em]
    Sugestões sobre otimização ou interpretação de pesos (identificador). Atualmente, utilize MPI_INFO_NULL uma vez que esta variável não está a ser utilizada internamente.

  • reordenar
    As classificações podem ser reordenadas (verdadeiro) ou não (falso) (lógico). Atualmente, isto não é utilizado internamente.

  • comm_dist_graph [fora]
    Processe o comunicador com as informações de topologia de grafos distribuídas anexadas (alça).

Valor devolvido

Devolve MPI_SUCCESS com êxito. Caso contrário, o valor devolvido é um código de erro.

Em Fortran, o valor devolvido é 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

Observações

Cada processo no comm_old comunicador transmite todas as informações sobre as margens de entrada e saída na topologia de grafo distribuído virtual. Os processos de chamada têm de garantir que cada extremidade do gráfico é descrita na origem e no processo de destino com o mesmo peso, se o gráfico for ponderado. Se existirem múltiplas arestas para um determinado par de destino de origem, a sequência dos pesos destas arestas não importa.

A topologia de comunicação completa é a combinação de todas as arestas mostradas na matriz de origens de todos os processos no comm_old, que tem de ser idêntica à combinação de todas as arestas mostradas na matriz de destinos . As classificações de origem e destino têm de ser classificações de processos de comm_old. Isto permite uma especificação totalmente distribuída do gráfico de comunicação. Os processos isolados, ou seja, os processos sem arestas de entrada ou saída na topologia distribuída e, portanto, têm indegree ou outdegree 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 no comm_old. A chamada para esta função é coletiva.

Os pesos são especificados como números inteiros não negativos com as matrizes de pesos-fonte e pesos-pesados , se o gráfico for um gráfico ponderado. Uma aplicação terá de especificar MPI_UNWEIGHTED para as matrizes de pesos-fonte e de pesos-pesados para indicar que todas as arestas 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 neste 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 pode ser transmitida para pesos-fonte ou pesos-pesados por esse processo.

Requisitos

Produto

Microsoft MPI v6

Cabeçalho

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Ver também

Funções de Topologia do Processo de MPI

MPI_Dist_graph_create

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors