Compartir a través de


MPI_Compare_and_swap función

Realiza una operación de intercambio y comparación atómica remota.

Sintaxis

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 [in]
    dirección inicial del búfer

  • compare_addr [in]
    dirección inicial de comparebuffer

  • result_addr [out]
    dirección inicial del búfer de resultados

  • datatype
    tipo de datos de cada entrada en todos los búferes

  • target_rank
    rango de destino

  • target_disp
    desplazamiento desde el inicio de la ventana hasta el principio del búfer de destino

  • win
    window (objeto)

Valor devuelto

Devuelve MPI_SUCCESS si se realiza correctamente. De lo contrario, el valor devuelto es un código de error.

En Fortran, el valor devuelto se almacena en el 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

Comentarios

Esta función compara un elemento de tipo datatype en el búfer de comparación compare_addr con el búfer en el target_disp de desplazamiento en la ventana de destino especificada por target_rank y win y reemplaza el valor en el destino por el valor del búfer de origen origin_addr si el búfer de comparación y el búfer de destino son idénticos. El valor original del destino se devuelve en el result_addr del búfer. El tipo de datos de parámetro debe pertenecer a una de las siguientes categorías de tipos de datos predefinidos: entero de C, entero fortran, tipos lógicos, de varios lenguajes o byte. Los búferes de origen y resultado (origin_addr y result_addr) deben estar separados.

Requisitos

Producto

Paquete redistribuible DE HPC Pack 2012 MS-MPI, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package o HPC Pack 2008 Client Utilities

Encabezado

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

Archivo DLL

Msmpi.dll

Consulte también

Funciones de comunicaciones de MPI One-Sided