DASH  0.3.0
dart_communication.h
Go to the documentation of this file.
1 #ifndef DART__COMMUNICATION_H_
2 #define DART__COMMUNICATION_H_
3 
5 #include <dash/dart/if/dart_util.h>
7 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
26 #define DART_INTERFACE_ON
27 
47  dart_team_t team) DART_NOTHROW;
48 
65  void * buf,
66  size_t nelem,
67  dart_datatype_t dtype,
68  dart_team_unit_t root,
69  dart_team_t team) DART_NOTHROW;
70 
88  const void * sendbuf,
89  void * recvbuf,
90  size_t nelem,
91  dart_datatype_t dtype,
92  dart_team_unit_t root,
93  dart_team_t team) DART_NOTHROW;
94 
112  const void * sendbuf,
113  void * recvbuf,
114  size_t nelem,
115  dart_datatype_t dtype,
116  dart_team_unit_t root,
117  dart_team_t team) DART_NOTHROW;
118 
135  const void * sendbuf,
136  void * recvbuf,
137  size_t nelem,
138  dart_datatype_t dtype,
139  dart_team_t team) DART_NOTHROW;
140 
160  const void * sendbuf,
161  size_t nsendelem,
162  dart_datatype_t dtype,
163  void * recvbuf,
164  const size_t * nrecvelem,
165  const size_t * recvdispls,
166  dart_team_t teamid) DART_NOTHROW;
167 
184  const void * sendbuf,
185  void * recvbuf,
186  size_t nelem,
187  dart_datatype_t dtype,
188  dart_operation_t op,
189  dart_team_t team) DART_NOTHROW;
190 
207  const void * sendbuf,
208  void * recvbuf,
209  size_t nelem,
210  dart_datatype_t dtype,
211  dart_team_t team) DART_NOTHROW;
212 
230  const void * sendbuf,
231  void * recvbuf,
232  size_t nelem,
233  dart_datatype_t dtype,
234  dart_operation_t op,
235  dart_team_unit_t root,
236  dart_team_t team) DART_NOTHROW;
237 
268  dart_gptr_t gptr,
269  const void * values,
270  size_t nelem,
271  dart_datatype_t dtype,
272  dart_operation_t op) DART_NOTHROW;
273 
274 
296  dart_gptr_t gptr,
297  const void * values,
298  size_t nelem,
299  dart_datatype_t dtype,
300  dart_operation_t op) DART_NOTHROW;
301 
325  dart_gptr_t gptr,
326  const void * value,
327  void * result,
328  dart_datatype_t dtype,
329  dart_operation_t op) DART_NOTHROW;
330 
331 
357  dart_gptr_t gptr,
358  const void * value,
359  const void * compare,
360  void * result,
361  dart_datatype_t dtype) DART_NOTHROW;
362 
363 
396  void * dest,
397  dart_gptr_t gptr,
398  size_t nelem,
399  dart_datatype_t src_type,
400  dart_datatype_t dst_type) DART_NOTHROW;
401 
423  dart_gptr_t gptr,
424  const void * src,
425  size_t nelem,
426  dart_datatype_t src_type,
427  dart_datatype_t dst_type) DART_NOTHROW;
428 
429 
445  dart_gptr_t gptr) DART_NOTHROW;
446 
462  dart_gptr_t gptr) DART_NOTHROW;
463 
479  dart_gptr_t gptr) DART_NOTHROW;
480 
496  dart_gptr_t gptr) DART_NOTHROW;
497 
498 
512 typedef struct dart_handle_struct * dart_handle_t;
513 
514 #define DART_HANDLE_NULL (dart_handle_t)NULL
515 
537  void * dest,
538  dart_gptr_t gptr,
539  size_t nelem,
540  dart_datatype_t src_type,
541  dart_datatype_t dst_type,
542  dart_handle_t * handle) DART_NOTHROW;
543 
565  dart_gptr_t gptr,
566  const void * src,
567  size_t nelem,
568  dart_datatype_t src_type,
569  dart_datatype_t dst_type,
570  dart_handle_t * handle) DART_NOTHROW;
571 
584  dart_handle_t * handle) DART_NOTHROW;
599  dart_handle_t handles[],
600  size_t n) DART_NOTHROW;
601 
615  dart_handle_t * handle) DART_NOTHROW;
616 
631  dart_handle_t handles[],
632  size_t n) DART_NOTHROW;
633 
648  dart_handle_t * handle,
649  int32_t * result) DART_NOTHROW;
650 
665  dart_handle_t * handleptr,
666  int32_t * is_finished);
667 
683  dart_handle_t handles[],
684  size_t n,
685  int32_t * result) DART_NOTHROW;
686 
702  dart_handle_t handles[],
703  size_t n,
704  int32_t * is_finished);
705 
715  dart_handle_t * handle) DART_NOTHROW;
716 
744  void * dest,
745  dart_gptr_t gptr,
746  size_t nelem,
747  dart_datatype_t src_type,
748  dart_datatype_t dst_type) DART_NOTHROW;
749 
768  dart_gptr_t gptr,
769  const void * src,
770  size_t nelem,
771  dart_datatype_t src_type,
772  dart_datatype_t dst_type) DART_NOTHROW;
773 
800  const void * sendbuf,
801  size_t nelem,
802  dart_datatype_t dtype,
803  int tag,
804  dart_global_unit_t unit) DART_NOTHROW;
805 
821  void * recvbuf,
822  size_t nelem,
823  dart_datatype_t dtype,
824  int tag,
825  dart_global_unit_t unit) DART_NOTHROW;
826 
850  const void * sendbuf,
851  size_t send_nelem,
852  dart_datatype_t send_dtype,
853  int send_tag,
854  dart_global_unit_t dest,
855  void * recvbuf,
856  size_t recv_nelem,
857  dart_datatype_t recv_dtype,
858  int recv_tag,
859  dart_global_unit_t src) DART_NOTHROW;
860 
861 
865 #define DART_INTERFACE_OFF
866 
868 #ifdef __cplusplus
869 }
870 #endif
871 
872 #endif /* DART__COMMUNICATION_H_ */
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)
&#39;REGULAR&#39; 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)
&#39;BLOCKING&#39; 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.
Definition: dart_types.h:121
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)
&#39;BLOCKING&#39; 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.
Definition: dart_types.h:180
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)
&#39;REGULAR&#39; 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.
Definition: dart_globmem.h:77
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.
Definition: dart_types.h:30
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.
Definition: dart_types.h:252
Data type for storing a global unit ID.
Definition: dart_types.h:166
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)
&#39;HANDLE&#39; 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)
&#39;HANDLE&#39; 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...