/** * \brief ARMCI Extension blocking vector get operation. * * \param[in] darr Descriptor array * \param[in] len Length of descriptor array * \param[in] proc Remote process(or) ID * * \return ??? */ int ARMCIX_GetV (armci_giov_t * darr, int len, int proc) { armci_ireq_t nb_request; armci_ihdl_t nb_handle = (armci_ihdl_t) &nb_request; ARMCIX_NbGetV (darr, len, proc, nb_handle); ARMCIX_Wait (&nb_handle->cmpl_info); return 0; }
/** * \brief ARMCI Extension blocking strided get operation. * * \param[in] src_ptr pointer to 1st segment at source * \param[in] src_stride_arr array of strides at source * \param[in] dst_ptr pointer to 1st segment at destination * \param[in] dst_stride_arr array of strides at destination * \param[in] seg_count number of segments at each stride levels: count[0]=bytes * \param[in] stride_levels number of stride levels * \param[in] proc remote process(or) ID * * \return ??? */ int ARMCIX_GetS (void * src_ptr, int * src_stride_arr, void * dst_ptr, int * dst_stride_arr, int * seg_count, int stride_levels, int proc) { armci_ireq_t nb_request; armci_ihdl_t nb_handle = (armci_ihdl_t) &nb_request; ARMCIX_NbGetS (src_ptr, src_stride_arr, dst_ptr, dst_stride_arr, seg_count, stride_levels, proc, nb_handle); ARMCIX_Wait (&nb_handle->cmpl_info); return 0; }
/** * \brief ARMCI Extension blocking vector put operation. * * \param[in] darr Descriptor array * \param[in] len Length of descriptor array * \param[in] proc Remote process(or) ID * * \return ??? */ int ARMCIX_PutV (armci_giov_t * darr, int len, int proc) { armci_ireq_t nb_request; armci_ihdl_t nb_handle = (armci_ihdl_t) &nb_request; ARMCIX_NbPutV (darr, len, proc, nb_handle); #ifdef BLOCKING_OPERATIONS_REQUIRE_FENCE ARMCIX_Fence (proc); #else ARMCIX_Wait (&nb_handle->cmpl_info); #endif return 0; }
/** * \brief ARMCI Extension blocking strided put operation. * * \param[in] src_ptr pointer to 1st segment at source * \param[in] src_stride_arr array of strides at source * \param[in] dst_ptr pointer to 1st segment at destination * \param[in] dst_stride_arr array of strides at destination * \param[in] seg_count number of segments at each stride levels: count[0]=bytes * \param[in] stride_levels number of stride levels * \param[in] proc remote process(or) ID * * \return ??? */ int ARMCIX_PutS (void * src_ptr, int * src_stride_arr, void * dst_ptr, int * dst_stride_arr, int * seg_count, int stride_levels, int proc) { armci_ireq_t nb_request; armci_ihdl_t nb_handle = (armci_ihdl_t) &nb_request; ARMCIX_NbPutS (src_ptr, src_stride_arr, dst_ptr, dst_stride_arr, seg_count, stride_levels, proc, nb_handle); #ifdef BLOCKING_OPERATIONS_REQUIRE_FENCE ARMCIX_Fence (proc); #else ARMCIX_Wait (&nb_handle->cmpl_info); #endif return 0; }