UCX  1.18
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 
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 
571 
576  UCP_MEM_MAP_LOCK = UCS_BIT(4)
577 };
578 
579 
587 enum {
592 };
593 
594 
605  UCP_AM_FLAG_WHOLE_MSG = UCS_BIT(0),
606 
614 };
615 
616 
629 
634 
638  UCP_AM_SEND_FLAG_RNDV = UCS_BIT(2),
639 
647 
652 };
653 
654 
667 };
668 
669 
677 typedef enum {
686 
687 
694 typedef enum {
702 
703 
712 typedef enum {
717  UCP_OP_ATTR_FIELD_FLAGS = UCS_BIT(4),
721  UCP_OP_ATTR_FIELD_MEMH = UCS_BIT(8),
749 } ucp_op_attr_t;
750 
751 
759 typedef enum {
765 
766 
775 typedef enum {
786 
796 
797 
822 };
823 
824 
839 #define ucp_dt_make_contig(_elem_size) \
840  (((ucp_datatype_t)(_elem_size) << UCP_DATATYPE_SHIFT) | UCP_DATATYPE_CONTIG)
841 
842 
856 #define ucp_dt_make_iov() ((ucp_datatype_t)UCP_DATATYPE_IOV)
857 
858 
870 typedef struct ucp_dt_iov {
871  void *buffer;
872  size_t length;
873 } ucp_dt_iov_t;
874 
875 
889 typedef struct ucp_generic_dt_ops {
890 
905  void* (*start_pack)(void *context, const void *buffer, size_t count);
906 
921  void* (*start_unpack)(void *context, void *buffer, size_t count);
922 
936  size_t (*packed_size)(void *state);
937 
954  size_t (*pack) (void *state, size_t offset, void *dest, size_t max_length);
955 
971  ucs_status_t (*unpack)(void *state, size_t offset, const void *src, size_t length);
972 
987  void (*finish)(void *state);
989 
990 
997 typedef struct ucp_datatype_attr {
1003  uint64_t field_mask;
1004 
1008  size_t packed_size;
1009 
1016  const void *buffer;
1017 
1024  size_t count;
1026 
1027 
1041 typedef struct ucp_params {
1047  uint64_t field_mask;
1048 
1055  uint64_t features;
1056 
1066 
1078 
1089 
1096 
1112 
1123 
1133 
1142  const char *name;
1143 } ucp_params_t;
1144 
1145 
1152 typedef struct ucp_lib_attr {
1159  uint64_t field_mask;
1160 
1169 } ucp_lib_attr_t;
1170 
1171 
1179 typedef struct ucp_context_attr {
1186  uint64_t field_mask;
1187 
1194 
1200 
1205  uint64_t memory_types;
1206 
1212 
1213 
1221 typedef struct ucp_worker_attr {
1228  uint64_t field_mask;
1229 
1234 
1241  uint32_t address_flags;
1242 
1251 
1256 
1261 
1266 
1272 
1273 
1282 typedef struct ucp_rkey_compare_params {
1288  uint64_t field_mask;
1290 
1291 
1299 typedef struct ucp_worker_params {
1305  uint64_t field_mask;
1306 
1320 
1328  ucs_cpu_set_t cpu_mask;
1329 
1337  unsigned events;
1338 
1345  void *user_data;
1346 
1363 
1370  uint64_t flags;
1371 
1380  const char *name;
1381 
1388 
1395  uint64_t client_id;
1397 
1398 
1405 typedef struct ucp_worker_address_attr {
1412  uint64_t field_mask;
1413 
1417  uint64_t worker_uid;
1419 
1420 
1428 typedef struct {
1435  uint64_t field_mask;
1436 
1443 
1444 
1452 typedef struct {
1459  uint64_t field_mask;
1460 
1468 
1476 typedef struct ucp_listener_attr {
1483  uint64_t field_mask;
1484 
1489  struct sockaddr_storage sockaddr;
1491 
1492 
1500 typedef struct ucp_conn_request_attr {
1507  uint64_t field_mask;
1508 
1513  struct sockaddr_storage client_address;
1514 
1519  uint64_t client_id;
1521 
1522 
1530 typedef struct ucp_listener_params {
1537  uint64_t field_mask;
1538 
1547 
1555 
1569 
1570 
1577 typedef struct ucp_stream_poll_ep {
1582 
1587  void *user_data;
1588 
1592  unsigned flags;
1593 
1597  uint8_t reserved[16];
1599 
1600 
1608 typedef struct ucp_mem_map_params {
1615  uint64_t field_mask;
1616 
1627  void *address;
1628 
1636  size_t length;
1637 
1645  unsigned flags;
1646 
1654  unsigned prot;
1655 
1656  /*
1657  * Memory type (for possible memory types see @ref ucs_memory_type_t)
1658  * It is an optimization hint to avoid memory type detection for map buffer.
1659  * The meaning of this field depends on the operation type.
1660  *
1661  * - Memory allocation: (@ref UCP_MEM_MAP_ALLOCATE flag is set) This field
1662  * specifies the type of memory to allocate. If it's not set (along with its
1663  * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
1664  * @ref UCS_MEMORY_TYPE_HOST will be assumed by default.
1665  *
1666  * - Memory registration: This field specifies the type of memory which is
1667  * pointed by @ref ucp_mem_map_params.address. If it's not set (along with its
1668  * corresponding bit in the field_mask - @ref UCP_MEM_MAP_PARAM_FIELD_MEMORY_TYPE),
1669  * or set to @ref UCS_MEMORY_TYPE_UNKNOWN, the memory type will be detected
1670  * internally.
1671  */
1673 
1688 
1689 
1703  size_t length;
1704 };
1705 
1706 
1747 typedef struct {
1753  uint32_t op_attr_mask;
1754 
1755  /* Operation specific flags. */
1756  uint32_t flags;
1757 
1764  void *request;
1765 
1770  union {
1773  ucp_stream_recv_nbx_callback_t recv_stream;
1775  } cb;
1776 
1783 
1787  void *user_data;
1788 
1794 
1803 
1810  union {
1811  size_t *length; /* Length of received message in bytes.
1812  Relevant for non-tagged receive
1813  operations. */
1814  ucp_tag_recv_info_t *tag_info; /* Information about received message.
1815  Relevant for @a ucp_tag_recv_nbx
1816  function. */
1817  } recv_info;
1818 
1827 
1829 
1830 
1835 typedef struct {
1841  uint64_t field_mask;
1842 
1849 
1856 
1861 
1867 
1868 
1874 typedef struct ucp_am_handler_param {
1880  uint64_t field_mask;
1881 
1886  unsigned id;
1887 
1891  uint32_t flags;
1892 
1898 
1903  void *arg;
1905 
1906 
1917  uint64_t recv_attr;
1918 
1923 };
1924 
1925 
1937 
1938 
1965 ucs_status_t ucp_config_read(const char *env_prefix, const char *filename,
1966  ucp_config_t **config_p);
1967 
1968 
1979 void ucp_config_release(ucp_config_t *config);
1980 
1981 
1995 ucs_status_t ucp_config_modify(ucp_config_t *config, const char *name,
1996  const char *value);
1997 
1998 
2014 void ucp_config_print(const ucp_config_t *config, FILE *stream,
2015  const char *title, ucs_config_print_flags_t print_flags);
2016 
2017 
2028 void ucp_get_version(unsigned *major_version, unsigned *minor_version,
2029  unsigned *release_number);
2030 
2031 
2039 const char *ucp_get_version_string(void);
2040 
2041 
2050 ucs_status_t ucp_init_version(unsigned api_major_version, unsigned api_minor_version,
2051  const ucp_params_t *params, const ucp_config_t *config,
2052  ucp_context_h *context_p);
2091 static inline ucs_status_t ucp_init(const ucp_params_t *params,
2092  const ucp_config_t *config,
2093  ucp_context_h *context_p)
2094 {
2095  return ucp_init_version(UCP_API_MAJOR, UCP_API_MINOR, params, config,
2096  context_p);
2097 }
2098 
2099 
2117 void ucp_cleanup(ucp_context_h context_p);
2118 
2119 
2134  ucp_context_attr_t *attr);
2135 
2136 
2158 ucp_rkey_compare(ucp_worker_h worker, ucp_rkey_h rkey1, ucp_rkey_h rkey2,
2159  const ucp_rkey_compare_params_t *params, int *result);
2160 
2161 
2173 void ucp_context_print_info(const ucp_context_h context, FILE *stream);
2174 
2175 
2200  const ucp_worker_params_t *params,
2201  ucp_worker_h *worker_p);
2202 
2203 
2219 void ucp_worker_destroy(ucp_worker_h worker);
2220 
2221 
2234  ucp_worker_attr_t *attr);
2235 
2236 
2247 void ucp_worker_print_info(ucp_worker_h worker, FILE *stream);
2248 
2249 
2270 
2271 
2286 
2287 
2307 unsigned ucp_worker_progress(ucp_worker_h worker);
2308 
2309 
2330 ssize_t ucp_stream_worker_poll(ucp_worker_h worker,
2331  ucp_stream_poll_ep_t *poll_eps, size_t max_eps,
2332  unsigned flags);
2333 
2334 
2366 
2367 
2397 
2398 
2422 void ucp_worker_wait_mem(ucp_worker_h worker, void *address);
2423 
2424 
2495 
2496 
2516 
2517 
2544  const ucp_listener_params_t *params,
2545  ucp_listener_h *listener_p);
2546 
2547 
2557 void ucp_listener_destroy(ucp_listener_h listener);
2558 
2559 
2572 
2573 
2587  ucp_conn_request_attr_t *attr);
2588 
2589 
2599 ucs_status_t ucp_request_query(void *request, ucp_request_attr_t *attr);
2600 
2601 
2635  ucp_ep_h *ep_p);
2636 
2637 
2661  const ucp_request_param_t *param);
2662 
2663 
2681  ucp_conn_request_h conn_request);
2682 
2683 
2694 void ucp_ep_print_info(ucp_ep_h ep, FILE *stream);
2695 
2696 
2746 
2747 
2762  const ucp_ep_evaluate_perf_param_t *param,
2764 
2765 
2841  ucp_mem_h *memh_p);
2842 
2843 
2872 
2873 
2888 
2889 
2906 void ucp_mem_print_info(const char *mem_spec, ucp_context_h context,
2907  FILE *stream);
2908 
2909 
2917 typedef enum ucp_mem_advice {
2924 
2925 
2934 typedef struct ucp_mem_advise_params {
2940  uint64_t field_mask;
2941 
2945  void *address;
2946 
2950  size_t length;
2951 
2957 
2958 
2979  ucp_mem_advise_params_t *params);
2980 
2981 
2996 };
2997 
2998 
3016 };
3017 
3018 
3027 typedef struct ucp_memh_pack_params {
3033  uint64_t field_mask;
3034 
3038  uint64_t flags;
3040 
3041 
3076 ucp_memh_pack(ucp_mem_h memh, const ucp_memh_pack_params_t *params,
3077  void **buffer_p, size_t *buffer_size_p);
3078 
3079 
3094  uint64_t field_mask;
3096 
3097 
3116 void ucp_memh_buffer_release(void *buffer,
3117  const ucp_memh_buffer_release_params_t *params);
3118 
3119 
3142 ucs_status_t ucp_ep_rkey_unpack(ucp_ep_h ep, const void *rkey_buffer,
3143  ucp_rkey_h *rkey_p);
3144 
3145 
3165 ucs_status_t ucp_rkey_ptr(ucp_rkey_h rkey, uint64_t raddr, void **addr_p);
3166 
3167 
3189 void ucp_rkey_destroy(ucp_rkey_h rkey);
3190 
3191 
3213  const ucp_am_handler_param_t *param);
3214 
3215 
3268 ucs_status_ptr_t ucp_am_send_nbx(ucp_ep_h ep, unsigned id,
3269  const void *header, size_t header_length,
3270  const void *buffer, size_t count,
3271  const ucp_request_param_t *param);
3272 
3273 
3320 ucs_status_ptr_t ucp_am_recv_data_nbx(ucp_worker_h worker, void *data_desc,
3321  void *buffer, size_t count,
3322  const ucp_request_param_t *param);
3323 
3324 
3337 void ucp_am_data_release(ucp_worker_h worker, void *data);
3338 
3339 
3366 ucs_status_ptr_t ucp_stream_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3367  const ucp_request_param_t *param);
3368 
3369 
3408 ucs_status_ptr_t ucp_tag_send_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3409  ucp_tag_t tag, const ucp_request_param_t *param);
3410 
3411 
3440 ucs_status_ptr_t ucp_tag_send_sync_nbx(ucp_ep_h ep, const void *buffer,
3441  size_t count, ucp_tag_t tag,
3442  const ucp_request_param_t *param);
3443 
3444 
3480 ucs_status_ptr_t ucp_stream_recv_nbx(ucp_ep_h ep, void *buffer, size_t count,
3481  size_t *length,
3482  const ucp_request_param_t *param);
3483 
3484 
3518 
3519 
3557 ucs_status_ptr_t ucp_tag_recv_nbx(ucp_worker_h worker, void *buffer, size_t count,
3558  ucp_tag_t tag, ucp_tag_t tag_mask,
3559  const ucp_request_param_t *param);
3560 
3561 
3603  ucp_tag_t tag_mask, int remove,
3604  ucp_tag_recv_info_t *info);
3605 
3606 
3638  size_t count, ucp_tag_message_h message,
3639  const ucp_request_param_t *param);
3640 
3641 
3695 ucs_status_ptr_t ucp_put_nbx(ucp_ep_h ep, const void *buffer, size_t count,
3696  uint64_t remote_addr, ucp_rkey_h rkey,
3697  const ucp_request_param_t *param);
3698 
3699 
3752 ucs_status_ptr_t ucp_get_nbx(ucp_ep_h ep, void *buffer, size_t count,
3753  uint64_t remote_addr, ucp_rkey_h rkey,
3754  const ucp_request_param_t *param);
3755 
3756 
3824 ucp_atomic_op_nbx(ucp_ep_h ep, ucp_atomic_op_t opcode, const void *buffer,
3825  size_t count, uint64_t remote_addr, ucp_rkey_h rkey,
3826  const ucp_request_param_t *param);
3827 
3828 
3841 ucs_status_t ucp_request_check_status(void *request);
3842 
3843 
3861 
3862 
3880 ucs_status_t ucp_stream_recv_request_test(void *request, size_t *length_p);
3881 
3882 
3902 void ucp_request_cancel(ucp_worker_h worker, void *request);
3903 
3904 
3917 void ucp_stream_data_release(ucp_ep_h ep, void *data);
3918 
3919 
3931 void ucp_request_free(void *request);
3932 
3933 
3947 void *ucp_request_alloc(ucp_worker_h worker);
3948 
3949 
3972 ucs_status_t ucp_dt_create_generic(const ucp_generic_dt_ops_t *ops, void *context,
3973  ucp_datatype_t *datatype_p);
3974 
3975 
3991 void ucp_dt_destroy(ucp_datatype_t datatype);
3992 
3993 
4008 
4009 
4033 
4034 
4061  const ucp_request_param_t *param);
4062 
4063 
4072  UCP_EP_ATTR_FIELD_NAME = UCS_BIT(0),
4077 };
4078 
4079 
4087 typedef struct ucp_ep_attr {
4094  uint64_t field_mask;
4095 
4101 
4108  struct sockaddr_storage local_sockaddr;
4109 
4116  struct sockaddr_storage remote_sockaddr;
4117 
4124 
4129  void *user_data;
4130 } ucp_ep_attr_t;
4131 
4132 
4145 
4146 
4155 END_C_DECLS
4156 
4157 #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:4094
ucp_listener_params_field
UCP listener parameters field mask.
Definition: ucp.h:213
size_t estimated_num_eps
Definition: ucp.h:1122
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:1891
ucs_status_t status
Definition: ucp.h:1860
Definition: ucp.h:683
size_t am_alignment
Definition: ucp.h:1387
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:759
Definition: ucp.h:588
ucp_memh_pack_params_field
UCP memory handle packing parameters field mask.
Definition: ucp.h:2990
uint64_t field_mask
Definition: ucp.h:3033
ucp_mem_map_params_field
UCP memory mapping parameters field mask.
Definition: ucp.h:373
UCP receive information descriptor.
Definition: ucp.h:1699
uint64_t field_mask
Definition: ucp.h:2940
struct ucp_mem * ucp_mem_h
UCP Memory handle.
Definition: ucp_def.h:167
Definition: ucp.h:721
#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:601
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.
Tuning parameters for the comparison function ucp_rkey_compare.
Definition: ucp.h:1282
uint64_t ucp_datatype_t
UCP Datatype Identifier.
Definition: ucp_def.h:278
Definition: ucp.h:638
Attributes of a particular request.
Definition: ucp.h:1835
uint64_t field_mask
Definition: ucp.h:1483
Definition: ucp.h:729
Definition: ucp.h:509
Definition: ucp.h:719
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:1088
uint32_t op_attr_mask
Definition: ucp.h:1753
Tuning parameters for the UCP worker.
Definition: ucp.h:1299
Definition: ucp.h:124
Definition: ucp.h:561
ucp_am_recv_attr_t
UCP AM receive data parameter fields and flags.
Definition: ucp.h:775
ucp_tag_t sender_tag
Definition: ucp.h:1701
Definition: ucp.h:679
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:3089
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:1567
Lib attributes.
Definition: ucp.h:1152
Definition: ucp.h:715
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:591
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:720
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:1047
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:1764
uint8_t reserved[16]
Definition: ucp.h:1597
Definition: ucp.h:646
Definition: ucp.h:183
struct ucp_dt_iov ucp_dt_iov_t
Structure for scatter-gather I/O.
Definition: ucp.h:776
struct ucp_listener * ucp_listener_h
UCP listen handle.
Definition: ucp_def.h:177
ucs_thread_mode_t thread_mode
Definition: ucp.h:1233
Definition: ucp.h:613
uint64_t client_id
Definition: ucp.h:1395
void(* ucp_request_cleanup_callback_t)(void *request)
Request cleanup callback.
Definition: ucp_def.h:301
uint64_t client_id
Definition: ucp.h:1519
uint32_t flags
Definition: ucp.h:1756
Tuning parameters for the UCP memory mapping.
Definition: ucp.h:1608
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:1592
Definition: ucp.h:821
uint64_t field_mask
Definition: ucp.h:3094
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:1142
Definition: ucp.h:794
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:1250
void ucp_cleanup(ucp_context_h context_p)
Release UCP application context.
Definition: ucp.h:589
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:1337
ucs_thread_mode_t max_thread_level
Definition: ucp.h:1168
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:1645
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:809
size_t max_debug_string
Definition: ucp.h:1270
struct sockaddr_storage remote_sockaddr
Definition: ucp.h:4116
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:1132
ucp_ep_h reply_ep
Definition: ucp.h:1922
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:2918
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:1452
ucs_status_t ucp_worker_wait(ucp_worker_h worker)
Wait for an event of the worker.
Definition: ucp.h:570
ucs_memory_type_t mem_type
Definition: ucp.h:1865
Definition: ucp_compat.h:23
ucp_mem_h memh
Definition: ucp.h:1826
unsigned id
Definition: ucp.h:1886
size_t length
Definition: ucp.h:872
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:1627
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:1441
uint64_t features
Definition: ucp.h:1055
uint64_t field_mask
Definition: ucp.h:1537
void(* ucp_request_init_callback_t)(void *request)
Request initialization callback.
Definition: ucp_def.h:289
const char * name
Definition: ucp.h:1380
struct ucp_rkey_compare_params ucp_rkey_compare_params_t
Tuning parameters for the comparison function ucp_rkey_compare.
size_t(* packed_size)(void *state)
Get the total size of packed data.
Definition: ucp.h:936
const void * exported_memh_buffer
Definition: ucp.h:1686
Definition: ucp.h:386
Definition: ucp.h:628
Definition: ucp.h:4074
Definition: ucp.h:695
unsigned prot
Definition: ucp.h:1654
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:1581
uint64_t flags
Definition: ucp.h:1370
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:785
UCP endpoint attributes.
Definition: ucp.h:4087
struct ucp_conn_request_attr ucp_conn_request_attr_t
UCP listener&#39;s connection request attributes.
uint64_t worker_uid
Definition: ucp.h:1417
size_t max_am_header
Definition: ucp.h:1260
size_t address_length
Definition: ucp.h:1255
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:1577
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:434
UCP datatype attributes.
Definition: ucp.h:997
uint64_t field_mask
Definition: ucp.h:1288
size_t length
Definition: ucp.h:1703
Definition: ucp.h:763
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:1159
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:1077
Definition: ucp.h:718
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:743
Definition: ucp.h:148
uint64_t memory_types
Definition: ucp.h:1205
Definition: ucp.h:128
Definition: ucp.h:4072
uint64_t field_mask
Definition: ucp.h:1507
UCP generic data type descriptor.
Definition: ucp.h:889
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:665
struct ucp_config ucp_config_t
UCP configuration descriptor.
Definition: ucp_def.h:77
Definition: ucp.h:666
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:1636
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:2995
Definition: ucp.h:449
Operation parameters provided in ucp_am_recv_callback_t callback.
Definition: ucp.h:1911
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:2955
Definition: ucp.h:716
Definition: ucp.h:682
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:694
Memory handle pack parameters passed to ucp_memh_pack.
Definition: ucp.h:3027
Definition: ucp.h:717
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.
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:1917
uint64_t tag_sender_mask
Definition: ucp.h:1095
void * arg
Definition: ucp.h:1903
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:1500
Definition: ucp.h:714
ucs_status_t(* unpack)(void *state, size_t offset, const void *src, size_t length)
Unpack data.
Definition: ucp.h:971
void ucp_config_release(ucp_config_t *config)
Release configuration descriptor.
Definition: ucp.h:713
Definition: ucp.h:3015
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:805
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:1305
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:677
struct ucp_stream_poll_ep ucp_stream_poll_ep_t
Output parameter of ucp_stream_worker_poll function.
char * debug_string
Definition: ucp.h:1848
Definition: ucp.h:263
uint64_t field_mask
Definition: ucp.h:1412
Definition: ucp.h:651
Definition: ucp.h:576
void(* finish)(void *state)
Finish packing/unpacking.
Definition: ucp.h:987
enum ucs_memory_type ucs_memory_type_t
Memory types.
uint64_t field_mask
Definition: ucp.h:1880
Definition: ucp.h:605
Definition: ucp.h:436
ucp_feature
UCP configuration features.
Definition: ucp.h:140
char name[UCP_ENTITY_NAME_MAX]
Definition: ucp.h:1210
uint64_t field_mask
Definition: ucp.h:1459
Structure for scatter-gather I/O.
Definition: ucp.h:870
struct sockaddr_storage sockaddr
Definition: ucp.h:1489
Context attributes.
Definition: ucp.h:1179
Definition: ucp.h:507
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: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:3006
ucp_send_am_flags
Flags for sending a UCP Active Message.
Definition: ucp.h:624
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:2091
double estimated_time
Definition: ucp.h:1466
ucp_am_recv_callback_t cb
Definition: ucp.h:1897
uint64_t ucp_tag_t
UCP Tag Identifier.
Definition: ucp_def.h:257
Definition: ucp.h:678
const void * buffer
Definition: ucp.h:1016
UCP listener attributes.
Definition: ucp.h:1476
ucp_op_attr_t
UCP operation fields and flags.
Definition: ucp.h:712
uint64_t field_mask
Definition: ucp.h:1615
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:4071
void * user_data
Definition: ucp.h:1787
char name[UCP_ENTITY_NAME_MAX]
Definition: ucp.h:1265
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:1221
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:1672
void * reply_buffer
Definition: ucp.h:1793
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:684
Tuning parameters for UCP library.
Definition: ucp.h:1041
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:681
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:2934
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:1228
Parameters for a UCP listener object.
Definition: ucp.h:1530
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:1874
UCP endpoint performance evaluation request attributes.
Definition: ucp.h:1428
uint64_t field_mask
Definition: ucp.h:1841
int mt_workers_shared
Definition: ucp.h:1111
struct sockaddr_storage client_address
Definition: ucp.h:1513
ucs_memory_type_t memory_type
Definition: ucp.h:1802
size_t debug_string_size
Definition: ucp.h:1855
Definition: ucp.h:4075
Definition: ucp.h:123
Definition: ucp.h:4073
ucp_worker_attr_field
UCP worker attributes field mask.
Definition: ucp.h:447
ucp_conn_request_attr_field
UCP listener&#39;s connection request attributes field mask.
Definition: ucp.h:491
ucp_listener_accept_handler_t accept_handler
Definition: ucp.h:1554
size_t(* pack)(void *state, size_t offset, void *dest, size_t max_length)
Pack data.
Definition: ucp.h:954
ucp_ep_close_flags_t
Close UCP endpoint modes.
Definition: ucp.h:313
char name[UCP_ENTITY_NAME_MAX]
Definition: ucp.h:4100
size_t count
Definition: ucp.h:1024
ucs_status_t ucp_lib_query(ucp_lib_attr_t *attr)
Get attributes of the UCP library.
Definition: ucp.h:4076
size_t length
Definition: ucp.h:2950
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: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:4123
struct ucp_mem_map_params ucp_mem_map_params_t
Tuning parameters for the UCP memory mapping.
void * address
Definition: ucp.h:2945
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:3038
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:633
uint32_t address_flags
Definition: ucp.h:1241
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:1747
Definition: ucp.h:680
ucp_worker_flags_t
UCP worker flags.
Definition: ucp.h:200
size_t request_size
Definition: ucp.h:1193
ucs_thread_mode_t thread_mode
Definition: ucp.h:1199
ucs_cpu_set_t cpu_mask
Definition: ucp.h:1328
ucs_thread_mode_t thread_mode
Definition: ucp.h:1319
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:2917
void * user_data
Definition: ucp.h:1345
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:2919
Definition: ucp.h:590
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:1003
ucp_dt_type
UCP data type classification.
Definition: ucp.h:503
void * user_data
Definition: ucp.h:4129
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:1782
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:1065
Definition: ucp.h:259
struct sockaddr_storage local_sockaddr
Definition: ucp.h:4108
size_t packed_size
Definition: ucp.h:1008
Definition: ucp.h:314
Definition: ucp.h:739
uint64_t field_mask
Definition: ucp.h:1186
Definition: ucp.h:762
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:723
int event_fd
Definition: ucp.h:1362
Definition: ucp.h:817
void * buffer
Definition: ucp.h:871
struct ucp_listener_attr ucp_listener_attr_t
UCP listener attributes.
uint64_t field_mask
Definition: ucp.h:1435
void * user_data
Definition: ucp.h:1587
UCP worker address attributes.
Definition: ucp.h:1405
ucs_sock_addr_t sockaddr
Definition: ucp.h:1546