1 #ifndef DART__COMMUNICATION_H_ 2 #define DART__COMMUNICATION_H_ 5 #include <dash/dart/if/dart_util.h> 26 #define DART_INTERFACE_ON 112 const void * sendbuf,
135 const void * sendbuf,
160 const void * sendbuf,
164 const size_t * nrecvelem,
165 const size_t * recvdispls,
184 const void * sendbuf,
207 const void * sendbuf,
230 const void * sendbuf,
272 dart_operation_t op) DART_NOTHROW;
300 dart_operation_t op) DART_NOTHROW;
329 dart_operation_t op) DART_NOTHROW;
359 const void * compare,
514 #define DART_HANDLE_NULL (dart_handle_t)NULL 542 dart_handle_t * handle) DART_NOTHROW;
570 dart_handle_t * handle) DART_NOTHROW;
584 dart_handle_t * handle) DART_NOTHROW;
599 dart_handle_t handles[],
600 size_t n) DART_NOTHROW;
615 dart_handle_t * handle) DART_NOTHROW;
631 dart_handle_t handles[],
632 size_t n) DART_NOTHROW;
648 dart_handle_t * handle,
649 int32_t * result) DART_NOTHROW;
665 dart_handle_t * handleptr,
666 int32_t * is_finished);
683 dart_handle_t handles[],
685 int32_t * result) DART_NOTHROW;
702 dart_handle_t handles[],
704 int32_t * is_finished);
715 dart_handle_t * handle) DART_NOTHROW;
800 const void * sendbuf,
850 const void * sendbuf,
865 #define DART_INTERFACE_OFF dart_ret_t dart_send(const void *sendbuf, size_t nelem, dart_datatype_t dtype, int tag, dart_global_unit_t unit)
DART Equivalent to MPI send.
dart_ret_t dart_test(dart_handle_t *handleptr, int32_t *is_finished)
Test for the completion of an operation and ensure remote completion.
dart_ret_t dart_sendrecv(const void *sendbuf, size_t send_nelem, dart_datatype_t send_dtype, int send_tag, dart_global_unit_t dest, void *recvbuf, size_t recv_nelem, dart_datatype_t recv_dtype, int recv_tag, dart_global_unit_t src)
DART Equivalent to MPI sendrecv.
dart_ret_t dart_reduce(const void *sendbuf, void *recvbuf, size_t nelem, dart_datatype_t dtype, dart_operation_t op, dart_team_unit_t root, dart_team_t team)
DART Equivalent to MPI_Reduce.
dart_ret_t dart_accumulate_blocking_local(dart_gptr_t gptr, const void *values, size_t nelem, dart_datatype_t dtype, dart_operation_t op)
Perform an element-wise atomic update on the values pointed to by gptr by applying the operation op w...
dart_ret_t dart_put(dart_gptr_t gptr, const void *src, size_t nelem, dart_datatype_t src_type, dart_datatype_t dst_type)
'REGULAR' variant of dart_put.
dart_ret_t dart_put_blocking(dart_gptr_t gptr, const void *src, size_t nelem, dart_datatype_t src_type, dart_datatype_t dst_type)
'BLOCKING' variant of dart_put.
dart_ret_t dart_allgather(const void *sendbuf, void *recvbuf, size_t nelem, dart_datatype_t dtype, dart_team_t team)
DART Equivalent to MPI allgather.
intptr_t dart_datatype_t
Raw data types supported by the DART interface.
dart_ret_t dart_bcast(void *buf, size_t nelem, dart_datatype_t dtype, dart_team_unit_t root, dart_team_t team)
DART Equivalent to MPI broadcast.
dart_ret_t dart_scatter(const void *sendbuf, void *recvbuf, size_t nelem, dart_datatype_t dtype, dart_team_unit_t root, dart_team_t team)
DART Equivalent to MPI scatter.
dart_ret_t dart_flush_local(dart_gptr_t gptr)
Guarantee local completion of all outstanding operations involving a segment on a certain unit...
dart_ret_t dart_waitall_local(dart_handle_t handles[], size_t n)
Wait for the local completion of operations.
dart_ret_t dart_get_blocking(void *dest, dart_gptr_t gptr, size_t nelem, dart_datatype_t src_type, dart_datatype_t dst_type)
'BLOCKING' variant of dart_get.
dart_ret_t dart_accumulate(dart_gptr_t gptr, const void *values, size_t nelem, dart_datatype_t dtype, dart_operation_t op)
Perform an element-wise atomic update on the values pointed to by gptr by applying the operation op w...
dart_ret_t dart_wait(dart_handle_t *handle)
Wait for the local and remote completion of an operation.
dart_ret_t dart_flush_all(dart_gptr_t gptr)
Guarantee completion of all outstanding operations involving a segment on all units.
dart_ret_t dart_allreduce(const void *sendbuf, void *recvbuf, size_t nelem, dart_datatype_t dtype, dart_operation_t op, dart_team_t team)
DART Equivalent to MPI allreduce.
Data type for storing a unit ID relative to a team.
dart_ret_t dart_waitall(dart_handle_t handles[], size_t n)
Wait for the local and remote completion of operations.
dart_ret_t dart_get(void *dest, dart_gptr_t gptr, size_t nelem, dart_datatype_t src_type, dart_datatype_t dst_type)
'REGULAR' variant of dart_get.
dart_ret_t dart_compare_and_swap(dart_gptr_t gptr, const void *value, const void *compare, void *result, dart_datatype_t dtype)
Atomically replace the single value pointed to by gptr with the the value in value if it is equal to ...
dart_ret_t dart_handle_free(dart_handle_t *handle)
Free the handle without testing or waiting for completion of the operation.
DART Global pointer type.
dart_ret_t dart_barrier(dart_team_t team)
DART Equivalent to MPI_Barrier.
dart_ret_t
Return values of functions in the DART interface.
struct dart_handle_struct * dart_handle_t
Handle returned by dart_get_handle and the like used to wait for a specific operation to complete usi...
dart_ret_t dart_recv(void *recvbuf, size_t nelem, dart_datatype_t dtype, int tag, dart_global_unit_t unit)
DART Equivalent to MPI recv.
dart_ret_t dart_testall_local(dart_handle_t handles[], size_t n, int32_t *result)
Test for the local completion of operations.
int16_t dart_team_t
Data type for storing a team ID.
Data type for storing a global unit ID.
dart_ret_t dart_fetch_and_op(dart_gptr_t gptr, const void *value, void *result, dart_datatype_t dtype, dart_operation_t op)
Perform an element-wise atomic update on the value of type dtype pointed to by gptr by applying the o...
dart_ret_t dart_gather(const void *sendbuf, void *recvbuf, size_t nelem, dart_datatype_t dtype, dart_team_unit_t root, dart_team_t team)
DART Equivalent to MPI gather.
dart_ret_t dart_allgatherv(const void *sendbuf, size_t nsendelem, dart_datatype_t dtype, void *recvbuf, const size_t *nrecvelem, const size_t *recvdispls, dart_team_t teamid)
DART Equivalent to MPI allgatherv.
dart_ret_t dart_alltoall(const void *sendbuf, void *recvbuf, size_t nelem, dart_datatype_t dtype, dart_team_t team)
DART Equivalent to MPI alltoall.
dart_ret_t dart_wait_local(dart_handle_t *handle)
Wait for the local completion of an operation.
dart_ret_t dart_test_local(dart_handle_t *handle, int32_t *result)
Test for the local completion of an operation.
dart_ret_t dart_flush_local_all(dart_gptr_t gptr)
Guarantee completion of all outstanding operations involving a segment on all units.
dart_ret_t dart_testall(dart_handle_t handles[], size_t n, int32_t *is_finished)
Test for the completion of operations and ensure remote completion.
dart_ret_t dart_put_handle(dart_gptr_t gptr, const void *src, size_t nelem, dart_datatype_t src_type, dart_datatype_t dst_type, dart_handle_t *handle)
'HANDLE' variant of dart_put.
dart_ret_t dart_get_handle(void *dest, dart_gptr_t gptr, size_t nelem, dart_datatype_t src_type, dart_datatype_t dst_type, dart_handle_t *handle)
'HANDLE' variant of dart_get.
dart_ret_t dart_flush(dart_gptr_t gptr)
Guarantee completion of all outstanding operations involving a segment on a certain unit...