UCX  1.20
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),
130 };
131 
132 
143  UCP_FEATURE_TAG = UCS_BIT(0),
144 
146  UCP_FEATURE_RMA = UCS_BIT(1),
147 
149  UCP_FEATURE_AMO32 = UCS_BIT(2),
150 
152  UCP_FEATURE_AMO64 = UCS_BIT(3),
153 
155  UCP_FEATURE_WAKEUP = UCS_BIT(4),
156 
158  UCP_FEATURE_STREAM = UCS_BIT(5),
159 
161  UCP_FEATURE_AM = UCS_BIT(6),
162 
169 
171  UCP_FEATURE_DEVICE = UCS_BIT(8)
172 };
173 
174 
194 };
195 
196 
204 typedef enum {
208 
209 
222 
227 
231 };
232 
233 
242 typedef enum {
243 
249 
250 
270  UCP_EP_PARAM_FIELD_NAME = UCS_BIT(7),
272 };
273 
274 
308 };
309 
310 
317 typedef enum {
340 
341 
354 
355 
368 
369 
382 
388 
391 
394 
397 
400 };
401 
413 };
414 
415 
426 };
427 
428 
440  UCP_ATTR_FIELD_NAME = UCS_BIT(3),
442 };
443 
444 
461 };
462 
463 
474 };
475 
476 
486 };
487 
488 
499 };
500 
501 
518 };
519 
520 
531 
534 
537 };
538 
539 
547 enum {
553  UCP_MEM_MAP_NONBLOCK = UCS_BIT(0),
554 
560  UCP_MEM_MAP_ALLOCATE = UCS_BIT(1),
561 
566  UCP_MEM_MAP_FIXED = UCS_BIT(2),
567 
576 
581  UCP_MEM_MAP_LOCK = UCS_BIT(4)
582 };
583 
584 
592 enum {
597 };
598 
599 
610  UCP_AM_FLAG_WHOLE_MSG = UCS_BIT(0),
611 
619 };
620 
621 
634 
639 
643  UCP_AM_SEND_FLAG_RNDV = UCS_BIT(2),
644 
652 
657 };
658 
659 
672 };
673 
674 
682 typedef enum {
691 
692 
699 typedef enum {
707 
708 
717 typedef enum {
722  UCP_OP_ATTR_FIELD_FLAGS = UCS_BIT(4),
726  UCP_OP_ATTR_FIELD_MEMH = UCS_BIT(8),
754 } ucp_op_attr_t;
755 
756 
764 typedef enum {
770 
771 
780 typedef enum {
791 
801 
802 
827 };
828 
829 
844 #define ucp_dt_make_contig(_elem_size) \
845  (((ucp_datatype_t)(_elem_size) << UCP_DATATYPE_SHIFT) | UCP_DATATYPE_CONTIG)
846 
847 
861 #define ucp_dt_make_iov() ((ucp_datatype_t)UCP_DATATYPE_IOV)
862 
863 
875 typedef struct ucp_dt_iov {
876  void *buffer;
877  size_t length;
878 } ucp_dt_iov_t;
879 
880 
894 typedef struct ucp_generic_dt_ops {
895 
910  void* (*start_pack)(void *context, const void *buffer, size_t count);
911 
926  void* (*start_unpack)(void *context, void *buffer, size_t count);
927 
941  size_t (*packed_size)(void *state);
942 
959  size_t (*pack) (void *state, size_t offset, void *dest, size_t max_length);
960 
976  ucs_status_t (*unpack)(void *state, size_t offset, const void *src, size_t length);
977 
992  void (*finish)(void *state);
994 
995 
1002 typedef struct ucp_datatype_attr {
1008  uint64_t field_mask;
1009 
1013  size_t packed_size;
1014 
1021  const void *buffer;
1022 
1029  size_t count;
1031 
1032 
1046 typedef struct ucp_params {
1052  uint64_t field_mask;
1053 
1060  uint64_t features;
1061 
1071 
1083 
1094 
1101 
1117 
1128 
1138 
1147  const char *name;
1148 
1158 } ucp_params_t;
1159 
1160 
1167 typedef struct ucp_lib_attr {
1174  uint64_t field_mask;
1175 
1184 } ucp_lib_attr_t;
1185 
1186 
1194 typedef struct ucp_context_attr {
1201  uint64_t field_mask;
1202 
1209 
1215 
1220  uint64_t memory_types;
1221 
1226 
1232 
1233 
1241 typedef struct ucp_worker_attr {
1248  uint64_t field_mask;
1249 
1254 
1261  uint32_t address_flags;
1262 
1271 
1276 
1281 
1286 
1292 
1293 
1302 typedef struct ucp_rkey_compare_params {
1308  uint64_t field_mask;
1310 
1311 
1319 typedef struct ucp_worker_params {
1325  uint64_t field_mask;
1326 
1340 
1348  ucs_cpu_set_t cpu_mask;
1349 
1357  unsigned events;
1358 
1365  void *user_data;
1366 
1383 
1390  uint64_t flags;
1391 
1400  const char *name;
1401 
1408 
1415  uint64_t client_id;
1417 
1418 
1425 typedef struct ucp_worker_address_attr {
1432  uint64_t field_mask;
1433 
1437  uint64_t worker_uid;
1439 
1440 
1448 typedef struct {
1455  uint64_t field_mask;
1456 
1463 
1464 
1472 typedef struct {
1479  uint64_t field_mask;
1480 
1488 
1496 typedef struct ucp_listener_attr {
1503  uint64_t field_mask;
1504 
1509  struct sockaddr_storage sockaddr;
1511 
1512 
1520 typedef struct ucp_conn_request_attr {
1527  uint64_t field_mask;
1528 
1533  struct sockaddr_storage client_address;
1534 
1539  uint64_t client_id;
1541 
1542 
1550 typedef struct ucp_listener_params {
1557  uint64_t field_mask;
1558 
1567 
1575 
1589 
1590 
1597 typedef struct ucp_stream_poll_ep {
1602 
1607  void *user_data;
1608 
1612  unsigned flags;
1613 
1617  uint8_t reserved[16];
1619 
1620 
1628 typedef struct ucp_mem_map_params {
1635  uint64_t field_mask;
1636 
1647  void *address;
1648 
1656  size_t length;
1657 
1665  unsigned flags;
1666 
1674  unsigned prot;
1675 
1676  /*
1677  * Memory type (for possible memory types see @ref ucs_memory_type_t)
1678  * It is an optimization hint to avoid memory type detection for map buffer.
1679  * The meaning of this field depends on the operation type.
1680  *
1681  * - Memory allocation: (@ref UCP_MEM_MAP_ALLOCATE flag is set) This field
1682  * specifies the type of memory to allocate. If it's not set (along with its
1683  * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
1684  * @ref UCS_MEMORY_TYPE_HOST will be assumed by default.
1685  *
1686  * - Memory registration: This field specifies the type of memory which is
1687  * pointed by @ref ucp_mem_map_params.address. If it's not set (along with its
1688  * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
1689  * or set to @ref UCS_MEMORY_TYPE_UNKNOWN, the memory type will be detected
1690  * internally.
1691  */
1693 
1708 
1709 
1723  size_t length;
1724 };
1725 
1726 
1767 typedef struct {
1773  uint32_t op_attr_mask;
1774 
1775  /* Operation specific flags. */
1776  uint32_t flags;
1777 
1784  void *request;
1785 
1790  union {
1793  ucp_stream_recv_nbx_callback_t recv_stream;
1795  } cb;
1796 
1803 
1807  void *user_data;
1808 
1814 
1823 
1830  union {
1831  size_t *length; /* Length of received message in bytes.
1832  Relevant for non-tagged receive
1833  operations. */
1834  ucp_tag_recv_info_t *tag_info; /* Information about received message.
1835  Relevant for @a ucp_tag_recv_nbx
1836  function. */
1837  } recv_info;
1838 
1847 
1849 
1850 
1855 typedef struct {
1861  uint64_t field_mask;
1862 
1869 
1876 
1881 
1887 
1888 
1894 typedef struct ucp_am_handler_param {
1900  uint64_t field_mask;
1901 
1906  unsigned id;
1907 
1911  uint32_t flags;
1912 
1918 
1923  void *arg;
1925 
1926 
1937  uint64_t recv_attr;
1938 
1943 };
1944 
1945 
1957 
1958 
1985 ucs_status_t ucp_config_read(const char *env_prefix, const char *filename,
1986  ucp_config_t **config_p);
1987 
1988 
1999 void ucp_config_release(ucp_config_t *config);
2000 
2001 
2015 ucs_status_t ucp_config_modify(ucp_config_t *config, const char *name,
2016  const char *value);
2017 
2018 
2034 void ucp_config_print(const ucp_config_t *config, FILE *stream,
2035  const char *title, ucs_config_print_flags_t print_flags);
2036 
2037 
2048 void ucp_get_version(unsigned *major_version, unsigned *minor_version,
2049  unsigned *release_number);
2050 
2051 
2059 const char *ucp_get_version_string(void);
2060 
2061 
2070 ucs_status_t ucp_init_version(unsigned api_major_version, unsigned api_minor_version,
2071  const ucp_params_t *params, const ucp_config_t *config,
2072  ucp_context_h *context_p);
2111 static inline ucs_status_t ucp_init(const ucp_params_t *params,
2112  const ucp_config_t *config,
2113  ucp_context_h *context_p)
2114 {
2115  return ucp_init_version(UCP_API_MAJOR, UCP_API_MINOR, params, config,
2116  context_p);
2117 }
2118 
2119 
2137 void ucp_cleanup(ucp_context_h context_p);
2138 
2139 
2154  ucp_context_attr_t *attr);
2155 
2156 
2178 ucp_rkey_compare(ucp_worker_h worker, ucp_rkey_h rkey1, ucp_rkey_h rkey2,
2179  const ucp_rkey_compare_params_t *params, int *result);
2180 
2181 
2193 void ucp_context_print_info(const ucp_context_h context, FILE *stream);
2194 
2195 
2220  const ucp_worker_params_t *params,
2221  ucp_worker_h *worker_p);
2222 
2223 
2239 void ucp_worker_destroy(ucp_worker_h worker);
2240 
2241 
2254  ucp_worker_attr_t *attr);
2255 
2256 
2267 void ucp_worker_print_info(ucp_worker_h worker, FILE *stream);
2268 
2269 
2290 
2291 
2306 
2307 
2327 unsigned ucp_worker_progress(ucp_worker_h worker);
2328 
2329 
2350 ssize_t ucp_stream_worker_poll(ucp_worker_h worker,
2351  ucp_stream_poll_ep_t *poll_eps, size_t max_eps,
2352  unsigned flags);
2353 
2354 
2386 
2387 
2417 
2418 
2442 void ucp_worker_wait_mem(ucp_worker_h worker, void *address);
2443 
2444 
2515 
2516 
2536 
2537 
2564  const ucp_listener_params_t *params,
2565  ucp_listener_h *listener_p);
2566 
2567 
2577 void ucp_listener_destroy(ucp_listener_h listener);
2578 
2579 
2592 
2593 
2607  ucp_conn_request_attr_t *attr);
2608 
2609 
2619 ucs_status_t ucp_request_query(void *request, ucp_request_attr_t *attr);
2620 
2621 
2655  ucp_ep_h *ep_p);
2656 
2657 
2681  const ucp_request_param_t *param);
2682 
2683 
2701  ucp_conn_request_h conn_request);
2702 
2703 
2714 void ucp_ep_print_info(ucp_ep_h ep, FILE *stream);
2715 
2716 
2766 
2767 
2782  const ucp_ep_evaluate_perf_param_t *param,
2784 
2785 
2861  ucp_mem_h *memh_p);
2862 
2863 
2892 
2893 
2908 
2909 
2926 void ucp_mem_print_info(const char *mem_spec, ucp_context_h context,
2927  FILE *stream);
2928 
2929 
2937 typedef enum ucp_mem_advice {
2944 
2945 
2954 typedef struct ucp_mem_advise_params {
2960  uint64_t field_mask;
2961 
2965  void *address;
2966 
2970  size_t length;
2971 
2977 
2978 
2999  ucp_mem_advise_params_t *params);
3000 
3001 
3016 };
3017 
3018 
3036 };
3037 
3038 
3047 typedef struct ucp_memh_pack_params {
3053  uint64_t field_mask;
3054 
3058  uint64_t flags;
3060 
3061 
3096 ucp_memh_pack(ucp_mem_h memh, const ucp_memh_pack_params_t *params,
3097  void **buffer_p, size_t *buffer_size_p);
3098 
3099 
3114  uint64_t field_mask;
3116 
3117 
3136 void ucp_memh_buffer_release(void *buffer,
3137  const ucp_memh_buffer_release_params_t *params);
3138 
3139 
3162 ucs_status_t ucp_ep_rkey_unpack(ucp_ep_h ep, const void *rkey_buffer,
3163  ucp_rkey_h *rkey_p);
3164 
3165 
3185 ucs_status_t ucp_rkey_ptr(ucp_rkey_h rkey, uint64_t raddr, void **addr_p);
3186 
3187 
3209 void ucp_rkey_destroy(ucp_rkey_h rkey);
3210 
3211 
3233  const ucp_am_handler_param_t *param);
3234 
3235 
3288 ucs_status_ptr_t ucp_am_send_nbx(ucp_ep_h ep, unsigned id,
3289  const void *header, size_t header_length,
3290  const void *buffer, size_t count,
3291  const ucp_request_param_t *param);
3292 
3293 
3340 ucs_status_ptr_t ucp_am_recv_data_nbx(ucp_worker_h worker, void *data_desc,
3341  void *buffer, size_t count,
3342  const ucp_request_param_t *param);
3343 
3344 
3357 void ucp_am_data_release(ucp_worker_h worker, void *data);
3358 
3359 
3386 ucs_status_ptr_t ucp_stream_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3387  const ucp_request_param_t *param);
3388 
3389 
3428 ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3429  ucp_tag_t tag, const ucp_request_param_t *param);
3430 
3431 
3461  size_t count, ucp_tag_t tag,
3462  const ucp_request_param_t *param);
3463 
3464 
3500 ucs_status_ptr_t ucp_stream_recv_nbx(ucp_ep_h ep, void *buffer, size_t count,
3501  size_t *length,
3502  const ucp_request_param_t *param);
3503 
3504 
3538 
3539 
3577 ucs_status_ptr_t ucp_tag_recv_nbx(ucp_worker_h worker, void *buffer, size_t count,
3578  ucp_tag_t tag, ucp_tag_t tag_mask,
3579  const ucp_request_param_t *param);
3580 
3581 
3623  ucp_tag_t tag_mask, int remove,
3624  ucp_tag_recv_info_t *info);
3625 
3626 
3658  size_t count, ucp_tag_message_h message,
3659  const ucp_request_param_t *param);
3660 
3661 
3715 ucs_status_ptr_t ucp_put_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3716  uint64_t remote_addr, ucp_rkey_h rkey,
3717  const ucp_request_param_t *param);
3718 
3719 
3772 ucs_status_ptr_t ucp_get_nbx(ucp_ep_h ep, void *buffer, size_t count,
3773  uint64_t remote_addr, ucp_rkey_h rkey,
3774  const ucp_request_param_t *param);
3775 
3776 
3847 ucp_atomic_op_nbx(ucp_ep_h ep, ucp_atomic_op_t opcode, const void *buffer,
3848  size_t count, uint64_t remote_addr, ucp_rkey_h rkey,
3849  const ucp_request_param_t *param);
3850 
3851 
3864 ucs_status_t ucp_request_check_status(void *request);
3865 
3866 
3884 
3885 
3903 ucs_status_t ucp_stream_recv_request_test(void *request, size_t *length_p);
3904 
3905 
3925 void ucp_request_cancel(ucp_worker_h worker, void *request);
3926 
3927 
3940 void ucp_stream_data_release(ucp_ep_h ep, void *data);
3941 
3942 
3954 void ucp_request_free(void *request);
3955 
3956 
3979 ucs_status_t ucp_dt_create_generic(const ucp_generic_dt_ops_t *ops, void *context,
3980  ucp_datatype_t *datatype_p);
3981 
3982 
3998 void ucp_dt_destroy(ucp_datatype_t datatype);
3999 
4000 
4015 
4016 
4040 
4041 
4068  const ucp_request_param_t *param);
4069 
4070 
4079  UCP_EP_ATTR_FIELD_NAME = UCS_BIT(0),
4084 };
4085 
4086 
4094 typedef struct ucp_ep_attr {
4101  uint64_t field_mask;
4102 
4108 
4115  struct sockaddr_storage local_sockaddr;
4116 
4123  struct sockaddr_storage remote_sockaddr;
4124 
4131 
4136  void *user_data;
4137 } ucp_ep_attr_t;
4138 
4139 
4152 
4153 
4162 END_C_DECLS
4163 
4164 #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:4101
ucp_listener_params_field
UCP listener parameters field mask.
Definition: ucp.h:217
size_t estimated_num_eps
Definition: ucp.h:1127
Definition: ucp.h:122
Definition: ucp.h:387
Tuning parameters for the UCP endpoint.
Definition: ucp_def.h:683
Definition: ucp.h:509
uint32_t flags
Definition: ucp.h:1911
ucs_status_t status
Definition: ucp.h:1880
Definition: ucp.h:688
size_t am_alignment
Definition: ucp.h:1407
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:764
Definition: ucp.h:593
ucp_memh_pack_params_field
UCP memory handle packing parameters field mask.
Definition: ucp.h:3010
uint64_t field_mask
Definition: ucp.h:3053
ucp_mem_map_params_field
UCP memory mapping parameters field mask.
Definition: ucp.h:377
UCP receive information descriptor.
Definition: ucp.h:1719
uint64_t field_mask
Definition: ucp.h:2960
struct ucp_mem * ucp_mem_h
UCP Memory handle.
Definition: ucp_def.h:167
Definition: ucp.h:726
#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:606
Definition: ucp.h:184
Definition: ucp.h:553
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.
Tuning parameters for the comparison function ucp_rkey_compare.
Definition: ucp.h:1302
uint64_t ucp_datatype_t
UCP Datatype Identifier.
Definition: ucp_def.h:278
Definition: ucp.h:643
Attributes of a particular request.
Definition: ucp.h:1855
uint64_t field_mask
Definition: ucp.h:1503
Definition: ucp.h:734
Definition: ucp.h:514
Definition: ucp.h:724
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:266
Definition: ucp.h:143
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:1093
uint32_t op_attr_mask
Definition: ucp.h:1773
Tuning parameters for the UCP worker.
Definition: ucp.h:1319
Definition: ucp.h:124
Definition: ucp.h:566
ucp_am_recv_attr_t
UCP AM receive data parameter fields and flags.
Definition: ucp.h:780
ucp_tag_t sender_tag
Definition: ucp.h:1721
Definition: ucp.h:684
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.
size_t node_local_id
Definition: ucp.h:1157
Memory handle release parameters passed to ucp_memh_buffer_release.
Definition: ucp.h:3109
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:1587
Lib attributes.
Definition: ucp.h:1167
Definition: ucp.h:720
Definition: ucp.h:510
Structure containing an array of transport layers and device names used by an endpoint.
Definition: ucp_def.h:846
Definition: ucp.h:511
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:596
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:725
ucp_datatype_attr_field
UCP datatype attributes field mask.
Definition: ucp.h:528
Definition: ucp.h:533
uint64_t field_mask
Definition: ucp.h:1052
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:1784
size_t device_counter_size
Definition: ucp.h:1230
Definition: ucp.h:129
Definition: ucp.h:651
Definition: ucp.h:187
struct ucp_dt_iov ucp_dt_iov_t
Structure for scatter-gather I/O.
Definition: ucp.h:781
struct ucp_listener * ucp_listener_h
UCP listen handle.
Definition: ucp_def.h:177
ucs_thread_mode_t thread_mode
Definition: ucp.h:1253
Definition: ucp.h:618
uint64_t client_id
Definition: ucp.h:1415
void(* ucp_request_cleanup_callback_t)(void *request)
Request cleanup callback.
Definition: ucp_def.h:301
uint64_t client_id
Definition: ucp.h:1539
uint32_t flags
Definition: ucp.h:1776
Tuning parameters for the UCP memory mapping.
Definition: ucp.h:1628
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:1612
Definition: ucp.h:826
uint64_t field_mask
Definition: ucp.h:3114
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:1147
Definition: ucp.h:799
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:1270
void ucp_cleanup(ucp_context_h context_p)
Release UCP application context.
Definition: ucp.h:594
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:472
ucp_worker_params_field
UCP worker parameters field mask.
Definition: ucp.h:182
unsigned events
Definition: ucp.h:1357
ucs_thread_mode_t max_thread_level
Definition: ucp.h:1183
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:1665
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:158
Definition: ucp.h:458
Definition: ucp.h:814
size_t max_debug_string
Definition: ucp.h:1290
Definition: ucp.h:270
ucp_context_attr_field
UCP context attributes field mask.
Definition: ucp.h:436
size_t estimated_num_ppn
Definition: ucp.h:1137
ucp_ep_h reply_ep
Definition: ucp.h:1942
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:2938
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:484
void ucp_request_cancel(ucp_worker_h worker, void *request)
Cancel an outstanding communications request.
UCP endpoint performance evaluation result attributes.
Definition: ucp.h:1472
ucs_status_t ucp_worker_wait(ucp_worker_h worker)
Wait for an event of the worker.
Definition: ucp.h:575
ucs_memory_type_t mem_type
Definition: ucp.h:1885
Definition: ucp_compat.h:23
ucp_mem_h memh
Definition: ucp.h:1846
unsigned id
Definition: ucp.h:1906
size_t length
Definition: ucp.h:877
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:1647
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:1461
uint64_t features
Definition: ucp.h:1060
uint64_t field_mask
Definition: ucp.h:1557
void(* ucp_request_init_callback_t)(void *request)
Request initialization callback.
Definition: ucp_def.h:289
const char * name
Definition: ucp.h:1400
struct ucp_rkey_compare_params ucp_rkey_compare_params_t
Tuning parameters for the comparison function ucp_rkey_compare.
const void * exported_memh_buffer
Definition: ucp.h:1706
Definition: ucp.h:390
Definition: ucp.h:633
Definition: ucp.h:4081
Definition: ucp.h:700
unsigned prot
Definition: ucp.h:1674
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:1601
uint64_t flags
Definition: ucp.h:1390
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:516
Definition: ucp.h:790
UCP endpoint attributes.
Definition: ucp.h:4094
struct ucp_conn_request_attr ucp_conn_request_attr_t
UCP listener&#39;s connection request attributes.
uint64_t worker_uid
Definition: ucp.h:1437
size_t max_am_header
Definition: ucp.h:1280
size_t address_length
Definition: ucp.h:1275
ucs_status_t
Status codes.
Definition: status.h:45
ucp_mem_advise_params_field
UCP memory advice parameters field mask.
Definition: ucp.h:409
struct ucp_lib_attr ucp_lib_attr_t
Lib attributes.
Definition: ucp.h:161
Definition: ucp.h:439
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:1597
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:438
UCP datatype attributes.
Definition: ucp.h:1002
uint64_t field_mask
Definition: ucp.h:1308
size_t length
Definition: ucp.h:1723
Definition: ucp.h:768
ucp_ep_perf_param_field
UCP performance fields and flags.
Definition: ucp.h:350
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:1174
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:1082
Definition: ucp.h:723
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:748
Definition: ucp.h:149
uint64_t memory_types
Definition: ucp.h:1220
Definition: ucp.h:128
Definition: ucp.h:4079
uint64_t field_mask
Definition: ucp.h:1527
UCP generic data type descriptor.
Definition: ucp.h:894
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:670
struct ucp_config ucp_config_t
UCP configuration descriptor.
Definition: ucp_def.h:77
Definition: ucp.h:671
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:1656
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:3015
Definition: ucp.h:454
Operation parameters provided in ucp_am_recv_callback_t callback.
Definition: ucp.h:1931
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:2975
Definition: ucp.h:721
Definition: ucp.h:687
ucp_ep_params_field
UCP endpoint parameters field mask.
Definition: ucp.h:258
ucp_stream_recv_flags_t
Flags to define behavior of ucp_stream_recv_nb function.
Definition: ucp.h:699
Memory handle pack parameters passed to ucp_memh_pack.
Definition: ucp.h:3047
Definition: ucp.h:722
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:381
Definition: ucp.h:393
enum ucp_ep_perf_attr_field ucp_ep_perf_attr_field_t
UCP performance fields and flags.
Definition: ucp.h:185
enum ucp_mem_advice ucp_mem_advice_t
list of UCP memory use advice.
ucs_status_t ucp_rkey_compare(ucp_worker_h worker, ucp_rkey_h rkey1, ucp_rkey_h rkey2, const ucp_rkey_compare_params_t *params, int *result)
Compare two remote keys.
uint64_t recv_attr
Definition: ucp.h:1937
uint64_t tag_sender_mask
Definition: ucp.h:1100
void * arg
Definition: ucp.h:1923
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:269
UCP listener&#39;s connection request attributes.
Definition: ucp.h:1520
Definition: ucp.h:719
void ucp_config_release(ucp_config_t *config)
Release configuration descriptor.
Definition: ucp.h:718
Definition: ucp.h:3035
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:810
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:1325
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:682
struct ucp_stream_poll_ep ucp_stream_poll_ep_t
Output parameter of ucp_stream_worker_poll function.
char * debug_string
Definition: ucp.h:1868
Definition: ucp.h:267
uint64_t field_mask
Definition: ucp.h:1432
Definition: ucp.h:656
Definition: ucp.h:581
enum ucs_memory_type ucs_memory_type_t
Memory types.
uint64_t field_mask
Definition: ucp.h:1900
Definition: ucp.h:610
Definition: ucp.h:440
ucp_feature
UCP configuration features.
Definition: ucp.h:141
uint64_t field_mask
Definition: ucp.h:1479
Structure for scatter-gather I/O.
Definition: ucp.h:875
Context attributes.
Definition: ucp.h:1194
Definition: ucp.h:512
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:437
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:3026
ucp_send_am_flags
Flags for sending a UCP Active Message.
Definition: ucp.h:629
Definition: ucp.h:265
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:2111
double estimated_time
Definition: ucp.h:1486
ucp_am_recv_callback_t cb
Definition: ucp.h:1917
uint64_t ucp_tag_t
UCP Tag Identifier.
Definition: ucp_def.h:257
Definition: ucp.h:683
const void * buffer
Definition: ucp.h:1021
UCP listener attributes.
Definition: ucp.h:1496
ucp_op_attr_t
UCP operation fields and flags.
Definition: ucp.h:717
uint64_t field_mask
Definition: ucp.h:1635
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:4078
void * user_data
Definition: ucp.h:1807
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:1241
Definition: ucp.h:168
Definition: ucp.h:189
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:1692
void * reply_buffer
Definition: ucp.h:1813
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:689
Tuning parameters for UCP library.
Definition: ucp.h:1046
Definition: ucp.h:152
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:686
ucp_worker_address_flags_t
UCP worker address flags.
Definition: ucp.h:242
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:2954
Definition: ucp.h:155
void ucp_worker_print_info(ucp_worker_h worker, FILE *stream)
Print information about the worker.
uint64_t field_mask
Definition: ucp.h:1248
Parameters for a UCP listener object.
Definition: ucp.h:1550
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:1894
UCP endpoint performance evaluation request attributes.
Definition: ucp.h:1448
uint64_t field_mask
Definition: ucp.h:1861
int mt_workers_shared
Definition: ucp.h:1116
ucs_memory_type_t memory_type
Definition: ucp.h:1822
size_t debug_string_size
Definition: ucp.h:1875
Definition: ucp.h:4082
Definition: ucp.h:123
Definition: ucp.h:4080
ucp_worker_attr_field
UCP worker attributes field mask.
Definition: ucp.h:452
ucp_conn_request_attr_field
UCP listener&#39;s connection request attributes field mask.
Definition: ucp.h:496
ucp_listener_accept_handler_t accept_handler
Definition: ucp.h:1574
ucp_ep_close_flags_t
Close UCP endpoint modes.
Definition: ucp.h:317
size_t count
Definition: ucp.h:1029
ucs_status_t ucp_lib_query(ucp_lib_attr_t *attr)
Get attributes of the UCP library.
Definition: ucp.h:4083
size_t length
Definition: ucp.h:2970
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:291
Definition: types.h:151
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:4130
struct ucp_mem_map_params ucp_mem_map_params_t
Tuning parameters for the UCP memory mapping.
void * address
Definition: ucp.h:2965
Definition: ucp.h:536
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:3058
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:638
uint32_t address_flags
Definition: ucp.h:1261
Definition: ucp.h:560
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:1767
Definition: ucp.h:685
ucp_worker_flags_t
UCP worker flags.
Definition: ucp.h:204
size_t request_size
Definition: ucp.h:1208
ucs_thread_mode_t thread_mode
Definition: ucp.h:1214
ucs_cpu_set_t cpu_mask
Definition: ucp.h:1348
ucs_thread_mode_t thread_mode
Definition: ucp.h:1339
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:2937
void * user_data
Definition: ucp.h:1365
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:423
Definition: ucp.h:2939
Definition: ucp.h:595
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:1008
ucp_dt_type
UCP data type classification.
Definition: ucp.h:508
void * user_data
Definition: ucp.h:4136
struct ucp_generic_dt_ops ucp_generic_dt_ops_t
UCP generic data type descriptor.
Definition: ucp.h:146
struct ucp_worker_address_attr ucp_worker_address_attr_t
UCP worker address attributes.
Definition: ucp.h:171
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:190
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:1802
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:1070
Definition: ucp.h:263
size_t packed_size
Definition: ucp.h:1013
Definition: ucp.h:318
Definition: ucp.h:744
uint64_t field_mask
Definition: ucp.h:1201
Definition: ucp.h:767
ucp_ep_params_flags_field
UCP endpoint parameters flags.
Definition: ucp.h:282
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:364
Definition: ucp.h:728
int event_fd
Definition: ucp.h:1382
Definition: ucp.h:822
void * buffer
Definition: ucp.h:876
struct ucp_listener_attr ucp_listener_attr_t
UCP listener attributes.
uint64_t field_mask
Definition: ucp.h:1455
void * user_data
Definition: ucp.h:1607
UCP worker address attributes.
Definition: ucp.h:1425
ucs_sock_addr_t sockaddr
Definition: ucp.h:1566