1ce5847e8b
This commit adds support for using network AMOs for MPI_Accumulate, MPI_Fetch_and_op, and MPI_Compare_and_swap. This support is only enabled if the ompi_single_intrinsic info key is specified or the acc_single_interinsic MCA variable is set. This configuration indicates to this implementation that no long accumulates will be performed since these do not currently mix with the AMO implementation. This commit also cleans up the code somwhat. This includes removing unnecessary struct keywords where the type is also typedef'd. Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
44 строки
2.3 KiB
C
44 строки
2.3 KiB
C
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
|
/*
|
|
* Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights
|
|
* reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#if !defined(OSC_RDMA_ACCUMULATE_H)
|
|
#define OSC_RDMA_ACCUMULATE_H
|
|
|
|
#include "osc_rdma.h"
|
|
|
|
int ompi_osc_rdma_compare_and_swap (const void *origin_addr, const void *compare_addr, void *result_addr,
|
|
ompi_datatype_t *dt, int target_rank, OPAL_PTRDIFF_TYPE target_disp,
|
|
ompi_win_t *win);
|
|
|
|
int ompi_osc_rdma_accumulate (const void *origin_addr, int origin_count, ompi_datatype_t *origin_datatype, int target_rank,
|
|
OPAL_PTRDIFF_TYPE target_disp, int target_count, ompi_datatype_t *target_datatype, ompi_op_t *op,
|
|
ompi_win_t *win);
|
|
|
|
int ompi_osc_rdma_fetch_and_op (const void *origin_addr, void *result_addr, ompi_datatype_t *dt, int target_rank,
|
|
OPAL_PTRDIFF_TYPE target_disp, ompi_op_t *op, ompi_win_t *win);
|
|
|
|
int ompi_osc_rdma_get_accumulate (const void *origin_addr, int origin_count, ompi_datatype_t *origin_datatype,
|
|
void *result_addr, int result_count, ompi_datatype_t *result_datatype,
|
|
int target_rank, MPI_Aint target_disp, int target_count, ompi_datatype_t *target_datatype,
|
|
ompi_op_t *op, ompi_win_t *win);
|
|
|
|
int ompi_osc_rdma_raccumulate (const void *origin_addr, int origin_count, ompi_datatype_t *origin_datatype, int target_rank,
|
|
OPAL_PTRDIFF_TYPE target_disp, int target_count, ompi_datatype_t *target_datatype, ompi_op_t *op,
|
|
ompi_win_t *win, ompi_request_t **request);
|
|
|
|
int ompi_osc_rdma_rget_accumulate (const void *origin_addr, int origin_count, ompi_datatype_t *origin_datatype,
|
|
void *result_addr, int result_count, ompi_datatype_t *result_datatype,
|
|
int target_rank, MPI_Aint target_disp, int target_count, ompi_datatype_t *target_datatype,
|
|
ompi_op_t *op, ompi_win_t *win, ompi_request_t **request);
|
|
|
|
|
|
#endif /* OSC_RDMA_ACCUMULATE_H */
|