Partilhar via


função MPI_Compare_and_swap

Executa uma operação remota de comparação e troca atómica.

Sintaxe

int MPIAPI MPI_Compare_and_swap(
  _In_  void         *origin_addr,
  _In_  void         *compare_addr,
  _Out_ void         *result_addr,
        MPI_Datatype datatype,
        int          target_rank,
        MPI_Aint     target_disp,
        MPI_Win      win
);

Parâmetros

  • origin_addr [em]
    endereço inicial da memória intermédia

  • compare_addr [em]
    endereço inicial de comparebuffer

  • result_addr [fora]
    endereço inicial da memória intermédia de resultados

  • tipo de dados
    tipo de dados de cada entrada em todas as memórias intermédias

  • target_rank
    classificação do destino

  • target_disp
    deslocamento do início da janela para o início da memória intermédia de destino

  • ganhar
    objeto de janela

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_COMPARE_AND_SWAP(ORIGIN_ADDR, COMPARE_ADDR, RESULT_ADDR,
                DATATYPE, TARGET_RANK, TARGET_DISP, WIN, IERROR)
        <type> ORIGIN_ADDR(*), COMPARE_ADDR(*), RESULT_ADDR(*)
        INTEGER(KIND=MPI_ADDRESS_KIND) TARGET_DISP
        INTEGER DATATYPE, TARGET_RANK, WIN, IERROR

Observações

Esta função compara um elemento do tipo datatype na memória intermédia de comparação compare_addr com a memória intermédia na target_disp de deslocamento na janela de destino especificada por target_rank e ganha e substitui o valor no destino pelo valor na memória intermédia de origem origin_addr se a memória intermédia de comparação e a memória intermédia de destino forem idênticas. O valor original no destino é devolvido na memória intermédia result_addr. O tipo de dados do parâmetro tem de pertencer a uma das seguintes categorias de tipos de dados predefinidos: número inteiro C, número inteiro de Fortran, Lógica, Tipos de várias linguagens ou Byte. As memórias intermédias de origem e de resultados (origin_addr e result_addr) têm de ser desarticuladas.

Requisitos

Produto

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package ou HPC Pack 2008 Client Utilities

Cabeçalho

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Ver também

Funções de Comunicações One-Sided MPI