UCX  1.5
Unified Communication X
ucp.h
1 /*
2 * Copyright (C) Mellanox Technologies Ltd. 2001-2014. 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 <stdio.h>
20 #include <sys/types.h>
21 
22 BEGIN_C_DECLS
23 
126 };
127 
128 
138  UCP_FEATURE_TAG = UCS_BIT(0),
139  UCP_FEATURE_RMA = UCS_BIT(1),
141  UCP_FEATURE_AMO32 = UCS_BIT(2),
143  UCP_FEATURE_AMO64 = UCS_BIT(3),
145  UCP_FEATURE_WAKEUP = UCS_BIT(4),
147  UCP_FEATURE_STREAM = UCS_BIT(5)
148 };
149 
150 
165 };
166 
167 
180 
185 
189 };
190 
191 
210 };
211 
212 
238 };
239 
240 
264 };
265 
266 
283 };
284 
296 };
297 
298 
309 };
310 
320 };
321 
338 };
339 
340 
348 enum {
349  UCP_MEM_MAP_NONBLOCK = UCS_BIT(0),
354  UCP_MEM_MAP_ALLOCATE = UCS_BIT(1),
358  UCP_MEM_MAP_FIXED = UCS_BIT(2)
362 };
363 
364 
373 typedef enum {
380 
381 
390 typedef enum {
399 
400 
407 typedef enum {
415 
416 
431 #define ucp_dt_make_contig(_elem_size) \
432  (((ucp_datatype_t)(_elem_size) << UCP_DATATYPE_SHIFT) | UCP_DATATYPE_CONTIG)
433 
434 
447 #define ucp_dt_make_iov() (UCP_DATATYPE_IOV)
448 
449 
460 typedef struct ucp_dt_iov {
461  void *buffer;
462  size_t length;
463 } ucp_dt_iov_t;
464 
465 
479 typedef struct ucp_generic_dt_ops {
480 
495  void* (*start_pack)(void *context, const void *buffer, size_t count);
496 
511  void* (*start_unpack)(void *context, void *buffer, size_t count);
512 
526  size_t (*packed_size)(void *state);
527 
544  size_t (*pack) (void *state, size_t offset, void *dest, size_t max_length);
545 
561  ucs_status_t (*unpack)(void *state, size_t offset, const void *src, size_t length);
562 
577  void (*finish)(void *state);
579 
580 
594 typedef struct ucp_params {
600  uint64_t field_mask;
601 
608  uint64_t features;
609 
618  size_t request_size;
619 
631 
642 
648  uint64_t tag_sender_mask;
649 
665 
676 
677 } ucp_params_t;
678 
679 
687 typedef struct ucp_context_attr {
694  uint64_t field_mask;
695 
701  size_t request_size;
702 
709 
717 typedef struct ucp_worker_attr {
724  uint64_t field_mask;
725 
731 
732 
740 typedef struct ucp_worker_params {
746  uint64_t field_mask;
747 
761 
769  ucs_cpu_set_t cpu_mask;
770 
778  unsigned events;
779 
786  void *user_data;
787 
803  int event_fd;
804 
806 
807 
815 typedef struct ucp_listener_params {
822  uint64_t field_mask;
823 
832 
840 
849 
850 
857 typedef struct {
862 
867  void *user_data;
868 
872  unsigned flags;
873 
877  uint8_t reserved[16];
879 
887 typedef struct ucp_mem_map_params {
894  uint64_t field_mask;
895 
906  void *address;
907 
915  size_t length;
916 
924  unsigned flags;
926 
927 
941  size_t length;
942 };
943 
944 
971 ucs_status_t ucp_config_read(const char *env_prefix, const char *filename,
972  ucp_config_t **config_p);
973 
974 
985 void ucp_config_release(ucp_config_t *config);
986 
987 
1001 ucs_status_t ucp_config_modify(ucp_config_t *config, const char *name,
1002  const char *value);
1003 
1004 
1020 void ucp_config_print(const ucp_config_t *config, FILE *stream,
1021  const char *title, ucs_config_print_flags_t print_flags);
1022 
1023 
1034 void ucp_get_version(unsigned *major_version, unsigned *minor_version,
1035  unsigned *release_number);
1036 
1037 
1045 const char *ucp_get_version_string(void);
1046 
1047 
1056 ucs_status_t ucp_init_version(unsigned api_major_version, unsigned api_minor_version,
1057  const ucp_params_t *params, const ucp_config_t *config,
1058  ucp_context_h *context_p);
1097 static inline ucs_status_t ucp_init(const ucp_params_t *params,
1098  const ucp_config_t *config,
1099  ucp_context_h *context_p)
1100 {
1101  return ucp_init_version(UCP_API_MAJOR, UCP_API_MINOR, params, config,
1102  context_p);
1103 }
1104 
1105 
1123 void ucp_cleanup(ucp_context_h context_p);
1124 
1125 
1140  ucp_context_attr_t *attr);
1141 
1142 
1154 void ucp_context_print_info(ucp_context_h context, FILE *stream);
1155 
1156 
1181  const ucp_worker_params_t *params,
1182  ucp_worker_h *worker_p);
1183 
1184 
1200 void ucp_worker_destroy(ucp_worker_h worker);
1201 
1214  ucp_worker_attr_t *attr);
1215 
1226 void ucp_worker_print_info(ucp_worker_h worker, FILE *stream);
1227 
1228 
1246  ucp_address_t **address_p,
1247  size_t *address_length_p);
1248 
1249 
1270 
1271 
1291 unsigned ucp_worker_progress(ucp_worker_h worker);
1292 
1293 
1314 ssize_t ucp_stream_worker_poll(ucp_worker_h worker,
1315  ucp_stream_poll_ep_t *poll_eps, size_t max_eps,
1316  unsigned flags);
1317 
1318 
1350 
1351 
1381 
1382 
1406 void ucp_worker_wait_mem(ucp_worker_h worker, void *address);
1407 
1408 
1479 
1480 
1500 
1501 
1522  const ucp_listener_params_t *params,
1523  ucp_listener_h *listener_p);
1524 
1525 
1535 void ucp_listener_destroy(ucp_listener_h listener);
1536 
1537 
1571  ucp_ep_h *ep_p);
1572 
1573 
1600 ucs_status_ptr_t ucp_ep_close_nb(ucp_ep_h ep, unsigned mode);
1601 
1602 
1620  ucp_conn_request_h conn_request);
1621 
1622 
1633 void ucp_ep_print_info(ucp_ep_h ep, FILE *stream);
1634 
1635 
1689 ucs_status_ptr_t ucp_ep_flush_nb(ucp_ep_h ep, unsigned flags,
1690  ucp_send_callback_t cb);
1691 
1692 
1768  ucp_mem_h *memh_p);
1769 
1770 
1799 
1800 
1815 
1816 
1824 typedef enum ucp_mem_advice {
1831 
1832 
1841 typedef struct ucp_mem_advise_params {
1847  uint64_t field_mask;
1848 
1852  void *address;
1853 
1857  size_t length;
1858 
1864 
1865 
1886  ucp_mem_advise_params_t *params);
1887 
1888 
1920  void **rkey_buffer_p, size_t *size_p);
1921 
1922 
1939 void ucp_rkey_buffer_release(void *rkey_buffer);
1940 
1941 
1958 ucs_status_t ucp_ep_rkey_unpack(ucp_ep_h ep, const void *rkey_buffer,
1959  ucp_rkey_h *rkey_p);
1960 
1961 
1981 ucs_status_t ucp_rkey_ptr(ucp_rkey_h rkey, uint64_t raddr, void **addr_p);
1982 
1983 
2002 void ucp_rkey_destroy(ucp_rkey_h rkey);
2003 
2004 
2043 ucs_status_ptr_t ucp_stream_send_nb(ucp_ep_h ep, const void *buffer, size_t count,
2044  ucp_datatype_t datatype, ucp_send_callback_t cb,
2045  unsigned flags);
2046 
2047 
2088 ucs_status_ptr_t ucp_tag_send_nb(ucp_ep_h ep, const void *buffer, size_t count,
2089  ucp_datatype_t datatype, ucp_tag_t tag,
2090  ucp_send_callback_t cb);
2091 
2170 ucs_status_t ucp_tag_send_nbr(ucp_ep_h ep, const void *buffer, size_t count,
2171  ucp_datatype_t datatype, ucp_tag_t tag, void *req);
2172 
2204 ucs_status_ptr_t ucp_tag_send_sync_nb(ucp_ep_h ep, const void *buffer, size_t count,
2205  ucp_datatype_t datatype, ucp_tag_t tag,
2206  ucp_send_callback_t cb);
2207 
2208 
2250 ucs_status_ptr_t ucp_stream_recv_nb(ucp_ep_h ep, void *buffer, size_t count,
2251  ucp_datatype_t datatype,
2253  size_t *length, unsigned flags);
2254 
2255 
2289 
2290 
2329 ucs_status_ptr_t ucp_tag_recv_nb(ucp_worker_h worker, void *buffer, size_t count,
2330  ucp_datatype_t datatype, ucp_tag_t tag,
2331  ucp_tag_t tag_mask, ucp_tag_recv_callback_t cb);
2332 
2333 
2363 ucs_status_t ucp_tag_recv_nbr(ucp_worker_h worker, void *buffer, size_t count,
2364  ucp_datatype_t datatype, ucp_tag_t tag,
2365  ucp_tag_t tag_mask, void *req);
2366 
2367 
2409  ucp_tag_t tag_mask, int remove,
2410  ucp_tag_recv_info_t *info);
2411 
2412 
2447  size_t count, ucp_datatype_t datatype,
2448  ucp_tag_message_h message,
2450 
2451 
2478 ucs_status_t ucp_put_nbi(ucp_ep_h ep, const void *buffer, size_t length,
2479  uint64_t remote_addr, ucp_rkey_h rkey);
2480 
2524 ucs_status_ptr_t ucp_put_nb(ucp_ep_h ep, const void *buffer, size_t length,
2525  uint64_t remote_addr, ucp_rkey_h rkey,
2526  ucp_send_callback_t cb);
2527 
2528 
2554 ucs_status_t ucp_get_nbi(ucp_ep_h ep, void *buffer, size_t length,
2555  uint64_t remote_addr, ucp_rkey_h rkey);
2556 
2599 ucs_status_ptr_t ucp_get_nb(ucp_ep_h ep, void *buffer, size_t length,
2600  uint64_t remote_addr, ucp_rkey_h rkey,
2601  ucp_send_callback_t cb);
2602 
2624 ucs_status_t ucp_atomic_post(ucp_ep_h ep, ucp_atomic_post_op_t opcode, uint64_t value,
2625  size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey);
2626 
2627 
2676  uint64_t value, void *result, size_t op_size,
2677  uint64_t remote_addr, ucp_rkey_h rkey,
2678  ucp_send_callback_t cb);
2679 
2680 
2693 ucs_status_t ucp_request_check_status(void *request);
2694 
2695 
2713 
2714 
2732 ucs_status_t ucp_stream_recv_request_test(void *request, size_t *length_p);
2733 
2753 void ucp_request_cancel(ucp_worker_h worker, void *request);
2754 
2755 
2768 void ucp_stream_data_release(ucp_ep_h ep, void *data);
2769 
2770 
2782 void ucp_request_free(void *request);
2783 
2784 
2807 ucs_status_t ucp_dt_create_generic(const ucp_generic_dt_ops_t *ops, void *context,
2808  ucp_datatype_t *datatype_p);
2809 
2810 
2826 void ucp_dt_destroy(ucp_datatype_t datatype);
2827 
2828 
2852 
2853 
2883 ucs_status_ptr_t ucp_worker_flush_nb(ucp_worker_h worker, unsigned flags,
2884  ucp_send_callback_t cb);
2885 
2886 
2892 END_C_DECLS
2893 
2894 #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.
ucp_listener_params_field
UCP listener parameters field mask.
Definition: ucp.h:175
size_t estimated_num_eps
Definition: ucp.h:675
Definition: ucp.h:121
Definition: ucp.h:278
Tuning parameters for the UCP endpoint.
Definition: ucp_def.h:480
Definition: ucp.h:329
void ucp_rkey_buffer_release(void *rkey_buffer)
Release packed remote key buffer.
ucs_status_t ucp_context_query(ucp_context_h context_p, ucp_context_attr_t *attr)
Get attributes specific to a particular context.
ucp_mem_map_params_field
UCP memory mapping parameters field mask.
Definition: ucp.h:274
UCP receive information descriptor.
Definition: ucp.h:937
uint64_t field_mask
Definition: ucp.h:1847
struct ucp_mem * ucp_mem_h
UCP Memory handle.
Definition: ucp_def.h:157
ucs_status_t ucp_put_nbi(ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
Non-blocking implicit remote memory put operation.
Definition: ucp.h:160
Definition: ucp.h:349
ucs_status_t ucp_worker_get_address(ucp_worker_h worker, ucp_address_t **address_p, size_t *address_length_p)
Get the address of the worker object.
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.
void(* ucp_tag_recv_callback_t)(void *request, ucs_status_t status, ucp_tag_recv_info_t *info)
Completion callback for non-blocking tag receives.
Definition: ucp_def.h:433
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:262
Definition: ucp.h:334
void(* ucp_stream_recv_callback_t)(void *request, ucs_status_t status, size_t length)
Completion callback for non-blocking stream oriented receives.
Definition: ucp_def.h:410
Definition: ucp.h:207
Definition: ucp.h:138
ucp_request_cleanup_callback_t request_cleanup
Definition: ucp.h:641
Tuning parameters for the UCP worker.
Definition: ucp.h:740
Definition: ucp.h:123
Definition: ucp.h:358
ucp_tag_t sender_tag
Definition: ucp.h:939
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.
ucp_ep_h ep
Definition: ucp.h:861
Definition: ucp.h:377
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:847
ucs_status_ptr_t ucp_atomic_fetch_nb(ucp_ep_h ep, ucp_atomic_fetch_op_t opcode, uint64_t value, void *result, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
Post an atomic fetch operation.
Definition: ucp.h:330
Definition: ucp.h:331
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:50
ucp_params_field
UCP context parameters field mask.
Definition: ucp.h:118
ucs_status_t ucp_rkey_ptr(ucp_rkey_h rkey, uint64_t raddr, void **addr_p)
Get a local pointer to remote memory.
uint64_t field_mask
Definition: ucp.h:600
Definition: ucp.h:248
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:92
void ucp_dt_destroy(ucp_datatype_t datatype)
Destroy a datatype and release its resources.
Definition: ucp.h:391
void ucp_context_print_info(ucp_context_h context, FILE *stream)
Print context information.
Definition: ucp.h:396
Definition: ucp.h:163
struct ucp_dt_iov ucp_dt_iov_t
Structure for scatter-gather I/O.
struct ucp_listener * ucp_listener_h
UCP listen handle.
Definition: ucp_def.h:167
ucs_thread_mode_t thread_mode
Definition: ucp.h:729
void(* ucp_request_cleanup_callback_t)(void *request)
Request cleanup callback.
Definition: ucp_def.h:285
Tuning parameters for the UCP memory mapping.
Definition: ucp.h:887
Output parameter of ucp_stream_worker_poll function.
Definition: ucp.h:857
ucp_atomic_fetch_op_t
Atomic operation requested for ucp_atomic_fetch.
Definition: ucp.h:390
ucs_status_t ucp_mem_query(const ucp_mem_h memh, ucp_mem_attr_t *attr)
query mapped memory segment
Definition: ucp.h:392
void ucp_worker_wait_mem(ucp_worker_h worker, void *address)
Wait for memory update on the address.
Definition: ucp.h:376
void ucp_listener_destroy(ucp_listener_h listener)
Stop accepting connections on a local address of the worker object.
void ucp_cleanup(ucp_context_h context_p)
Release UCP application context.
Attributes of the UCP Memory handle, filled by ucp_mem_query function.
Definition: ucp_def.h:175
ucp_worker_params_field
UCP worker parameters field mask.
Definition: ucp.h:158
ucs_status_ptr_t ucp_tag_msg_recv_nb(ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_message_h message, ucp_tag_recv_callback_t cb)
Non-blocking receive operation for a probed message.
unsigned events
Definition: ucp.h:778
unsigned flags
Definition: ucp.h:924
Definition: ucp.h:147
ucp_context_attr_field
UCP context attributes field mask.
Definition: ucp.h:306
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:1825
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.
void ucp_request_cancel(ucp_worker_h worker, void *request)
Cancel an outstanding communications request.
ucs_status_t ucp_worker_wait(ucp_worker_h worker)
Wait for an event of the worker.
size_t length
Definition: ucp.h:462
void * address
Definition: ucp.h:906
ucs_status_t ucp_config_read(const char *env_prefix, const char *filename, ucp_config_t **config_p)
Read UCP configuration descriptor.
void * user_data
Definition: ucp.h:867
uint64_t features
Definition: ucp.h:608
uint64_t field_mask
Definition: ucp.h:822
void(* ucp_request_init_callback_t)(void *request)
Request initialization callback.
Definition: ucp_def.h:273
size_t(* packed_size)(void *state)
Get the total size of packed data.
Definition: ucp.h:526
Definition: ucp.h:282
Definition: ucp.h:408
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:336
ucs_status_t ucp_tag_send_nbr(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, void *req)
Non-blocking tagged-send operations with user provided request.
ucs_status_t
Status codes.
Definition: status.h:43
ucp_mem_advise_params_field
UCP memory advice parameters field mask.
Definition: ucp.h:292
struct ucp_address ucp_address_t
UCP worker address.
Definition: ucp_def.h:102
struct ucp_params ucp_params_t
Tuning parameters for UCP library.
void(* ucp_send_callback_t)(void *request, ucs_status_t status)
Completion callback for non-blocking sends.
Definition: ucp_def.h:303
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:308
size_t length
Definition: ucp.h:941
ucs_status_ptr_t ucp_worker_flush_nb(ucp_worker_h worker, unsigned flags, ucp_send_callback_t cb)
Flush outstanding AMO and RMA operations on the worker.
ucs_status_t ucp_get_nbi(ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey)
Non-blocking implicit remote memory get operation.
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.
unsigned ucp_worker_progress(ucp_worker_h worker)
Progress all communications on a specific worker.
Definition: ucp.h:119
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:630
ucp_atomic_post_op_t
Atomic operation requested for ucp_atomic_post.
Definition: ucp.h:373
Definition: ucp.h:141
UCP generic data type descriptor.
Definition: ucp.h:479
void ucp_get_version(unsigned *major_version, unsigned *minor_version, unsigned *release_number)
Get UCP library version.
struct ucp_config ucp_config_t
UCP configuration descriptor.
Definition: ucp_def.h:67
size_t length
Definition: ucp.h:915
ucs_status_ptr_t ucp_tag_send_nb(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
Non-blocking tagged-send operations.
void ucp_stream_data_release(ucp_ep_h ep, void *data)
Release UCP data buffer returned by ucp_stream_recv_data_nb.
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:252
ucp_mem_advice_t advice
Definition: ucp.h:1862
ucp_ep_params_field
UCP endpoint parameters field mask.
Definition: ucp.h:199
ucp_stream_recv_flags_t
Flags to define behavior of ucp_stream_recv_nb function.
Definition: ucp.h:407
Definition: ucp.h:275
Definition: ucp.h:161
enum ucp_mem_advice ucp_mem_advice_t
list of UCP memory use advice.
ucp_ep_close_mode
Close UCP endpoint modes.
Definition: ucp.h:247
uint64_t tag_sender_mask
Definition: ucp.h:648
Definition: ucp.h:209
ucs_status_t(* unpack)(void *state, size_t offset, const void *src, size_t length)
Unpack data.
Definition: ucp.h:561
void ucp_config_release(ucp_config_t *config)
Release configuration descriptor.
unsigned flags
Definition: ucp.h:872
ucs_status_t ucp_listener_reject(ucp_listener_h listener, ucp_conn_request_h conn_request)
Reject an incoming connection request.
uint64_t field_mask
Definition: ucp.h:746
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
Definition: ucp.h:208
ucs_status_ptr_t ucp_stream_send_nb(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_send_callback_t cb, unsigned flags)
Non-blocking stream send operation.
BEGIN_C_DECLS struct ucp_listener_accept_handler ucp_listener_accept_handler_t
void(* finish)(void *state)
Finish packing/unpacking.
Definition: ucp.h:577
ucs_status_t ucp_atomic_post(ucp_ep_h ep, ucp_atomic_post_op_t opcode, uint64_t value, size_t op_size, uint64_t remote_addr, ucp_rkey_h rkey)
Post an atomic memory operation.
ucp_feature
UCP configuration features.
Definition: ucp.h:137
Definition: ucp.h:375
Structure for scatter-gather I/O.
Definition: ucp.h:460
Context attributes.
Definition: ucp.h:687
Definition: ucp.h:394
Definition: ucp.h:332
const char * ucp_get_version_string(void)
Get UCP library version as a string.
ucs_status_t ucp_tag_recv_nbr(ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, void *req)
Non-blocking tagged-receive operation.
Definition: ucp.h:374
Definition: ucp.h:307
ucs_status_t ucp_worker_query(ucp_worker_h worker, ucp_worker_attr_t *attr)
Get attributes specific to a particular worker.
Definition: ucp.h:206
void * ucs_status_ptr_t
Status pointer.
Definition: status.h:102
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:1097
uint64_t ucp_tag_t
UCP Tag Identifier.
Definition: ucp_def.h:241
Definition: ucp.h:378
uint64_t field_mask
Definition: ucp.h:894
Definition: ucp.h:395
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:717
Definition: ucp.h:393
struct ucp_mem_advise_params ucp_mem_advise_params_t
Tuning parameters for the UCP memory advice.
void ucp_config_print(const ucp_config_t *config, FILE *stream, const char *title, ucs_config_print_flags_t print_flags)
Print configuration information.
Tuning parameters for UCP library.
Definition: ucp.h:594
Definition: ucp.h:143
struct ucp_worker * ucp_worker_h
UCP Worker.
Definition: ucp_def.h:230
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:1841
Definition: ucp.h:145
void ucp_worker_print_info(ucp_worker_h worker, FILE *stream)
Print information about the worker.
uint64_t field_mask
Definition: ucp.h:724
Parameters for a UCP listener object.
Definition: ucp.h:815
struct ucp_context_attr ucp_context_attr_t
Context attributes.
ucs_status_ptr_t ucp_tag_recv_nb(ucp_worker_h worker, void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_tag_t tag_mask, ucp_tag_recv_callback_t cb)
Non-blocking tagged-receive operation.
ucs_status_ptr_t ucp_ep_close_nb(ucp_ep_h ep, unsigned mode)
Non-blocking endpoint closure.
int mt_workers_shared
Definition: ucp.h:664
Definition: ucp.h:122
ucp_worker_attr_field
UCP worker attributes field mask.
Definition: ucp.h:318
ucp_listener_accept_handler_t accept_handler
Definition: ucp.h:839
size_t(* pack)(void *state, size_t offset, void *dest, size_t max_length)
Pack data.
Definition: ucp.h:544
size_t length
Definition: ucp.h:1857
ucs_status_t ucp_rkey_pack(ucp_context_h context, ucp_mem_h memh, void **rkey_buffer_p, size_t *size_p)
Pack memory region remote access key.
Definition: ucp.h:229
Definition: types.h:110
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:82
struct ucp_mem_map_params ucp_mem_map_params_t
Tuning parameters for the UCP memory mapping.
void * address
Definition: ucp.h:1852
ucs_status_t ucp_listener_create(ucp_worker_h worker, const ucp_listener_params_t *params, ucp_listener_h *listener_p)
Accept connections on a local address of the worker object.
ucs_status_ptr_t ucp_tag_send_sync_nb(ucp_ep_h ep, const void *buffer, size_t count, ucp_datatype_t datatype, ucp_tag_t tag, ucp_send_callback_t cb)
Non-blocking synchronous tagged-send operation.
ucs_status_t ucp_worker_get_efd(ucp_worker_h worker, int *fd)
Obtain an event file descriptor for event notification.
Definition: ucp.h:397
UCP callback to handle the connection request in a client-server connection establishment flow...
Definition: ucp_def.h:388
Definition: ucp.h:120
ucs_status_ptr_t ucp_get_nb(ucp_ep_h ep, void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
Non-blocking remote memory get operation.
Definition: ucp.h:354
Definition: ucp.h:261
size_t request_size
Definition: ucp.h:701
ucs_thread_mode_t thread_mode
Definition: ucp.h:707
ucs_cpu_set_t cpu_mask
Definition: ucp.h:769
ucs_thread_mode_t thread_mode
Definition: ucp.h:760
struct ucp_rkey * ucp_rkey_h
UCP Remote memory handle.
Definition: ucp_def.h:142
ucp_mem_advice
list of UCP memory use advice.
Definition: ucp.h:1824
void * user_data
Definition: ucp.h:786
struct ucp_worker_attr ucp_worker_attr_t
UCP worker attributes.
Definition: ucp.h:1826
void ucp_rkey_destroy(ucp_rkey_h rkey)
Destroy the remote key.
ucs_status_ptr_t ucp_put_nb(ucp_ep_h ep, const void *buffer, size_t length, uint64_t remote_addr, ucp_rkey_h rkey, ucp_send_callback_t cb)
Non-blocking remote memory put operation.
ucp_dt_type
UCP data type classification.
Definition: ucp.h:328
struct ucp_generic_dt_ops ucp_generic_dt_ops_t
UCP generic data type descriptor.
Definition: ucp.h:139
ucs_status_ptr_t ucp_stream_recv_nb(ucp_ep_h ep, void *buffer, size_t count, ucp_datatype_t datatype, ucp_stream_recv_callback_t cb, size_t *length, unsigned flags)
Non-blocking stream receive operation of structured data into a user-supplied buffer.
size_t request_size
Definition: ucp.h:618
Definition: ucp.h:204
uint64_t field_mask
Definition: ucp.h:694
ucp_ep_params_flags_field
UCP endpoint parameters flags.
Definition: ucp.h:220
ucs_status_t ucp_worker_signal(ucp_worker_h worker)
Cause an event of the worker.
int event_fd
Definition: ucp.h:803
void * buffer
Definition: ucp.h:461
ucs_status_ptr_t ucp_ep_flush_nb(ucp_ep_h ep, unsigned flags, ucp_send_callback_t cb)
Non-blocking flush of outstanding AMO and RMA operations on the endpoint.
ucs_sock_addr_t sockaddr
Definition: ucp.h:831