UCX  1.14
Unified Communication X
ucp.h
1 /*
2 * Copyright (c) NVIDIA CORPORATION & AFFILIATES, 2001-2020. ALL RIGHTS RESERVED.
3 * Copyright (C) UT-Battelle, LLC. 2014-2017. ALL RIGHTS RESERVED.
4 * Copyright (C) ARM Ltd. 2016-2017. ALL RIGHTS RESERVED.
5 * Copyright (C) Los Alamos National Security, LLC. 2018 ALL RIGHTS RESERVED.
6 * See file LICENSE for terms.
7 */
8 
9 #ifndef UCP_H_
10 #define UCP_H_
11 
12 #include <ucp/api/ucp_def.h>
13 #include <ucp/api/ucp_compat.h>
14 #include <ucp/api/ucp_version.h>
15 #include <ucs/type/thread_mode.h>
16 #include <ucs/type/cpu_set.h>
17 #include <ucs/config/types.h>
18 #include <ucs/sys/compiler_def.h>
19 #include <ucs/memory/memory_type.h>
20 #include <stdio.h>
21 #include <sys/types.h>
22 
23 BEGIN_C_DECLS
24 
128  UCP_PARAM_FIELD_NAME = UCS_BIT(8)
129 };
130 
131 
142  UCP_FEATURE_TAG = UCS_BIT(0),
143 
145  UCP_FEATURE_RMA = UCS_BIT(1),
146 
148  UCP_FEATURE_AMO32 = UCS_BIT(2),
149 
151  UCP_FEATURE_AMO64 = UCS_BIT(3),
152 
154  UCP_FEATURE_WAKEUP = UCS_BIT(4),
155 
157  UCP_FEATURE_STREAM = UCS_BIT(5),
158 
160  UCP_FEATURE_AM = UCS_BIT(6),
161 
168 };
169 
170 
190 };
191 
192 
200 typedef enum {
204 
205 
218 
223 
227 };
228 
229 
238 typedef enum {
239 
245 
246 
266  UCP_EP_PARAM_FIELD_NAME = UCS_BIT(7),
268 };
269 
270 
304 };
305 
306 
313 typedef enum {
336 
337 
361 };
362 
363 
376 
377 
390 
391 
404 
410 
413 
416 
419 
422 };
423 
435 };
436 
437 
448 };
449 
450 
462  UCP_ATTR_FIELD_NAME = UCS_BIT(3)
463 };
464 
465 
482 };
483 
484 
495 };
496 
497 
507 };
508 
509 
520 };
521 
522 
539 };
540 
541 
552 
555 
558 };
559 
560 
568 enum {
574  UCP_MEM_MAP_NONBLOCK = UCS_BIT(0),
575 
581  UCP_MEM_MAP_ALLOCATE = UCS_BIT(1),
582 
587  UCP_MEM_MAP_FIXED = UCS_BIT(2)
588 };
589 
590 
598 enum {
603 };
604 
605 
616  UCP_AM_FLAG_WHOLE_MSG = UCS_BIT(0),
617 
625 };
626 
627 
640 
645 
649  UCP_AM_SEND_FLAG_RNDV = UCS_BIT(2),
650 
658 
663 };
664 
665 
678 };
679 
680 
688 typedef enum {
697 
698 
705 typedef enum {
713 
714 
723 typedef enum {
728  UCP_OP_ATTR_FIELD_FLAGS = UCS_BIT(4),
732  UCP_OP_ATTR_FIELD_MEMH = UCS_BIT(8),
753 } ucp_op_attr_t;
754 
755 
763 typedef enum {
769 
770 
779 typedef enum {
790 
800 
801 
826 };
827 
828 
843 #define ucp_dt_make_contig(_elem_size) \
844  (((ucp_datatype_t)(_elem_size) << UCP_DATATYPE_SHIFT) | UCP_DATATYPE_CONTIG)
845 
846 
860 #define ucp_dt_make_iov() ((ucp_datatype_t)UCP_DATATYPE_IOV)
861 
862 
874 typedef struct ucp_dt_iov {
875  void *buffer;
876  size_t length;
877 } ucp_dt_iov_t;
878 
879 
893 typedef struct ucp_generic_dt_ops {
894 
909  void* (*start_pack)(void *context, const void *buffer, size_t count);
910 
925  void* (*start_unpack)(void *context, void *buffer, size_t count);
926 
940  size_t (*packed_size)(void *state);
941 
958  size_t (*pack) (void *state, size_t offset, void *dest, size_t max_length);
959 
975  ucs_status_t (*unpack)(void *state, size_t offset, const void *src, size_t length);
976 
991  void (*finish)(void *state);
993 
994 
1001 typedef struct ucp_datatype_attr {
1007  uint64_t field_mask;
1008 
1012  size_t packed_size;
1013 
1020  const void *buffer;
1021 
1028  size_t count;
1030 
1031 
1045 typedef struct ucp_params {
1051  uint64_t field_mask;
1052 
1059  uint64_t features;
1060 
1070 
1082 
1093 
1100 
1116 
1127 
1137 
1146  const char *name;
1147 } ucp_params_t;
1148 
1149 
1156 typedef struct ucp_lib_attr {
1163  uint64_t field_mask;
1164 
1173 } ucp_lib_attr_t;
1174 
1175 
1183 typedef struct ucp_context_attr {
1190  uint64_t field_mask;
1191 
1198 
1204 
1209  uint64_t memory_types;
1210 
1216 
1217 
1225 typedef struct ucp_worker_attr {
1232  uint64_t field_mask;
1233 
1238 
1245  uint32_t address_flags;
1246 
1255 
1260 
1265 
1270 
1276 
1277 
1285 typedef struct ucp_worker_params {
1291  uint64_t field_mask;
1292 
1306 
1314  ucs_cpu_set_t cpu_mask;
1315 
1323  unsigned events;
1324 
1331  void *user_data;
1332 
1349 
1356  uint64_t flags;
1357 
1366  const char *name;
1367 
1374 
1381  uint64_t client_id;
1383 
1384 
1391 typedef struct ucp_worker_address_attr {
1398  uint64_t field_mask;
1399 
1403  uint64_t worker_uid;
1405 
1406 
1414 typedef struct {
1421  uint64_t field_mask;
1422 
1429 
1430 
1438 typedef struct {
1445  uint64_t field_mask;
1446 
1454 
1462 typedef struct ucp_listener_attr {
1469  uint64_t field_mask;
1470 
1475  struct sockaddr_storage sockaddr;
1477 
1478 
1486 typedef struct ucp_conn_request_attr {
1493  uint64_t field_mask;
1494 
1499  struct sockaddr_storage client_address;
1500 
1505  uint64_t client_id;
1507 
1508 
1516 typedef struct ucp_listener_params {
1523  uint64_t field_mask;
1524 
1533 
1541 
1555 
1556 
1563 typedef struct ucp_stream_poll_ep {
1568 
1573  void *user_data;
1574 
1578  unsigned flags;
1579 
1583  uint8_t reserved[16];
1585 
1586 
1594 typedef struct ucp_mem_map_params {
1601  uint64_t field_mask;
1602 
1613  void *address;
1614 
1622  size_t length;
1623 
1631  unsigned flags;
1632 
1640  unsigned prot;
1641 
1642  /*
1643  * Memory type (for possible memory types see @ref ucs_memory_type_t)
1644  * It is an optimization hint to avoid memory type detection for map buffer.
1645  * The meaning of this field depends on the operation type.
1646  *
1647  * - Memory allocation: (@ref UCP_MEM_MAP_ALLOCATE flag is set) This field
1648  * specifies the type of memory to allocate. If it's not set (along with its
1649  * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
1650  * @ref UCS_MEMORY_TYPE_HOST will be assumed by default.
1651  *
1652  * - Memory registration: This field specifies the type of memory which is
1653  * pointed by @ref ucp_mem_map_params.address. If it's not set (along with its
1654  * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
1655  * or set to @ref UCS_MEMORY_TYPE_UNKNOWN, the memory type will be detected
1656  * internally.
1657  */
1659 
1674 
1675 
1689  size_t length;
1690 };
1691 
1692 
1733 typedef struct {
1739  uint32_t op_attr_mask;
1740 
1741  /* Operation specific flags. */
1742  uint32_t flags;
1743 
1750  void *request;
1751 
1756  union {
1759  ucp_stream_recv_nbx_callback_t recv_stream;
1761  } cb;
1762 
1769 
1773  void *user_data;
1774 
1780 
1789 
1796  union {
1797  size_t *length; /* Length of received message in bytes.
1798  Relevant for non-tagged receive
1799  operations. */
1800  ucp_tag_recv_info_t *tag_info; /* Information about received message.
1801  Relevant for @a ucp_tag_recv_nbx
1802  function. */
1803  } recv_info;
1804 
1813 
1815 
1816 
1821 typedef struct {
1827  uint64_t field_mask;
1828 
1835 
1842 
1847 
1853 
1854 
1860 typedef struct ucp_am_handler_param {
1866  uint64_t field_mask;
1867 
1871  unsigned id;
1872 
1876  uint32_t flags;
1877 
1883 
1888  void *arg;
1890 
1891 
1902  uint64_t recv_attr;
1903 
1908 };
1909 
1910 
1922 
1923 
1950 ucs_status_t ucp_config_read(const char *env_prefix, const char *filename,
1951  ucp_config_t **config_p);
1952 
1953 
1964 void ucp_config_release(ucp_config_t *config);
1965 
1966 
1980 ucs_status_t ucp_config_modify(ucp_config_t *config, const char *name,
1981  const char *value);
1982 
1983 
1999 void ucp_config_print(const ucp_config_t *config, FILE *stream,
2000  const char *title, ucs_config_print_flags_t print_flags);
2001 
2002 
2013 void ucp_get_version(unsigned *major_version, unsigned *minor_version,
2014  unsigned *release_number);
2015 
2016 
2024 const char *ucp_get_version_string(void);
2025 
2026 
2035 ucs_status_t ucp_init_version(unsigned api_major_version, unsigned api_minor_version,
2036  const ucp_params_t *params, const ucp_config_t *config,
2037  ucp_context_h *context_p);
2076 static inline ucs_status_t ucp_init(const ucp_params_t *params,
2077  const ucp_config_t *config,
2078  ucp_context_h *context_p)
2079 {
2080  return ucp_init_version(UCP_API_MAJOR, UCP_API_MINOR, params, config,
2081  context_p);
2082 }
2083 
2084 
2102 void ucp_cleanup(ucp_context_h context_p);
2103 
2104 
2119  ucp_context_attr_t *attr);
2120 
2121 
2133 void ucp_context_print_info(const ucp_context_h context, FILE *stream);
2134 
2135 
2160  const ucp_worker_params_t *params,
2161  ucp_worker_h *worker_p);
2162 
2163 
2179 void ucp_worker_destroy(ucp_worker_h worker);
2180 
2181 
2194  ucp_worker_attr_t *attr);
2195 
2196 
2207 void ucp_worker_print_info(ucp_worker_h worker, FILE *stream);
2208 
2209 
2230 
2231 
2246 
2247 
2267 unsigned ucp_worker_progress(ucp_worker_h worker);
2268 
2269 
2290 ssize_t ucp_stream_worker_poll(ucp_worker_h worker,
2291  ucp_stream_poll_ep_t *poll_eps, size_t max_eps,
2292  unsigned flags);
2293 
2294 
2326 
2327 
2357 
2358 
2382 void ucp_worker_wait_mem(ucp_worker_h worker, void *address);
2383 
2384 
2455 
2456 
2476 
2477 
2504  const ucp_listener_params_t *params,
2505  ucp_listener_h *listener_p);
2506 
2507 
2517 void ucp_listener_destroy(ucp_listener_h listener);
2518 
2519 
2532 
2533 
2547  ucp_conn_request_attr_t *attr);
2548 
2549 
2559 ucs_status_t ucp_request_query(void *request, ucp_request_attr_t *attr);
2560 
2561 
2595  ucp_ep_h *ep_p);
2596 
2597 
2621  const ucp_request_param_t *param);
2622 
2623 
2641  ucp_conn_request_h conn_request);
2642 
2643 
2654 void ucp_ep_print_info(ucp_ep_h ep, FILE *stream);
2655 
2656 
2706 
2707 
2722  const ucp_ep_evaluate_perf_param_t *param,
2724 
2725 
2801  ucp_mem_h *memh_p);
2802 
2803 
2832 
2833 
2848 
2849 
2866 void ucp_mem_print_info(const char *mem_spec, ucp_context_h context,
2867  FILE *stream);
2868 
2869 
2877 typedef enum ucp_mem_advice {
2884 
2885 
2894 typedef struct ucp_mem_advise_params {
2900  uint64_t field_mask;
2901 
2905  void *address;
2906 
2910  size_t length;
2911 
2917 
2918 
2939  ucp_mem_advise_params_t *params);
2940 
2941 
2956 };
2957 
2958 
2976 };
2977 
2978 
2987 typedef struct ucp_memh_pack_params {
2993  uint64_t field_mask;
2994 
2998  uint64_t flags;
3000 
3001 
3036 ucp_memh_pack(ucp_mem_h memh, const ucp_memh_pack_params_t *params,
3037  void **buffer_p, size_t *buffer_size_p);
3038 
3039 
3054  uint64_t field_mask;
3056 
3057 
3076 void ucp_memh_buffer_release(void *buffer,
3077  const ucp_memh_buffer_release_params_t *params);
3078 
3079 
3102 ucs_status_t ucp_ep_rkey_unpack(ucp_ep_h ep, const void *rkey_buffer,
3103  ucp_rkey_h *rkey_p);
3104 
3105 
3125 ucs_status_t ucp_rkey_ptr(ucp_rkey_h rkey, uint64_t raddr, void **addr_p);
3126 
3127 
3149 void ucp_rkey_destroy(ucp_rkey_h rkey);
3150 
3151 
3173  const ucp_am_handler_param_t *param);
3174 
3175 
3228 ucs_status_ptr_t ucp_am_send_nbx(ucp_ep_h ep, unsigned id,
3229  const void *header, size_t header_length,
3230  const void *buffer, size_t count,
3231  const ucp_request_param_t *param);
3232 
3233 
3280 ucs_status_ptr_t ucp_am_recv_data_nbx(ucp_worker_h worker, void *data_desc,
3281  void *buffer, size_t count,
3282  const ucp_request_param_t *param);
3283 
3284 
3297 void ucp_am_data_release(ucp_worker_h worker, void *data);
3298 
3299 
3326 ucs_status_ptr_t ucp_stream_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3327  const ucp_request_param_t *param);
3328 
3329 
3368 ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3369  ucp_tag_t tag, const ucp_request_param_t *param);
3370 
3371 
3401  size_t count, ucp_tag_t tag,
3402  const ucp_request_param_t *param);
3403 
3404 
3440 ucs_status_ptr_t ucp_stream_recv_nbx(ucp_ep_h ep, void *buffer, size_t count,
3441  size_t *length,
3442  const ucp_request_param_t *param);
3443 
3444 
3478 
3479 
3517 ucs_status_ptr_t ucp_tag_recv_nbx(ucp_worker_h worker, void *buffer, size_t count,
3518  ucp_tag_t tag, ucp_tag_t tag_mask,
3519  const ucp_request_param_t *param);
3520 
3521 
3563  ucp_tag_t tag_mask, int remove,
3564  ucp_tag_recv_info_t *info);
3565 
3566 
3598  size_t count, ucp_tag_message_h message,
3599  const ucp_request_param_t *param);
3600 
3601 
3652 ucs_status_ptr_t ucp_put_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3653  uint64_t remote_addr, ucp_rkey_h rkey,
3654  const ucp_request_param_t *param);
3655 
3656 
3703 ucs_status_ptr_t ucp_get_nbx(ucp_ep_h ep, void *buffer, size_t count,
3704  uint64_t remote_addr, ucp_rkey_h rkey,
3705  const ucp_request_param_t *param);
3706 
3707 
3775 ucp_atomic_op_nbx(ucp_ep_h ep, ucp_atomic_op_t opcode, const void *buffer,
3776  size_t count, uint64_t remote_addr, ucp_rkey_h rkey,
3777  const ucp_request_param_t *param);
3778 
3779 
3792 ucs_status_t ucp_request_check_status(void *request);
3793 
3794 
3812 
3813 
3831 ucs_status_t ucp_stream_recv_request_test(void *request, size_t *length_p);
3832 
3833 
3853 void ucp_request_cancel(ucp_worker_h worker, void *request);
3854 
3855 
3868 void ucp_stream_data_release(ucp_ep_h ep, void *data);
3869 
3870 
3882 void ucp_request_free(void *request);
3883 
3884 
3898 void *ucp_request_alloc(ucp_worker_h worker);
3899 
3900 
3923 ucs_status_t ucp_dt_create_generic(const ucp_generic_dt_ops_t *ops, void *context,
3924  ucp_datatype_t *datatype_p);
3925 
3926 
3942 void ucp_dt_destroy(ucp_datatype_t datatype);
3943 
3944 
3959 
3960 
3984 
3985 
4012  const ucp_request_param_t *param);
4013 
4014 
4023  UCP_EP_ATTR_FIELD_NAME = UCS_BIT(0),
4027 };
4028 
4029 
4037 typedef struct ucp_ep_attr {
4044  uint64_t field_mask;
4045 
4051 
4058  struct sockaddr_storage local_sockaddr;
4059 
4066  struct sockaddr_storage remote_sockaddr;
4067 
4074 
4075 } ucp_ep_attr_t;
4076 
4077 
4090 
4091 
4100 END_C_DECLS
4101 
4102 #endif
ucs_status_t ucp_ep_rkey_unpack(ucp_ep_h ep, const void *rkey_buffer, ucp_rkey_h *rkey_p)
Create remote access key from packed buffer.
void ucp_context_print_info(const ucp_context_h context, FILE *stream)
Print context information.
uint64_t field_mask
Definition: ucp.h:4044
ucp_listener_params_field
UCP listener parameters field mask.
Definition: ucp.h:213
size_t estimated_num_eps
Definition: ucp.h:1126
Definition: ucp.h:122
Definition: ucp.h:409
Tuning parameters for the UCP endpoint.
Definition: ucp_def.h:683
Definition: ucp.h:530
uint32_t flags
Definition: ucp.h:1876
ucs_status_t status
Definition: ucp.h:1846
Definition: ucp.h:694
size_t am_alignment
Definition: ucp.h:1373
ucs_status_t ucp_context_query(ucp_context_h context_p, ucp_context_attr_t *attr)
Get attributes specific to a particular context.
ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count, ucp_tag_t tag, const ucp_request_param_t *param)
Non-blocking tagged-send operation.
ucp_req_attr_field
UCP request query attributes.
Definition: ucp.h:763
Definition: ucp.h:599
ucp_memh_pack_params_field
UCP memory handle packing parameters field mask.
Definition: ucp.h:2950
uint64_t field_mask
Definition: ucp.h:2993
ucp_mem_map_params_field
UCP memory mapping parameters field mask.
Definition: ucp.h:399
UCP receive information descriptor.
Definition: ucp.h:1685
uint64_t field_mask
Definition: ucp.h:2900
struct ucp_mem * ucp_mem_h
UCP Memory handle.
Definition: ucp_def.h:167
Definition: ucp.h:732
#define UCP_ENTITY_NAME_MAX
Maximum size of the UCP entity name in structure of entity attributes provided by a query method...
Definition: ucp_def.h:772
ucp_am_cb_flags
Flags for a UCP Active Message callback.
Definition: ucp.h:612
Definition: ucp.h:180
Definition: ucp.h:574
ucs_status_t ucp_dt_create_generic(const ucp_generic_dt_ops_t *ops, void *context, ucp_datatype_t *datatype_p)
Create a generic datatype.
ucs_status_t ucp_mem_unmap(ucp_context_h context, ucp_mem_h memh)
Unmap memory segment.
uint64_t ucp_datatype_t
UCP Datatype Identifier.
Definition: ucp_def.h:278
Definition: ucp.h:649
Attributes of a particular request.
Definition: ucp.h:1821
uint64_t field_mask
Definition: ucp.h:1469
Definition: ucp.h:735
Definition: ucp.h:535
Definition: ucp.h:730
ucs_status_t ucp_memh_pack(ucp_mem_h memh, const ucp_memh_pack_params_t *params, void **buffer_p, size_t *buffer_size_p)
Pack a memory handle to a buffer specified by the user.
Definition: ucp.h:262
Definition: ucp.h:142
ucs_status_ptr_t ucp_tag_send_sync_nbx(ucp_ep_h ep, const void *buffer, size_t count, ucp_tag_t tag, const ucp_request_param_t *param)
Non-blocking synchronous tagged-send operation.
ucp_request_cleanup_callback_t request_cleanup
Definition: ucp.h:1092
uint32_t op_attr_mask
Definition: ucp.h:1739
Tuning parameters for the UCP worker.
Definition: ucp.h:1285
Definition: ucp.h:124
Definition: ucp.h:587
ucp_am_recv_attr_t
UCP AM receive data parameter fields and flags.
Definition: ucp.h:779
ucp_tag_t sender_tag
Definition: ucp.h:1687
Definition: ucp.h:690
ucs_status_t ucp_mem_map(ucp_context_h context, const ucp_mem_map_params_t *params, ucp_mem_h *memh_p)
Map or allocate memory for zero-copy operations.
Memory handle release parameters passed to ucp_memh_buffer_release.
Definition: ucp.h:3049
ssize_t ucp_stream_worker_poll(ucp_worker_h worker, ucp_stream_poll_ep_t *poll_eps, size_t max_eps, unsigned flags)
Poll for endpoints that are ready to consume streaming data.
ucp_listener_conn_handler_t conn_handler
Definition: ucp.h:1553
Lib attributes.
Definition: ucp.h:1156
Definition: ucp.h:726
Definition: ucp.h:531
Structure containing an array of transport layers and device names used by an endpoint.
Definition: ucp_def.h:846
Definition: ucp.h:532
ucp_tag_message_h ucp_tag_probe_nb(ucp_worker_h worker, ucp_tag_t tag, ucp_tag_t tag_mask, int remove, ucp_tag_recv_info_t *info)
Non-blocking probe and return a message.
struct ucp_context * ucp_context_h
UCP Application Context.
Definition: ucp_def.h:60
ucp_params_field
UCP context parameters field mask.
Definition: ucp.h:119
Definition: ucp.h:602
ucs_status_t ucp_rkey_ptr(ucp_rkey_h rkey, uint64_t raddr, void **addr_p)
Get a local pointer to remote memory.
Definition: ucp.h:731
ucp_datatype_attr_field
UCP datatype attributes field mask.
Definition: ucp.h:549
Definition: ucp.h:554
void * ucp_request_alloc(ucp_worker_h worker)
Create an empty communications request.
uint64_t field_mask
Definition: ucp.h:1051
Definition: ucp.h:345
ucs_status_ptr_t ucp_ep_flush_nbx(ucp_ep_h ep, const ucp_request_param_t *param)
Non-blocking flush of outstanding AMO and RMA operations on the endpoint.
void(* ucp_tag_recv_nbx_callback_t)(void *request, ucs_status_t status, const ucp_tag_recv_info_t *tag_info, void *user_data)
Completion callback for non-blocking tag receives ucp_tag_recv_nbx call.
Definition: ucp_def.h:518
ucs_status_t ucp_worker_arm(ucp_worker_h worker)
Turn on event notification for the next event.
struct ucp_listener_params ucp_listener_params_t
Parameters for a UCP listener object.
struct ucp_conn_request * ucp_conn_request_h
UCP connection request.
Definition: ucp_def.h:102
void ucp_dt_destroy(ucp_datatype_t datatype)
Destroy a datatype and release its resources.
void * request
Definition: ucp.h:1750
Definition: ucp.h:657
Definition: ucp.h:183
struct ucp_dt_iov ucp_dt_iov_t
Structure for scatter-gather I/O.
Definition: ucp.h:780
struct ucp_listener * ucp_listener_h
UCP listen handle.
Definition: ucp_def.h:177
ucs_thread_mode_t thread_mode
Definition: ucp.h:1237
Definition: ucp.h:624
uint64_t client_id
Definition: ucp.h:1381
void(* ucp_request_cleanup_callback_t)(void *request)
Request cleanup callback.
Definition: ucp_def.h:301
uint64_t client_id
Definition: ucp.h:1505
uint32_t flags
Definition: ucp.h:1742
Tuning parameters for the UCP memory mapping.
Definition: ucp.h:1594
ucs_status_ptr_t ucp_am_send_nbx(ucp_ep_h ep, unsigned id, const void *header, size_t header_length, const void *buffer, size_t count, const ucp_request_param_t *param)
Send Active Message.
unsigned flags
Definition: ucp.h:1578
Definition: ucp.h:825
uint64_t field_mask
Definition: ucp.h:3054
ucs_status_t ucp_mem_query(const ucp_mem_h memh, ucp_mem_attr_t *attr)
query mapped memory segment
ucs_status_ptr_t ucp_stream_send_nbx(ucp_ep_h ep, const void *buffer, size_t count, const ucp_request_param_t *param)
Non-blocking stream send operation.
const char * name
Definition: ucp.h:1146
Definition: ucp.h:798
void ucp_worker_wait_mem(ucp_worker_h worker, void *address)
Wait for memory update on the address.
ucs_status_ptr_t ucp_stream_recv_nbx(ucp_ep_h ep, void *buffer, size_t count, size_t *length, const ucp_request_param_t *param)
Non-blocking stream receive operation of structured data into a user-supplied buffer.
void ucp_listener_destroy(ucp_listener_h listener)
Stop accepting connections on a local address of the worker object.
ucp_address_t * address
Definition: ucp.h:1254
void ucp_cleanup(ucp_context_h context_p)
Release UCP application context.
Definition: ucp.h:600
Attributes of the UCP Memory handle, filled by ucp_mem_query function.
Definition: ucp_def.h:185
ucp_worker_address_attr_field
UCP worker address attributes field mask.
Definition: ucp.h:493
ucp_worker_params_field
UCP worker parameters field mask.
Definition: ucp.h:178
unsigned events
Definition: ucp.h:1323
ucs_thread_mode_t max_thread_level
Definition: ucp.h:1172
struct ucp_ep_attr ucp_ep_attr_t
UCP endpoint attributes.
struct ucp_am_handler_param ucp_am_handler_param_t
Active Message handler parameters passed to ucp_worker_set_am_recv_handler routine.
unsigned flags
Definition: ucp.h:1631
struct ucp_memh_buffer_release_params ucp_memh_buffer_release_params_t
Memory handle release parameters passed to ucp_memh_buffer_release.
Definition: ucp.h:157
Definition: ucp.h:479
Definition: ucp.h:813
size_t max_debug_string
Definition: ucp.h:1274
Definition: ucp.h:266
ucp_context_attr_field
UCP context attributes field mask.
Definition: ucp.h:458
size_t estimated_num_ppn
Definition: ucp.h:1136
ucp_ep_h reply_ep
Definition: ucp.h:1907
void ucp_worker_release_address(ucp_worker_h worker, ucp_address_t *address)
Release an address of the worker object.
ucs_thread_mode_t
Thread sharing mode.
Definition: thread_mode.h:19
Definition: ucp.h:2878
void ucp_ep_print_info(ucp_ep_h ep, FILE *stream)
Print endpoint information.
ucs_status_t ucp_ep_create(ucp_worker_h worker, const ucp_ep_params_t *params, ucp_ep_h *ep_p)
Create and connect an endpoint.
ucp_listener_attr_field
UCP listener attributes field mask.
Definition: ucp.h:505
void ucp_request_cancel(ucp_worker_h worker, void *request)
Cancel an outstanding communications request.
UCP endpoint performance evaluation result attributes.
Definition: ucp.h:1438
ucs_status_t ucp_worker_wait(ucp_worker_h worker)
Wait for an event of the worker.
ucs_memory_type_t mem_type
Definition: ucp.h:1851
Definition: ucp_compat.h:23
ucp_mem_h memh
Definition: ucp.h:1812
unsigned id
Definition: ucp.h:1871
size_t length
Definition: ucp.h:876
void(* ucp_send_nbx_callback_t)(void *request, ucs_status_t status, void *user_data)
Completion callback for non-blocking sends.
Definition: ucp_def.h:340
void * address
Definition: ucp.h:1613
ucs_status_t ucp_config_read(const char *env_prefix, const char *filename, ucp_config_t **config_p)
Read UCP configuration descriptor.
size_t message_size
Definition: ucp.h:1427
uint64_t features
Definition: ucp.h:1059
uint64_t field_mask
Definition: ucp.h:1523
void(* ucp_request_init_callback_t)(void *request)
Request initialization callback.
Definition: ucp_def.h:289
const char * name
Definition: ucp.h:1366
const void * exported_memh_buffer
Definition: ucp.h:1672
Definition: ucp.h:412
Definition: ucp.h:639
Definition: ucp.h:4025
Definition: ucp.h:706
unsigned prot
Definition: ucp.h:1640
ucs_status_ptr_t ucp_tag_recv_nbx(ucp_worker_h worker, void *buffer, size_t count, ucp_tag_t tag, ucp_tag_t tag_mask, const ucp_request_param_t *param)
Non-blocking tagged-receive operation.
ucp_ep_h ep
Definition: ucp.h:1567
uint64_t flags
Definition: ucp.h:1356
ucs_status_t ucp_stream_recv_request_test(void *request, size_t *length_p)
Check the status and currently available state of non-blocking request returned from ucp_stream_recv_...
Definition: ucp.h:537
Definition: ucp.h:789
UCP endpoint attributes.
Definition: ucp.h:4037
struct ucp_conn_request_attr ucp_conn_request_attr_t
UCP listener&#39;s connection request attributes.
uint64_t worker_uid
Definition: ucp.h:1403
size_t max_am_header
Definition: ucp.h:1264
size_t address_length
Definition: ucp.h:1259
ucs_status_t
Status codes.
Definition: status.h:45
ucp_mem_advise_params_field
UCP memory advice parameters field mask.
Definition: ucp.h:431
struct ucp_lib_attr ucp_lib_attr_t
Lib attributes.
Definition: ucp.h:160
Definition: ucp.h:461
struct ucp_address ucp_address_t
UCP worker address.
Definition: ucp_def.h:112
struct ucp_params ucp_params_t
Tuning parameters for UCP library.
Output parameter of ucp_stream_worker_poll function.
Definition: ucp.h:1563
void(* ucp_stream_recv_nbx_callback_t)(void *request, ucs_status_t status, size_t length, void *user_data)
Completion callback for non-blocking stream receives ucp_stream_recv_nbx call.
Definition: ucp_def.h:470
void ucp_worker_destroy(ucp_worker_h worker)
Destroy a worker object.
struct ucp_worker_params ucp_worker_params_t
Tuning parameters for the UCP worker.
Definition: ucp.h:460
UCP datatype attributes.
Definition: ucp.h:1001
size_t length
Definition: ucp.h:1689
Definition: ucp.h:767
ucp_ep_perf_param_field
UCP performance fields and flags.
Definition: ucp.h:372
ucs_status_t ucp_ep_evaluate_perf(ucp_ep_h ep, const ucp_ep_evaluate_perf_param_t *param, ucp_ep_evaluate_perf_attr_t *attr)
Estimate performance characteristics of a specific endpoint.
ucs_status_t ucp_request_check_status(void *request)
Check the status of non-blocking request.
ucs_status_ptr_t ucp_stream_recv_data_nb(ucp_ep_h ep, size_t *length)
Non-blocking stream receive operation of unstructured data into a UCP-supplied buffer.
uint64_t field_mask
Definition: ucp.h:1163
unsigned ucp_worker_progress(ucp_worker_h worker)
Progress all communications on a specific worker.
struct ucp_datatype_attr ucp_datatype_attr_t
UCP datatype attributes.
ucs_status_t ucp_ep_query(ucp_ep_h ep, ucp_ep_attr_t *attr)
Get attributes of a given endpoint.
Definition: ucp.h:120
ucs_status_t ucp_worker_fence(ucp_worker_h worker)
Assures ordering between non-blocking operations.
ucp_request_init_callback_t request_init
Definition: ucp.h:1081
Definition: ucp.h:729
ucs_status_t(* ucp_am_recv_callback_t)(void *arg, const void *header, size_t header_length, void *data, size_t length, const ucp_am_recv_param_t *param)
Callback to process incoming Active Message sent by ucp_am_send_nbx routine.
Definition: ucp_def.h:670
Definition: ucp.h:749
Definition: ucp.h:148
uint64_t memory_types
Definition: ucp.h:1209
Definition: ucp.h:128
Definition: ucp.h:4023
uint64_t field_mask
Definition: ucp.h:1493
UCP generic data type descriptor.
Definition: ucp.h:893
void ucp_get_version(unsigned *major_version, unsigned *minor_version, unsigned *release_number)
Get UCP library version.
ucp_cb_param_flags
Descriptor flags for Active Message callback.
Definition: ucp.h:676
struct ucp_config ucp_config_t
UCP configuration descriptor.
Definition: ucp_def.h:77
Definition: ucp.h:677
void ucp_mem_print_info(const char *mem_spec, ucp_context_h context, FILE *stream)
Print memory mapping information.
size_t length
Definition: ucp.h:1622
void ucp_stream_data_release(ucp_ep_h ep, void *data)
Release UCP data buffer returned by ucp_stream_recv_data_nb.
Definition: ucp.h:2955
Definition: ucp.h:475
Operation parameters provided in ucp_am_recv_callback_t callback.
Definition: ucp.h:1896
ucs_status_ptr_t ucp_ep_close_nbx(ucp_ep_h ep, const ucp_request_param_t *param)
Non-blocking endpoint closure.
void ucp_request_free(void *request)
Release a communications request.
struct ucp_recv_desc * ucp_tag_message_h
UCP Message descriptor.
Definition: ucp_def.h:268
ucp_mem_advice_t advice
Definition: ucp.h:2915
Definition: ucp.h:727
Definition: ucp.h:693
ucp_ep_params_field
UCP endpoint parameters field mask.
Definition: ucp.h:254
ucp_stream_recv_flags_t
Flags to define behavior of ucp_stream_recv_nb function.
Definition: ucp.h:705
Memory handle pack parameters passed to ucp_memh_pack.
Definition: ucp.h:2987
Definition: ucp.h:728
ucs_status_t ucp_worker_address_query(ucp_address_t *address, ucp_worker_address_attr_t *attr)
Get attributes of the particular worker address.
Definition: ucp.h:403
Definition: ucp.h:415
enum ucp_ep_perf_attr_field ucp_ep_perf_attr_field_t
UCP performance fields and flags.
Definition: ucp.h:181
enum ucp_mem_advice ucp_mem_advice_t
list of UCP memory use advice.
ucp_ep_close_mode
Close UCP endpoint modes.
Definition: ucp.h:344
uint64_t recv_attr
Definition: ucp.h:1902
uint64_t tag_sender_mask
Definition: ucp.h:1099
void * arg
Definition: ucp.h:1888
ucs_status_ptr_t ucp_get_nbx(ucp_ep_h ep, void *buffer, size_t count, uint64_t remote_addr, ucp_rkey_h rkey, const ucp_request_param_t *param)
Non-blocking remote memory get operation.
Definition: ucp.h:265
UCP listener&#39;s connection request attributes.
Definition: ucp.h:1486
Definition: ucp.h:725
void ucp_config_release(ucp_config_t *config)
Release configuration descriptor.
Definition: ucp.h:724
Definition: ucp.h:2975
ucs_status_t ucp_listener_reject(ucp_listener_h listener, ucp_conn_request_h conn_request)
Reject an incoming connection request.
ucp_am_handler_param_field
UCP AM receive data parameters fields and flags.
Definition: ucp.h:809
ucs_status_ptr_t ucp_tag_msg_recv_nbx(ucp_worker_h worker, void *buffer, size_t count, ucp_tag_message_h message, const ucp_request_param_t *param)
Non-blocking receive operation for a probed message.
uint64_t field_mask
Definition: ucp.h:1291
ucs_status_t ucp_mem_advise(ucp_context_h context, ucp_mem_h memh, ucp_mem_advise_params_t *params)
give advice about the use of memory
ucp_atomic_op_t
Atomic operation requested for ucp_atomic_op_nbx.
Definition: ucp.h:688
struct ucp_stream_poll_ep ucp_stream_poll_ep_t
Output parameter of ucp_stream_worker_poll function.
char * debug_string
Definition: ucp.h:1834
Definition: ucp.h:263
uint64_t field_mask
Definition: ucp.h:1398
Definition: ucp.h:662
enum ucs_memory_type ucs_memory_type_t
Memory types.
uint64_t field_mask
Definition: ucp.h:1866
Definition: ucp.h:616
Definition: ucp.h:462
ucp_feature
UCP configuration features.
Definition: ucp.h:140
uint64_t field_mask
Definition: ucp.h:1445
Structure for scatter-gather I/O.
Definition: ucp.h:874
Context attributes.
Definition: ucp.h:1183
Definition: ucp.h:533
const char * ucp_get_version_string(void)
Get UCP library version as a string.
ucs_status_t ucp_request_query(void *request, ucp_request_attr_t *attr)
Get information about ucp_request.
Definition: ucp.h:459
ucs_status_t ucp_worker_query(ucp_worker_h worker, ucp_worker_attr_t *attr)
Get attributes specific to a particular worker.
ucp_memh_pack_flags
UCP memory handle flags.
Definition: ucp.h:2966
ucp_send_am_flags
Flags for sending a UCP Active Message.
Definition: ucp.h:635
Definition: ucp.h:261
void * ucs_status_ptr_t
Status pointer.
Definition: status.h:106
static ucs_status_t ucp_init(const ucp_params_t *params, const ucp_config_t *config, ucp_context_h *context_p)
UCP context initialization.
Definition: ucp.h:2076
double estimated_time
Definition: ucp.h:1452
ucp_am_recv_callback_t cb
Definition: ucp.h:1882
uint64_t ucp_tag_t
UCP Tag Identifier.
Definition: ucp_def.h:257
Definition: ucp.h:689
const void * buffer
Definition: ucp.h:1020
UCP listener attributes.
Definition: ucp.h:1462
ucp_op_attr_t
UCP operation fields and flags.
Definition: ucp.h:723
uint64_t field_mask
Definition: ucp.h:1601
ucs_status_t ucp_dt_query(ucp_datatype_t datatype, ucp_datatype_attr_t *attr)
Query attributes of a datatype.
ucp_ep_attr_field
UCP endpoint attributes field mask.
Definition: ucp.h:4022
void * user_data
Definition: ucp.h:1773
ucs_status_t ucp_conn_request_query(ucp_conn_request_h conn_request, ucp_conn_request_attr_t *attr)
Get attributes specific to a particular connection request received on the server side...
ucs_status_t ucp_config_modify(ucp_config_t *config, const char *name, const char *value)
Modify context configuration.
UCP worker attributes.
Definition: ucp.h:1225
Definition: ucp.h:167
Definition: ucp.h:185
struct ucp_mem_advise_params ucp_mem_advise_params_t
Tuning parameters for the UCP memory advice.
enum ucp_ep_perf_param_field ucp_ep_perf_param_field_t
UCP performance fields and flags.
ucs_memory_type_t memory_type
Definition: ucp.h:1658
void * reply_buffer
Definition: ucp.h:1779
ucs_status_ptr_t ucp_atomic_op_nbx(ucp_ep_h ep, ucp_atomic_op_t opcode, const void *buffer, size_t count, uint64_t remote_addr, ucp_rkey_h rkey, const ucp_request_param_t *param)
Post an atomic memory operation.
void ucp_config_print(const ucp_config_t *config, FILE *stream, const char *title, ucs_config_print_flags_t print_flags)
Print configuration information.
Definition: ucp.h:695
Tuning parameters for UCP library.
Definition: ucp.h:1045
Definition: ucp.h:151
ucs_status_t ucp_worker_set_am_recv_handler(ucp_worker_h worker, const ucp_am_handler_param_t *param)
Add user defined callback for Active Message.
struct ucp_worker * ucp_worker_h
UCP Worker.
Definition: ucp_def.h:246
Definition: ucp.h:692
ucp_worker_address_flags_t
UCP worker address flags.
Definition: ucp.h:238
ucs_status_t ucp_tag_recv_request_test(void *request, ucp_tag_recv_info_t *info)
Check the status and currently available state of non-blocking request returned from ucp_tag_recv_nb ...
Tuning parameters for the UCP memory advice.
Definition: ucp.h:2894
Definition: ucp.h:154
void ucp_worker_print_info(ucp_worker_h worker, FILE *stream)
Print information about the worker.
uint64_t field_mask
Definition: ucp.h:1232
Parameters for a UCP listener object.
Definition: ucp.h:1516
struct ucp_context_attr ucp_context_attr_t
Context attributes.
Active Message handler parameters passed to ucp_worker_set_am_recv_handler routine.
Definition: ucp.h:1860
UCP endpoint performance evaluation request attributes.
Definition: ucp.h:1414
uint64_t field_mask
Definition: ucp.h:1827
int mt_workers_shared
Definition: ucp.h:1115
ucs_memory_type_t memory_type
Definition: ucp.h:1788
size_t debug_string_size
Definition: ucp.h:1841
Definition: ucp.h:4026
Definition: ucp.h:123
Definition: ucp.h:4024
ucp_worker_attr_field
UCP worker attributes field mask.
Definition: ucp.h:473
ucp_conn_request_attr_field
UCP listener&#39;s connection request attributes field mask.
Definition: ucp.h:517
ucp_listener_accept_handler_t accept_handler
Definition: ucp.h:1540
ucp_ep_close_flags_t
Close UCP endpoint modes.
Definition: ucp.h:313
size_t count
Definition: ucp.h:1028
ucs_status_t ucp_lib_query(ucp_lib_attr_t *attr)
Get attributes of the UCP library.
size_t length
Definition: ucp.h:2910
struct ucp_memh_pack_params ucp_memh_pack_params_t
Memory handle pack parameters passed to ucp_memh_pack.
void ucp_am_data_release(ucp_worker_h worker, void *data)
Releases Active Message data.
Definition: ucp.h:287
Definition: types.h:137
ucs_status_t ucp_worker_create(ucp_context_h context, const ucp_worker_params_t *params, ucp_worker_h *worker_p)
Create a worker object.
struct ucp_ep * ucp_ep_h
UCP Endpoint.
Definition: ucp_def.h:92
ucp_transports_t transports
Definition: ucp.h:4073
struct ucp_mem_map_params ucp_mem_map_params_t
Tuning parameters for the UCP memory mapping.
void * address
Definition: ucp.h:2905
Definition: ucp.h:557
ucs_status_t ucp_listener_create(ucp_worker_h worker, const ucp_listener_params_t *params, ucp_listener_h *listener_p)
Create a listener to accept connections on. Connection requests on the listener will arrive at a loca...
ucs_status_t ucp_worker_get_efd(ucp_worker_h worker, int *fd)
Obtain an event file descriptor for event notification.
ucs_status_ptr_t ucp_am_recv_data_nbx(ucp_worker_h worker, void *data_desc, void *buffer, size_t count, const ucp_request_param_t *param)
Receive Active Message as defined by provided data descriptor.
uint64_t flags
Definition: ucp.h:2998
UCP callback to handle the connection request in a client-server connection establishment flow...
Definition: ucp_def.h:426
Definition: ucp.h:121
Definition: ucp.h:644
uint32_t address_flags
Definition: ucp.h:1245
Definition: ucp.h:581
Operation parameters passed to ucp_tag_send_nbx, ucp_tag_send_sync_nbx, ucp_tag_recv_nbx, ucp_put_nbx, ucp_get_nbx, ucp_am_send_nbx and ucp_am_recv_data_nbx.
Definition: ucp.h:1733
Definition: ucp.h:358
Definition: ucp.h:691
ucp_worker_flags_t
UCP worker flags.
Definition: ucp.h:200
size_t request_size
Definition: ucp.h:1197
ucs_thread_mode_t thread_mode
Definition: ucp.h:1203
ucs_cpu_set_t cpu_mask
Definition: ucp.h:1314
ucs_thread_mode_t thread_mode
Definition: ucp.h:1305
struct ucp_rkey * ucp_rkey_h
UCP Remote memory handle.
Definition: ucp_def.h:152
ucp_mem_advice
list of UCP memory use advice.
Definition: ucp.h:2877
void * user_data
Definition: ucp.h:1331
void ucp_memh_buffer_release(void *buffer, const ucp_memh_buffer_release_params_t *params)
Release packed memory handle buffer.
struct ucp_worker_attr ucp_worker_attr_t
UCP worker attributes.
ucp_lib_attr_field
UCP library attributes field mask.
Definition: ucp.h:445
Definition: ucp.h:2879
Definition: ucp.h:601
void ucp_rkey_destroy(ucp_rkey_h rkey)
Destroy the remote key.
ucs_status_ptr_t ucp_worker_flush_nbx(ucp_worker_h worker, const ucp_request_param_t *param)
Flush outstanding AMO and RMA operations on the worker.
uint64_t field_mask
Definition: ucp.h:1007
ucp_dt_type
UCP data type classification.
Definition: ucp.h:529
struct ucp_generic_dt_ops ucp_generic_dt_ops_t
UCP generic data type descriptor.
Definition: ucp.h:145
struct ucp_worker_address_attr ucp_worker_address_attr_t
UCP worker address attributes.
ucs_status_ptr_t ucp_put_nbx(ucp_ep_h ep, const void *buffer, size_t count, uint64_t remote_addr, ucp_rkey_h rkey, const ucp_request_param_t *param)
Non-blocking remote memory put operation.
Definition: ucp.h:186
void(* ucp_am_recv_data_nbx_callback_t)(void *request, ucs_status_t status, size_t length, void *user_data)
Completion callback for non-blocking Active Message receives.
Definition: ucp_def.h:540
ucp_datatype_t datatype
Definition: ucp.h:1768
ucs_status_t ucp_listener_query(ucp_listener_h listener, ucp_listener_attr_t *attr)
Get attributes specific to a particular listener.
size_t request_size
Definition: ucp.h:1069
Definition: ucp.h:259
size_t packed_size
Definition: ucp.h:1012
Definition: ucp.h:314
Definition: ucp.h:745
uint64_t field_mask
Definition: ucp.h:1190
Definition: ucp.h:766
ucp_ep_params_flags_field
UCP endpoint parameters flags.
Definition: ucp.h:278
ucs_status_t ucp_worker_signal(ucp_worker_h worker)
Cause an event of the worker.
ucp_ep_perf_attr_field
UCP performance fields and flags.
Definition: ucp.h:386
Definition: ucp.h:734
int event_fd
Definition: ucp.h:1348
Definition: ucp.h:821
void * buffer
Definition: ucp.h:875
struct ucp_listener_attr ucp_listener_attr_t
UCP listener attributes.
uint64_t field_mask
Definition: ucp.h:1421
void * user_data
Definition: ucp.h:1573
UCP worker address attributes.
Definition: ucp.h:1391
ucs_sock_addr_t sockaddr
Definition: ucp.h:1532