DASH
0.3.0
|
#include <dash/dart/if/dart_types.h>
#include <dash/dart/if/dart_util.h>
#include <dash/dart/if/dart_globmem.h>
Go to the source code of this file.
Functions | |
Collective operations | |
Collective operations involving all units of a given team. | |
dart_ret_t | dart_barrier (dart_team_t team) |
DART Equivalent to MPI_Barrier. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Atomic operations | |
Operations performing element-wise atomic updates on a given global pointer. | |
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 with the corresponding value in value on them. More... | |
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 with the corresponding value in value on them. More... | |
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 operation op with value on it and return the value beforethe update in result . More... | |
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 compare . More... | |
Non-blocking single-sided communication routines | |
DART single-sided communication routines that return without guaranteeing completion. Completion will be guaranteed after a flush operation. | |
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. More... | |
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. More... | |
dart_ret_t | dart_flush (dart_gptr_t gptr) |
Guarantee completion of all outstanding operations involving a segment on a certain unit. More... | |
dart_ret_t | dart_flush_all (dart_gptr_t gptr) |
Guarantee completion of all outstanding operations involving a segment on all units. More... | |
dart_ret_t | dart_flush_local (dart_gptr_t gptr) |
Guarantee local completion of all outstanding operations involving a segment on a certain unit. More... | |
dart_ret_t | dart_flush_local_all (dart_gptr_t gptr) |
Guarantee completion of all outstanding operations involving a segment on all units. More... | |
Blocking single-sided communication operations | |
These operations will block until completion of put and get is guaranteed. | |
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. More... | |
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. More... | |
Blocking two-sided communication operations | |
These operations will block until the operation is finished, i.e., the message has been successfully received. | |
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. More... | |
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. More... | |
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. More... | |
Non-blocking single-sided communication operations using handles | |
The handle can be used to wait for a specific operation to complete using | |
#define | DART_HANDLE_NULL (dart_handle_t)NULL |
Handle returned by dart_get_handle and the like used to wait for a specific operation to complete using dart_wait etc. More... | |
typedef 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 using dart_wait etc. More... | |
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. More... | |
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. More... | |
dart_ret_t | dart_wait (dart_handle_t *handle) |
Wait for the local and remote completion of an operation. More... | |
dart_ret_t | dart_waitall (dart_handle_t handles[], size_t n) |
Wait for the local and remote completion of operations. More... | |
dart_ret_t | dart_wait_local (dart_handle_t *handle) |
Wait for the local completion of an operation. More... | |
dart_ret_t | dart_waitall_local (dart_handle_t handles[], size_t n) |
Wait for the local completion of operations. More... | |
dart_ret_t | dart_test_local (dart_handle_t *handle, int32_t *result) |
Test for the local completion of an operation. More... | |
dart_ret_t | dart_test (dart_handle_t *handleptr, int32_t *is_finished) |
Test for the completion of an operation and ensure remote completion. More... | |
dart_ret_t | dart_testall_local (dart_handle_t handles[], size_t n, int32_t *result) |
Test for the local completion of operations. More... | |
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. More... | |
dart_ret_t | dart_handle_free (dart_handle_t *handle) |
Free the handle without testing or waiting for completion of the operation. More... | |
#define DART_HANDLE_NULL (dart_handle_t)NULL |
Handle returned by dart_get_handle
and the like used to wait for a specific operation to complete using dart_wait
etc.
Definition at line 514 of file dart_communication.h.
Referenced by dash::halo::HaloUpdateEnv< HaloBlock_t, SigReady >::block_env().
typedef 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 using dart_wait
etc.
Definition at line 512 of file dart_communication.h.
dart_ret_t dart_handle_free | ( | dart_handle_t * | handle | ) |
Free the handle without testing or waiting for completion of the operation.
handle | Pointer to the handle to free. |
DART_OK
on success, any other of dart_ret_t otherwise.