DASH
0.3.0
|
A set of basic communication routines in DART. More...
![]() |
Collective operations | |
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... | |
Non-blocking single-sided communication operations using handles | |
The handle can be used to wait for a specific operation to complete using | |
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... | |
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... | |
A set of basic communication routines in DART.
The semantics of the routines below are the same as with MPI. DART data types specified using dart_datatype_t are directly mapped to MPI data types.
dart_ret_t dart_accumulate | ( | dart_gptr_t | gptr, |
const void * | values, | ||
size_t | nelem, | ||
dart_datatype_t | dtype, | ||
dart_operation_t | op | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
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.
DART Equivalent to MPI_Accumulate.
gptr | A global pointer determining the target of the accumulate operation. |
values | The local buffer holding the elements to accumulate. |
nelem | The number of local elements to accumulate per unit. |
dtype | The data type to use in the accumulate operation op . |
op | The accumulation operation to perform. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
Referenced by dash::GlobAsyncRef< dash::Atomic< T > >::set().
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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
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.
DART Equivalent to MPI_Accumulate. In contrast to dart_accumulate, this function blocks until the local buffer can be reused.
gptr | A global pointer determining the target of the accumulate operation. |
values | The local buffer holding the elements to accumulate. |
nelem | The number of local elements to accumulate per unit. |
dtype | The data type to use in the accumulate operation op . |
op | The accumulation operation to perform. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
Referenced by dash::GlobAsyncRef< dash::Atomic< T > >::op(), and dash::GlobAsyncRef< dash::Atomic< T > >::set().
dart_ret_t dart_allgather | ( | const void * | sendbuf, |
void * | recvbuf, | ||
size_t | nelem, | ||
dart_datatype_t | dtype, | ||
dart_team_t | team | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI allgather.
sendbuf | The buffer containing the data to be sent by each unit. |
recvbuf | The buffer to hold the received data. |
nelem | Number of values sent by each process and received from each unit. |
dtype | The data type of values in sendbuf and recvbuf . |
team | The team to participate in the allgather. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
Referenced by dash::min_element().
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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI allgatherv.
sendbuf | The buffer containing the data to be sent by each unit. |
nsendelem | Number of values to be sent by this unit. |
dtype | The data type of values in sendbuf and recvbuf . |
recvbuf | The buffer to hold the received data. |
nrecvelem | Array containing the number of values to receive from each unit. |
recvdispls | Array containing the displacements of data received from each unit in recvbuf . |
teamid | The team to participate in the allgatherv. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI allreduce.
sendbuf | The buffer containing the data to be sent by each unit. |
recvbuf | The buffer to hold the received data. |
nelem | Number of elements sent by each process and received from each unit. |
dtype | The data type of values in sendbuf and recvbuf to use in op . |
op | The reduction operation to perform. |
team | The team to participate in the allreduce. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
Referenced by dash::equal(), and dash::find().
dart_ret_t dart_alltoall | ( | const void * | sendbuf, |
void * | recvbuf, | ||
size_t | nelem, | ||
dart_datatype_t | dtype, | ||
dart_team_t | team | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI alltoall.
sendbuf | The buffer containing the data to be sent by each unit. |
recvbuf | The buffer to hold the received data. |
nelem | Number of elements sent by each process and received from each unit. The value of this parameter must not execeed INT_MAX. |
dtype | The data type of values in sendbuf and recvbuf to use in op . |
team | The team to participate in the allreduce. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
dart_ret_t dart_barrier | ( | dart_team_t | team | ) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI_Barrier.
team | The team to perform a barrier on. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
Referenced by dash::GlobHeapMem< ElementType, LocalMemorySpace, AllocationPolicy, LocalAlloc >::barrier(), and dash::Team::is_member().
dart_ret_t dart_bcast | ( | void * | buf, |
size_t | nelem, | ||
dart_datatype_t | dtype, | ||
dart_team_unit_t | root, | ||
dart_team_t | team | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI broadcast.
buf | Buffer that is the source (on root ) or the destination of the broadcast. |
nelem | The number of values to broadcast/receive. |
dtype | The data type of values in buf . |
root | The unit that broadcasts data to all other members in team |
team | The team to participate in the broadcast. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
Referenced by dash::coarray::cobroadcast(), and dash::Shared< ElementType >::init().
dart_ret_t dart_compare_and_swap | ( | dart_gptr_t | gptr, |
const void * | value, | ||
const void * | compare, | ||
void * | result, | ||
dart_datatype_t | dtype | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Atomically replace the single value pointed to by gptr
with the the value in value
if it is equal to compare
.
If the replacement succeeded, the resulting value is stored in result
or the original value otherwise.
DART Equivalent to MPI_Compare_and_swap.
gptr | A global pointer determining the target of the compare-and-swap operation. |
value | Pointer to an element of type dtype to be swapped with the the value in gptr . |
compare | Pointer to the value to compare gptr with. The swap will be performed if * (gptr) == * (compare). |
result | Pointer to an element of type dtype to hold the value of the element referenced by gptr before the operation before the swap. |
dtype | Data data type of all involved data elements. Note that only integral types are supported. |
DART_OK
on success, any other of dart_ret_t otherwise.Referenced by dash::GlobAsyncRef< dash::Atomic< T > >::compare_exchange().
dart_ret_t dart_fetch_and_op | ( | dart_gptr_t | gptr, |
const void * | value, | ||
void * | result, | ||
dart_datatype_t | dtype, | ||
dart_operation_t | op | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
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
.
DART Equivalent to MPI_Fetch_and_op.
gptr | A global pointer determining the target of the fetch-and-op operation. |
value | Pointer to an element of type dtype to be involved in operation op on the value referenced by gptr . |
result | Pointer to an element of type dtype to hold the value of the element referenced by gptr before the operation op . |
dtype | The data type to use in the operation op . |
op | The operation to perform. |
DART_OK
on success, any other of dart_ret_t otherwise.Referenced by dash::GlobAsyncRef< dash::Atomic< T > >::fetch_op(), dash::GlobAsyncRef< dash::Atomic< T > >::get(), dash::GlobSharedRef< T, GlobalPointerType >::operator=(), and dash::GlobRef< T >::operator=().
dart_ret_t dart_flush | ( | dart_gptr_t | gptr | ) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Guarantee completion of all outstanding operations involving a segment on a certain unit.
Guarantees local and remote completion of all pending puts and gets on a certain memory allocation / window / segment for the target unit specified in gptr. Similar to MPI_Win_flush()
.
gptr | Global pointer identifying the segment and unit to complete outstanding operations for. |
DART_OK
on success, any other of dart_ret_t otherwise.Referenced by dash::fence(), dash::GlobLocalMemoryPool< dash::HostSpace >::flush(), dash::Shared< ElementType >::flush(), dash::GlobAsyncRef< T >::flush(), dash::GlobAsyncRef< dash::Atomic< T > >::flush(), dash::GlobLocalMemoryPool< dash::HostSpace >::flush_local(), dash::GlobSharedRef< T, GlobalPointerType >::operator=(), and dash::GlobRef< T >::operator=().
dart_ret_t dart_flush_all | ( | dart_gptr_t | gptr | ) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Guarantee completion of all outstanding operations involving a segment on all units.
Guarantees local and remote completion of all pending puts and gets on a certain memory allocation / window / segment for all target units. Similar to MPI_Win_flush_all()
.
gptr | Global pointer identifying the segment to complete outstanding operations for. |
DART_OK
on success, any other of dart_ret_t otherwise.Referenced by dash::GlobLocalMemoryPool< dash::HostSpace >::flush(), dash::GlobAsyncIter< ElementType, PatternType >::get(), and dash::GlobAsyncIter< ElementType, PatternType >::wait().
dart_ret_t dart_flush_local | ( | dart_gptr_t | gptr | ) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Guarantee local completion of all outstanding operations involving a segment on a certain unit.
Guarantees local completion of all pending puts and gets on a certain memory allocation / window / segment for the target unit specified in gptr. -> MPI_Win_flush_local()
gptr | Global pointer identifying the segment and unit to complete outstanding operations for. |
DART_OK
on success, any other of dart_ret_t otherwise.Referenced by dash::fence_local(), dash::GlobLocalMemoryPool< dash::HostSpace >::flush_local(), and dash::GlobAsyncRef< dash::Atomic< T > >::get().
dart_ret_t dart_flush_local_all | ( | dart_gptr_t | gptr | ) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Guarantee completion of all outstanding operations involving a segment on all units.
Guarantees local completion of all pending puts and gets on a certain memory allocation / window / segment for the all units. -> MPI_Win_flush_local_all()
gptr | Global pointer identifying the segment to complete outstanding operations for. |
DART_OK
on success, any other of dart_ret_t otherwise.Referenced by dash::GlobLocalMemoryPool< dash::HostSpace >::flush_local(), and dash::GlobAsyncIter< ElementType, PatternType >::push().
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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI gather.
sendbuf | The buffer containing the data to be sent by each unit. |
recvbuf | The buffer to hold the received data on unit root . |
nelem | Number of elements of type dtype sent by each process and received from each unit at unit root . |
dtype | The data type of values in sendbuf and recvbuf . |
root | The unit that gathers all data from units in team . |
team | The team to participate in the gather. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
dart_ret_t dart_get | ( | void * | dest, |
dart_gptr_t | gptr, | ||
size_t | nelem, | ||
dart_datatype_t | src_type, | ||
dart_datatype_t | dst_type | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
'REGULAR' variant of dart_get.
Copy data referenced by a global pointer into local memory. When this functions returns, neither local nor remote completion is guaranteed. A later flush operation is needed to guarantee local and remote completion.
dest | The local destination buffer to store the data to. |
gptr | A global pointer determining the source of the get operation. |
nelem | The number of elements of type dtype to transfer. |
src_type | The data type of the values at the source. |
dst_type | The data type of the values in buffer dest . |
DART_OK
on success, any other of dart_ret_t otherwise.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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
'BLOCKING' variant of dart_get.
Both local and remote completion is guaranteed.
dest | Local target memory to store the data. |
gptr | Global pointer being the source of the data transfer. |
nelem | The number of elements of type dtype to transfer. |
src_type | The data type of the values at the source. |
dst_type | The data type of the values in buffer dest . |
DART_OK
on success, any other of dart_ret_t otherwise.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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
'HANDLE' variant of dart_get.
Neither local nor remote completion is guaranteed. A later dart_wait*() call or a fence/flush operation is needed to guarantee completion.
dest | Local target memory to store the data. | |
gptr | Global pointer being the source of the data transfer. | |
nelem | The number of elements of dtype in buffer dest . | |
src_type | The data type of the values at the source. | |
dst_type | The data type of the values in buffer dest . | |
[out] | handle | Pointer to DART handle to instantiate for later use with dart_wait , dart_wait_all etc. |
DART_OK
on success, any other of dart_ret_t otherwise.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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
'REGULAR' variant of dart_put.
Copy data from local memory into memory referenced by a global pointer. When this functions returns, neither local nor remote completion is guaranteed. A later flush operation is needed to guarantee local and remote completion.
gptr | A global pointer determining the target of the put operation. |
src | The local source buffer to load the data from. |
nelem | The number of elements of type dtype to transfer. |
src_type | The data type of the values in buffer src . |
dst_type | The data type of the values at the target. |
DART_OK
on success, any other of dart_ret_t otherwise.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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
'BLOCKING' variant of dart_put.
Both local and remote completion is guaranteed.
gptr | Global pointer being the target of the data transfer. |
src | Local source memory to transfer data from. |
nelem | The number of elements of type dtype to transfer. |
src_type | The data type of the values in buffer src . |
dst_type | The data type of the values at the target. |
DART_OK
on success, any other of dart_ret_t otherwise.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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
'HANDLE' variant of dart_put.
Neither local nor remote completion is guaranteed. A later dart_wait*() call or a fence/flush operation is needed to guarantee completion.
gptr | Global pointer being the target of the data transfer. | |
src | Local source memory to transfer data from. | |
nelem | The number of elements of type dtype to transfer. | |
src_type | The data type of the values in buffer src . | |
dst_type | The data type of the values at the target. | |
[out] | handle | Pointer to DART handle to instantiate for later use with dart_wait , dart_wait_all etc. |
DART_OK
on success, any other of dart_ret_t otherwise.dart_ret_t dart_recv | ( | void * | recvbuf, |
size_t | nelem, | ||
dart_datatype_t | dtype, | ||
int | tag, | ||
dart_global_unit_t | unit | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI recv.
recvbuf | Buffer for the incoming data. |
nelem | Number of values received by the unit |
dtype | The data type of values in recvbuf . |
tag | Message tag for the distinction between different messages. |
unit | Unit sending the message. |
DART_OK
on success, any other of dart_ret_t otherwise.Referenced by dash::coarray::sync_images().
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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI_Reduce.
sendbuf | Buffer containing nelem elements to reduce using op . |
recvbuf | Buffer of size nelem to store the result of the element-wise operation op in. |
nelem | The number of elements of type dtype in sendbuf and recvbuf . |
dtype | The data type of values stored in sendbuf and recvbuf . |
op | The reduce operation to perform. |
root | The unit receiving the reduced values. |
team | The team to perform the reduction on. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI scatter.
sendbuf | The buffer containing the data to be sent by unit root . |
recvbuf | The buffer to hold the received data. |
nelem | Number of values sent to each process and received by each unit. |
dtype | The data type of values in sendbuf and recvbuf . |
root | The unit that scatters data to all units in team . |
team | The team to participate in the scatter. |
DART_OK
on success, any other of dart_ret_t otherwise.{team}
dart_ret_t dart_send | ( | const void * | sendbuf, |
size_t | nelem, | ||
dart_datatype_t | dtype, | ||
int | tag, | ||
dart_global_unit_t | unit | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI send.
sendbuf | Buffer containing the data to be sent by the unit. |
nelem | Number of values sent to the specified unit. |
dtype | The data type of values in sendbuf . |
tag | Message tag for the distinction between different messages. |
unit | Unit the message is sent to. |
DART_OK
on success, any other of dart_ret_t otherwise.Referenced by dash::coarray::sync_images().
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 | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
DART Equivalent to MPI sendrecv.
sendbuf | Buffer containing the data to be sent by the source unit. |
send_nelem | Number of values sentby the source unit. |
send_dtype | The data type of values in sendbuf . |
dest | Unitthe message is sent to. |
send_tag | Message tag for the distinction between different messages of the source unit. |
recvbuf | Buffer for the incoming data. |
recv_nelem | Number of values received by the destination unit. |
recv_dtype | The data type of values in recvbuf . |
src | Unit sending the message. |
recv_tag | Message tag for the distinction between different messages of the destination unit. |
DART_OK
on success, any other of dart_ret_t otherwise.dart_ret_t dart_test | ( | dart_handle_t * | handleptr, |
int32_t * | is_finished | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Test for the completion of an operation and ensure remote completion.
If the transfer completed, the handle is invalidated and may not be used in another dart_wait
or dart_test
operation.
handle | The handle of an operation to test for completion. | |
[out] | result | True if the operation has completed. |
DART_OK
on success, any other of dart_ret_t otherwise.dart_ret_t dart_test_local | ( | dart_handle_t * | handle, |
int32_t * | result | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Test for the local completion of an operation.
If the transfer completed, the handle is invalidated and may not be used in another dart_wait
or dart_test
operation.
handle | The handle of an operation to test for completion. | |
[out] | result | True if the operation has completed. |
DART_OK
on success, any other of dart_ret_t otherwise.dart_ret_t dart_testall | ( | dart_handle_t | handles[], |
size_t | n, | ||
int32_t * | is_finished | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Test for the completion of operations and ensure remote completion.
If the transfers completed, the handles are invalidated and may not be used in another dart_wait
or dart_test
operation.
handles | Array of handles of operations to test for completion. | |
n | Number of handles to test for completion. | |
[out] | result | True if all operations have completed. |
DART_OK
on success, any other of dart_ret_t otherwise.dart_ret_t dart_testall_local | ( | dart_handle_t | handles[], |
size_t | n, | ||
int32_t * | result | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Test for the local completion of operations.
If the transfers completed, the handles are invalidated and may not be used in another dart_wait
or dart_test
operation.
handles | Array of handles of operations to test for completion. | |
n | Number of handles to test for completion. | |
[out] | result | True if all operations have completed. |
DART_OK
on success, any other of dart_ret_t otherwise.dart_ret_t dart_wait | ( | dart_handle_t * | handle | ) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Wait for the local and remote completion of an operation.
handle | The handle of the operation to wait for. |
DART_OK
on success, any other of dart_ret_t otherwise.dart_ret_t dart_wait_local | ( | dart_handle_t * | handle | ) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Wait for the local completion of an operation.
Upon success, the handle is invalidated and may not be used in another dart_wait
or dart_test
operation.
handle | Handle of an operations to wait for. |
DART_OK
on success, any other of dart_ret_t otherwise.Referenced by dash::halo::HaloUpdateEnv< HaloBlock_t, SigReady >::update_at(), and dash::halo::HaloUpdateEnv< HaloBlock_t, SigReady >::wait().
dart_ret_t dart_waitall | ( | dart_handle_t | handles[], |
size_t | n | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Wait for the local and remote completion of operations.
Upon success, the handle is invalidated and may not be used in another dart_wait
or dart_test
operation.
handles | Array of handles of operations to wait for. |
n | Number of handles to wait for. |
DART_OK
on success, any other of dart_ret_t otherwise.dart_ret_t dart_waitall_local | ( | dart_handle_t | handles[], |
size_t | n | ||
) |
#include </tmp/tmporruphar/dart-if/include/dash/dart/if/dart_communication.h>
Wait for the local completion of operations.
Upon success, the handles are invalidated and may not be used in another dart_wait
or dart_test
operation.
handles | Array of handles of operations to wait for. |
n | Number of handles to wait for. |
DART_OK
on success, any other of dart_ret_t otherwise.