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