UCX  1.15
Unified Communication X
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
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 
350 
351 
364 
365 
378 
384 
387 
390 
393 
396 };
397 
409 };
410 
411 
422 };
423 
424 
436  UCP_ATTR_FIELD_NAME = UCS_BIT(3)
437 };
438 
439 
456 };
457 
458 
469 };
470 
471 
481 };
482 
483 
494 };
495 
496 
513 };
514 
515 
526 
529 
532 };
533 
534 
542 enum {
548  UCP_MEM_MAP_NONBLOCK = UCS_BIT(0),
549 
555  UCP_MEM_MAP_ALLOCATE = UCS_BIT(1),
556 
561  UCP_MEM_MAP_FIXED = UCS_BIT(2)
562 };
563 
564 
572 enum {
577 };
578 
579 
590  UCP_AM_FLAG_WHOLE_MSG = UCS_BIT(0),
591 
599 };
600 
601 
614 
619 
623  UCP_AM_SEND_FLAG_RNDV = UCS_BIT(2),
624 
632 
637 };
638 
639 
652 };
653 
654 
662 typedef enum {
671 
672 
679 typedef enum {
687 
688 
697 typedef enum {
702  UCP_OP_ATTR_FIELD_FLAGS = UCS_BIT(4),
706  UCP_OP_ATTR_FIELD_MEMH = UCS_BIT(8),
734 } ucp_op_attr_t;
735 
736 
744 typedef enum {
750 
751 
760 typedef enum {
771 
781 
782 
807 };
808 
809 
824 #define ucp_dt_make_contig(_elem_size) \
825  (((ucp_datatype_t)(_elem_size) << UCP_DATATYPE_SHIFT) | UCP_DATATYPE_CONTIG)
826 
827 
841 #define ucp_dt_make_iov() ((ucp_datatype_t)UCP_DATATYPE_IOV)
842 
843 
855 typedef struct ucp_dt_iov {
856  void *buffer;
857  size_t length;
858 } ucp_dt_iov_t;
859 
860 
874 typedef struct ucp_generic_dt_ops {
875 
890  void* (*start_pack)(void *context, const void *buffer, size_t count);
891 
906  void* (*start_unpack)(void *context, void *buffer, size_t count);
907 
921  size_t (*packed_size)(void *state);
922 
939  size_t (*pack) (void *state, size_t offset, void *dest, size_t max_length);
940 
956  ucs_status_t (*unpack)(void *state, size_t offset, const void *src, size_t length);
957 
972  void (*finish)(void *state);
974 
975 
982 typedef struct ucp_datatype_attr {
988  uint64_t field_mask;
989 
993  size_t packed_size;
994 
1001  const void *buffer;
1002 
1009  size_t count;
1011 
1012 
1026 typedef struct ucp_params {
1032  uint64_t field_mask;
1033 
1040  uint64_t features;
1041 
1051 
1063 
1074 
1081 
1097 
1108 
1118 
1127  const char *name;
1128 } ucp_params_t;
1129 
1130 
1137 typedef struct ucp_lib_attr {
1144  uint64_t field_mask;
1145 
1154 } ucp_lib_attr_t;
1155 
1156 
1164 typedef struct ucp_context_attr {
1171  uint64_t field_mask;
1172 
1179 
1185 
1190  uint64_t memory_types;
1191 
1197 
1198 
1206 typedef struct ucp_worker_attr {
1213  uint64_t field_mask;
1214 
1219 
1226  uint32_t address_flags;
1227 
1236 
1241 
1246 
1251 
1257 
1258 
1266 typedef struct ucp_worker_params {
1272  uint64_t field_mask;
1273 
1287 
1295  ucs_cpu_set_t cpu_mask;
1296 
1304  unsigned events;
1305 
1312  void *user_data;
1313 
1330 
1337  uint64_t flags;
1338 
1347  const char *name;
1348 
1355 
1362  uint64_t client_id;
1364 
1365 
1372 typedef struct ucp_worker_address_attr {
1379  uint64_t field_mask;
1380 
1384  uint64_t worker_uid;
1386 
1387 
1395 typedef struct {
1402  uint64_t field_mask;
1403 
1410 
1411 
1419 typedef struct {
1426  uint64_t field_mask;
1427 
1435 
1443 typedef struct ucp_listener_attr {
1450  uint64_t field_mask;
1451 
1456  struct sockaddr_storage sockaddr;
1458 
1459 
1467 typedef struct ucp_conn_request_attr {
1474  uint64_t field_mask;
1475 
1480  struct sockaddr_storage client_address;
1481 
1486  uint64_t client_id;
1488 
1489 
1497 typedef struct ucp_listener_params {
1504  uint64_t field_mask;
1505 
1514 
1522 
1536 
1537 
1544 typedef struct ucp_stream_poll_ep {
1549 
1554  void *user_data;
1555 
1559  unsigned flags;
1560 
1564  uint8_t reserved[16];
1566 
1567 
1575 typedef struct ucp_mem_map_params {
1582  uint64_t field_mask;
1583 
1594  void *address;
1595 
1603  size_t length;
1604 
1612  unsigned flags;
1613 
1621  unsigned prot;
1622 
1623  /*
1624  * Memory type (for possible memory types see @ref ucs_memory_type_t)
1625  * It is an optimization hint to avoid memory type detection for map buffer.
1626  * The meaning of this field depends on the operation type.
1627  *
1628  * - Memory allocation: (@ref UCP_MEM_MAP_ALLOCATE flag is set) This field
1629  * specifies the type of memory to allocate. If it's not set (along with its
1630  * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
1631  * @ref UCS_MEMORY_TYPE_HOST will be assumed by default.
1632  *
1633  * - Memory registration: This field specifies the type of memory which is
1634  * pointed by @ref ucp_mem_map_params.address. If it's not set (along with its
1635  * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
1636  * or set to @ref UCS_MEMORY_TYPE_UNKNOWN, the memory type will be detected
1637  * internally.
1638  */
1640 
1655 
1656 
1670  size_t length;
1671 };
1672 
1673 
1714 typedef struct {
1720  uint32_t op_attr_mask;
1721 
1722  /* Operation specific flags. */
1723  uint32_t flags;
1724 
1731  void *request;
1732 
1737  union {
1740  ucp_stream_recv_nbx_callback_t recv_stream;
1742  } cb;
1743 
1750 
1754  void *user_data;
1755 
1761 
1770 
1777  union {
1778  size_t *length; /* Length of received message in bytes.
1779  Relevant for non-tagged receive
1780  operations. */
1781  ucp_tag_recv_info_t *tag_info; /* Information about received message.
1782  Relevant for @a ucp_tag_recv_nbx
1783  function. */
1784  } recv_info;
1785 
1794 
1796 
1797 
1802 typedef struct {
1808  uint64_t field_mask;
1809 
1816 
1823 
1828 
1834 
1835 
1841 typedef struct ucp_am_handler_param {
1847  uint64_t field_mask;
1848 
1852  unsigned id;
1853 
1857  uint32_t flags;
1858 
1864 
1869  void *arg;
1871 
1872 
1883  uint64_t recv_attr;
1884 
1889 };
1890 
1891 
1903 
1904 
1931 ucs_status_t ucp_config_read(const char *env_prefix, const char *filename,
1932  ucp_config_t **config_p);
1933 
1934 
1945 void ucp_config_release(ucp_config_t *config);
1946 
1947 
1961 ucs_status_t ucp_config_modify(ucp_config_t *config, const char *name,
1962  const char *value);
1963 
1964 
1980 void ucp_config_print(const ucp_config_t *config, FILE *stream,
1981  const char *title, ucs_config_print_flags_t print_flags);
1982 
1983 
1994 void ucp_get_version(unsigned *major_version, unsigned *minor_version,
1995  unsigned *release_number);
1996 
1997 
2005 const char *ucp_get_version_string(void);
2006 
2007 
2016 ucs_status_t ucp_init_version(unsigned api_major_version, unsigned api_minor_version,
2017  const ucp_params_t *params, const ucp_config_t *config,
2018  ucp_context_h *context_p);
2057 static inline ucs_status_t ucp_init(const ucp_params_t *params,
2058  const ucp_config_t *config,
2059  ucp_context_h *context_p)
2060 {
2061  return ucp_init_version(UCP_API_MAJOR, UCP_API_MINOR, params, config,
2062  context_p);
2063 }
2064 
2065 
2083 void ucp_cleanup(ucp_context_h context_p);
2084 
2085 
2100  ucp_context_attr_t *attr);
2101 
2102 
2114 void ucp_context_print_info(const ucp_context_h context, FILE *stream);
2115 
2116 
2141  const ucp_worker_params_t *params,
2142  ucp_worker_h *worker_p);
2143 
2144 
2160 void ucp_worker_destroy(ucp_worker_h worker);
2161 
2162 
2175  ucp_worker_attr_t *attr);
2176 
2177 
2188 void ucp_worker_print_info(ucp_worker_h worker, FILE *stream);
2189 
2190 
2211 
2212 
2227 
2228 
2248 unsigned ucp_worker_progress(ucp_worker_h worker);
2249 
2250 
2271 ssize_t ucp_stream_worker_poll(ucp_worker_h worker,
2272  ucp_stream_poll_ep_t *poll_eps, size_t max_eps,
2273  unsigned flags);
2274 
2275 
2307 
2308 
2338 
2339 
2363 void ucp_worker_wait_mem(ucp_worker_h worker, void *address);
2364 
2365 
2436 
2437 
2457 
2458 
2485  const ucp_listener_params_t *params,
2486  ucp_listener_h *listener_p);
2487 
2488 
2498 void ucp_listener_destroy(ucp_listener_h listener);
2499 
2500 
2513 
2514 
2528  ucp_conn_request_attr_t *attr);
2529 
2530 
2540 ucs_status_t ucp_request_query(void *request, ucp_request_attr_t *attr);
2541 
2542 
2576  ucp_ep_h *ep_p);
2577 
2578 
2602  const ucp_request_param_t *param);
2603 
2604 
2622  ucp_conn_request_h conn_request);
2623 
2624 
2635 void ucp_ep_print_info(ucp_ep_h ep, FILE *stream);
2636 
2637 
2687 
2688 
2703  const ucp_ep_evaluate_perf_param_t *param,
2705 
2706 
2782  ucp_mem_h *memh_p);
2783 
2784 
2813 
2814 
2829 
2830 
2847 void ucp_mem_print_info(const char *mem_spec, ucp_context_h context,
2848  FILE *stream);
2849 
2850 
2858 typedef enum ucp_mem_advice {
2865 
2866 
2875 typedef struct ucp_mem_advise_params {
2881  uint64_t field_mask;
2882 
2886  void *address;
2887 
2891  size_t length;
2892 
2898 
2899 
2920  ucp_mem_advise_params_t *params);
2921 
2922 
2937 };
2938 
2939 
2957 };
2958 
2959 
2968 typedef struct ucp_memh_pack_params {
2974  uint64_t field_mask;
2975 
2979  uint64_t flags;
2981 
2982 
3017 ucp_memh_pack(ucp_mem_h memh, const ucp_memh_pack_params_t *params,
3018  void **buffer_p, size_t *buffer_size_p);
3019 
3020 
3035  uint64_t field_mask;
3037 
3038 
3057 void ucp_memh_buffer_release(void *buffer,
3058  const ucp_memh_buffer_release_params_t *params);
3059 
3060 
3083 ucs_status_t ucp_ep_rkey_unpack(ucp_ep_h ep, const void *rkey_buffer,
3084  ucp_rkey_h *rkey_p);
3085 
3086 
3106 ucs_status_t ucp_rkey_ptr(ucp_rkey_h rkey, uint64_t raddr, void **addr_p);
3107 
3108 
3130 void ucp_rkey_destroy(ucp_rkey_h rkey);
3131 
3132 
3154  const ucp_am_handler_param_t *param);
3155 
3156 
3209 ucs_status_ptr_t ucp_am_send_nbx(ucp_ep_h ep, unsigned id,
3210  const void *header, size_t header_length,
3211  const void *buffer, size_t count,
3212  const ucp_request_param_t *param);
3213 
3214 
3261 ucs_status_ptr_t ucp_am_recv_data_nbx(ucp_worker_h worker, void *data_desc,
3262  void *buffer, size_t count,
3263  const ucp_request_param_t *param);
3264 
3265 
3278 void ucp_am_data_release(ucp_worker_h worker, void *data);
3279 
3280 
3307 ucs_status_ptr_t ucp_stream_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3308  const ucp_request_param_t *param);
3309 
3310 
3349 ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3350  ucp_tag_t tag, const ucp_request_param_t *param);
3351 
3352 
3381 ucs_status_ptr_t ucp_tag_send_sync_nbx(ucp_ep_h ep, const void *buffer,
3382  size_t count, ucp_tag_t tag,
3383  const ucp_request_param_t *param);
3384 
3385 
3421 ucs_status_ptr_t ucp_stream_recv_nbx(ucp_ep_h ep, void *buffer, size_t count,
3422  size_t *length,
3423  const ucp_request_param_t *param);
3424 
3425 
3459 
3460 
3498 ucs_status_ptr_t ucp_tag_recv_nbx(ucp_worker_h worker, void *buffer, size_t count,
3499  ucp_tag_t tag, ucp_tag_t tag_mask,
3500  const ucp_request_param_t *param);
3501 
3502 
3544  ucp_tag_t tag_mask, int remove,
3545  ucp_tag_recv_info_t *info);
3546 
3547 
3579  size_t count, ucp_tag_message_h message,
3580  const ucp_request_param_t *param);
3581 
3582 
3633 ucs_status_ptr_t ucp_put_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3634  uint64_t remote_addr, ucp_rkey_h rkey,
3635  const ucp_request_param_t *param);
3636 
3637 
3684 ucs_status_ptr_t ucp_get_nbx(ucp_ep_h ep, void *buffer, size_t count,
3685  uint64_t remote_addr, ucp_rkey_h rkey,
3686  const ucp_request_param_t *param);
3687 
3688 
3756 ucp_atomic_op_nbx(ucp_ep_h ep, ucp_atomic_op_t opcode, const void *buffer,
3757  size_t count, uint64_t remote_addr, ucp_rkey_h rkey,
3758  const ucp_request_param_t *param);
3759 
3760 
3773 ucs_status_t ucp_request_check_status(void *request);
3774 
3775 
3793 
3794 
3812 ucs_status_t ucp_stream_recv_request_test(void *request, size_t *length_p);
3813 
3814 
3834 void ucp_request_cancel(ucp_worker_h worker, void *request);
3835 
3836 
3849 void ucp_stream_data_release(ucp_ep_h ep, void *data);
3850 
3851 
3863 void ucp_request_free(void *request);
3864 
3865 
3879 void *ucp_request_alloc(ucp_worker_h worker);
3880 
3881 
3904 ucs_status_t ucp_dt_create_generic(const ucp_generic_dt_ops_t *ops, void *context,
3905  ucp_datatype_t *datatype_p);
3906 
3907 
3923 void ucp_dt_destroy(ucp_datatype_t datatype);
3924 
3925 
3940 
3941 
3965 
3966 
3993  const ucp_request_param_t *param);
3994 
3995 
4004  UCP_EP_ATTR_FIELD_NAME = UCS_BIT(0),
4008 };
4009 
4010 
4018 typedef struct ucp_ep_attr {
4025  uint64_t field_mask;
4026 
4032 
4039  struct sockaddr_storage local_sockaddr;
4040 
4047  struct sockaddr_storage remote_sockaddr;
4048 
4055 
4056 } ucp_ep_attr_t;
4057 
4058 
4071 
4072 
4081 END_C_DECLS
4082 
4083 #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:4025
ucp_listener_params_field
UCP listener parameters field mask.
Definition: ucp.h:213
size_t estimated_num_eps
Definition: ucp.h:1107
Definition: ucp.h:122
Definition: ucp.h:383
Tuning parameters for the UCP endpoint.
Definition: ucp_def.h:683
Definition: ucp.h:504
uint32_t flags
Definition: ucp.h:1857
ucs_status_t status
Definition: ucp.h:1827
Definition: ucp.h:668
size_t(* pack)(void *state, size_t offset, void *dest, size_t max_length)
Pack data.
Definition: ucp.h:939
size_t am_alignment
Definition: ucp.h:1354
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:744
Definition: ucp.h:573
ucp_memh_pack_params_field
UCP memory handle packing parameters field mask.
Definition: ucp.h:2931
uint64_t field_mask
Definition: ucp.h:2974
ucp_mem_map_params_field
UCP memory mapping parameters field mask.
Definition: ucp.h:373
UCP receive information descriptor.
Definition: ucp.h:1666
uint64_t field_mask
Definition: ucp.h:2881
struct ucp_mem * ucp_mem_h
UCP Memory handle.
Definition: ucp_def.h:167
Definition: ucp.h:706
#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:586
Definition: ucp.h:180
Definition: ucp.h:548
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:623
Attributes of a particular request.
Definition: ucp.h:1802
uint64_t field_mask
Definition: ucp.h:1450
Definition: ucp.h:714
Definition: ucp.h:509
Definition: ucp.h:704
void(* ucp_request_cleanup_callback_t)(void *request)
Request cleanup callback.
Definition: ucp_def.h:301
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:1073
uint32_t op_attr_mask
Definition: ucp.h:1720
Tuning parameters for the UCP worker.
Definition: ucp.h:1266
Definition: ucp.h:124
Definition: ucp.h:561
ucp_am_recv_attr_t
UCP AM receive data parameter fields and flags.
Definition: ucp.h:760
ucp_tag_t sender_tag
Definition: ucp.h:1668
Definition: ucp.h:664
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:3030
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:1534
Lib attributes.
Definition: ucp.h:1137
Definition: ucp.h:700
Definition: ucp.h:505
Structure containing an array of transport layers and device names used by an endpoint.
Definition: ucp_def.h:846
Definition: ucp.h:506
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:576
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:705
ucp_datatype_attr_field
UCP datatype attributes field mask.
Definition: ucp.h:523
Definition: ucp.h:528
void * ucp_request_alloc(ucp_worker_h worker)
Create an empty communications request.
uint64_t field_mask
Definition: ucp.h:1032
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.
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:1731
uint8_t reserved[16]
Definition: ucp.h:1564
Definition: ucp.h:631
Definition: ucp.h:183
struct ucp_dt_iov ucp_dt_iov_t
Structure for scatter-gather I/O.
Definition: ucp.h:761
struct ucp_listener * ucp_listener_h
UCP listen handle.
Definition: ucp_def.h:177
ucs_thread_mode_t thread_mode
Definition: ucp.h:1218
Definition: ucp.h:598
uint64_t client_id
Definition: ucp.h:1362
uint64_t client_id
Definition: ucp.h:1486
uint32_t flags
Definition: ucp.h:1723
Tuning parameters for the UCP memory mapping.
Definition: ucp.h:1575
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:1559
Definition: ucp.h:806
uint64_t field_mask
Definition: ucp.h:3035
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:1127
Definition: ucp.h:779
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:1235
void ucp_cleanup(ucp_context_h context_p)
Release UCP application context.
Definition: ucp.h:574
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:467
ucp_worker_params_field
UCP worker parameters field mask.
Definition: ucp.h:178
unsigned events
Definition: ucp.h:1304
ucs_thread_mode_t max_thread_level
Definition: ucp.h:1153
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:1612
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:453
Definition: ucp.h:794
size_t max_debug_string
Definition: ucp.h:1255
struct sockaddr_storage remote_sockaddr
Definition: ucp.h:4047
Definition: ucp.h:266
ucp_context_attr_field
UCP context attributes field mask.
Definition: ucp.h:432
size_t estimated_num_ppn
Definition: ucp.h:1117
ucp_ep_h reply_ep
Definition: ucp.h:1888
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:2859
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:479
void ucp_request_cancel(ucp_worker_h worker, void *request)
Cancel an outstanding communications request.
UCP endpoint performance evaluation result attributes.
Definition: ucp.h:1419
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:1832
Definition: ucp_compat.h:23
ucp_mem_h memh
Definition: ucp.h:1793
unsigned id
Definition: ucp.h:1852
size_t length
Definition: ucp.h:857
void * address
Definition: ucp.h:1594
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:1408
uint64_t features
Definition: ucp.h:1040
uint64_t field_mask
Definition: ucp.h:1504
const char * name
Definition: ucp.h:1347
const void * exported_memh_buffer
Definition: ucp.h:1653
Definition: ucp.h:386
size_t(* packed_size)(void *state)
Get the total size of packed data.
Definition: ucp.h:921
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
Definition: ucp.h:613
Definition: ucp.h:4006
Definition: ucp.h:680
unsigned prot
Definition: ucp.h:1621
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:1548
uint64_t flags
Definition: ucp.h:1337
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:511
Definition: ucp.h:770
UCP endpoint attributes.
Definition: ucp.h:4018
struct ucp_conn_request_attr ucp_conn_request_attr_t
UCP listener's connection request attributes.
uint64_t worker_uid
Definition: ucp.h:1384
size_t max_am_header
Definition: ucp.h:1245
size_t address_length
Definition: ucp.h:1240
ucs_status_t
Status codes.
Definition: status.h:45
ucp_mem_advise_params_field
UCP memory advice parameters field mask.
Definition: ucp.h:405
struct ucp_lib_attr ucp_lib_attr_t
Lib attributes.
Definition: ucp.h:160
Definition: ucp.h:435
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:1544
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:434
UCP datatype attributes.
Definition: ucp.h:982
size_t length
Definition: ucp.h:1670
Definition: ucp.h:748
ucp_ep_perf_param_field
UCP performance fields and flags.
Definition: ucp.h:346
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:1144
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:1062
Definition: ucp.h:703
Definition: ucp.h:728
Definition: ucp.h:148
uint64_t memory_types
Definition: ucp.h:1190
Definition: ucp.h:128
Definition: ucp.h:4004
uint64_t field_mask
Definition: ucp.h:1474
UCP generic data type descriptor.
Definition: ucp.h:874
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:650
struct ucp_config ucp_config_t
UCP configuration descriptor.
Definition: ucp_def.h:77
Definition: ucp.h:651
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:1603
void(* ucp_request_init_callback_t)(void *request)
Request initialization callback.
Definition: ucp_def.h:289
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:2936
Definition: ucp.h:449
Operation parameters provided in ucp_am_recv_callback_t callback.
Definition: ucp.h:1877
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:2896
Definition: ucp.h:701
Definition: ucp.h:667
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:679
Memory handle pack parameters passed to ucp_memh_pack.
Definition: ucp.h:2968
Definition: ucp.h:702
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:377
Definition: ucp.h:389
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.
uint64_t recv_attr
Definition: ucp.h:1883
uint64_t tag_sender_mask
Definition: ucp.h:1080
void * arg
Definition: ucp.h:1869
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's connection request attributes.
Definition: ucp.h:1467
Definition: ucp.h:699
void ucp_config_release(ucp_config_t *config)
Release configuration descriptor.
Definition: ucp.h:698
Definition: ucp.h:2956
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:790
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:1272
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:662
struct ucp_stream_poll_ep ucp_stream_poll_ep_t
Output parameter of ucp_stream_worker_poll function.
char * debug_string
Definition: ucp.h:1815
Definition: ucp.h:263
uint64_t field_mask
Definition: ucp.h:1379
Definition: ucp.h:636
enum ucs_memory_type ucs_memory_type_t
Memory types.
uint64_t field_mask
Definition: ucp.h:1847
Definition: ucp.h:590
Definition: ucp.h:436
ucp_feature
UCP configuration features.
Definition: ucp.h:140
char name[UCP_ENTITY_NAME_MAX]
Definition: ucp.h:1195
uint64_t field_mask
Definition: ucp.h:1426
Structure for scatter-gather I/O.
Definition: ucp.h:855
struct sockaddr_storage sockaddr
Definition: ucp.h:1456
Context attributes.
Definition: ucp.h:1164
Definition: ucp.h:507
const char * ucp_get_version_string(void)
Get UCP library version as a string.
ucs_status_t(* unpack)(void *state, size_t offset, const void *src, size_t length)
Unpack data.
Definition: ucp.h:956
ucs_status_t ucp_request_query(void *request, ucp_request_attr_t *attr)
Get information about ucp_request.
Definition: ucp.h:433
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:2947
ucp_send_am_flags
Flags for sending a UCP Active Message.
Definition: ucp.h:609
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:2057
double estimated_time
Definition: ucp.h:1433
ucp_am_recv_callback_t cb
Definition: ucp.h:1863
uint64_t ucp_tag_t
UCP Tag Identifier.
Definition: ucp_def.h:257
Definition: ucp.h:663
const void * buffer
Definition: ucp.h:1001
UCP listener attributes.
Definition: ucp.h:1443
ucp_op_attr_t
UCP operation fields and flags.
Definition: ucp.h:697
uint64_t field_mask
Definition: ucp.h:1582
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:4003
void * user_data
Definition: ucp.h:1754
char name[UCP_ENTITY_NAME_MAX]
Definition: ucp.h:1250
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:1206
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:1639
void * reply_buffer
Definition: ucp.h:1760
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:669
Tuning parameters for UCP library.
Definition: ucp.h:1026
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:666
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:2875
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:1213
Parameters for a UCP listener object.
Definition: ucp.h:1497
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:1841
UCP endpoint performance evaluation request attributes.
Definition: ucp.h:1395
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
uint64_t field_mask
Definition: ucp.h:1808
int mt_workers_shared
Definition: ucp.h:1096
struct sockaddr_storage client_address
Definition: ucp.h:1480
ucs_memory_type_t memory_type
Definition: ucp.h:1769
size_t debug_string_size
Definition: ucp.h:1822
Definition: ucp.h:4007
Definition: ucp.h:123
void(* finish)(void *state)
Finish packing/unpacking.
Definition: ucp.h:972
Definition: ucp.h:4005
ucp_worker_attr_field
UCP worker attributes field mask.
Definition: ucp.h:447
ucp_conn_request_attr_field
UCP listener's connection request attributes field mask.
Definition: ucp.h:491
ucp_listener_accept_handler_t accept_handler
Definition: ucp.h:1521
ucp_ep_close_flags_t
Close UCP endpoint modes.
Definition: ucp.h:313
char name[UCP_ENTITY_NAME_MAX]
Definition: ucp.h:4031
size_t count
Definition: ucp.h:1009
ucs_status_t ucp_lib_query(ucp_lib_attr_t *attr)
Get attributes of the UCP library.
size_t length
Definition: ucp.h:2891
struct ucp_memh_pack_params ucp_memh_pack_params_t
Memory handle pack parameters passed to ucp_memh_pack.
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 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:4054
struct ucp_mem_map_params ucp_mem_map_params_t
Tuning parameters for the UCP memory mapping.
void * address
Definition: ucp.h:2886
Definition: ucp.h:531
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:2979
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:618
uint32_t address_flags
Definition: ucp.h:1226
Definition: ucp.h:555
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:1714
Definition: ucp.h:665
ucp_worker_flags_t
UCP worker flags.
Definition: ucp.h:200
size_t request_size
Definition: ucp.h:1178
ucs_thread_mode_t thread_mode
Definition: ucp.h:1184
ucs_cpu_set_t cpu_mask
Definition: ucp.h:1295
ucs_thread_mode_t thread_mode
Definition: ucp.h:1286
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:2858
void * user_data
Definition: ucp.h:1312
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:419
Definition: ucp.h:2860
Definition: ucp.h:575
void ucp_rkey_destroy(ucp_rkey_h rkey)
Destroy the remote key.
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_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:988
ucp_dt_type
UCP data type classification.
Definition: ucp.h:503
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
ucp_datatype_t datatype
Definition: ucp.h:1749
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:1050
Definition: ucp.h:259
struct sockaddr_storage local_sockaddr
Definition: ucp.h:4039
size_t packed_size
Definition: ucp.h:993
Definition: ucp.h:314
Definition: ucp.h:724
uint64_t field_mask
Definition: ucp.h:1171
Definition: ucp.h:747
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:360
Definition: ucp.h:708
int event_fd
Definition: ucp.h:1329
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
Definition: ucp.h:802
void * buffer
Definition: ucp.h:856
struct ucp_listener_attr ucp_listener_attr_t
UCP listener attributes.
uint64_t field_mask
Definition: ucp.h:1402
void * user_data
Definition: ucp.h:1554
UCP worker address attributes.
Definition: ucp.h:1372
ucs_sock_addr_t sockaddr
Definition: ucp.h:1513