UCX interfaces (stale) - openucx/ucc GitHub Wiki
Placeholder to gather UCX’s interfaces to be used by UCC
UCP: A primary layer for accessing the UCX’s communication routines.
Motivation Collective communication operations are typically implemented using point-to-point communication and synchronization routines. In UCC, the collective routines are primarily implemented using UCX's point-to-point, RMA and atomic routines .i.e., UCP interfaces.
UCS: A set of utilities provided by UCX for implementing communication libraries.
UCS’s Configuration Reading Infrastructure
Interfaces
- UCS/config/parser.h
- UCS/config/global_opts.h
- UCS/config/types.h
Use-case
- Read library configuration from the environment variables and the config file.
UCG's Requirements (Added by Alex, not yet discussed by the community)
Below is the list of existing functions UCG currently invokes from other UCX layers (by topic, some are actually global variables). UCG also extends UCP with new API, ucp_extend()
, but this API is currently not part of the upstream UCX.
UCP
Library initialization
- ucp_init_version
Worker usage
- ucp_worker_get_address
- ucp_worker_progress
- ucp_worker_release_address
Connection establishment
- ucp_ep_create
- ucp_proxy_ep_test
- ucp_wireup_connect_remote
Adding a custom Active-Message handler
- ucp_am_handlers
UCT
Interface and endpoint usage
- uct_iface->ops.am_short/bcopy/zcopy
- uct_iface->ops.iface_create/progress/destroy
- uct_iface->ops.iface_create/connect/destroy
Memory registration
- uct_ib_md_indirect_rkey
- uct_md_mem_dereg
- uct_md_mem_reg
UCS
Configuration parsing
- ucs_global_opts
- ucs_config_clone_table
- ucs_config_clone_uint
- ucs_config_clone_ulong
- ucs_config_global_list
- ucs_config_help_generic
- ucs_config_help_table
- ucs_config_parser_fill_opts
- ucs_config_parser_release_opts
- ucs_config_release_nop
- ucs_config_release_table
- ucs_config_sprintf_memunits
- ucs_config_sprintf_uint
- ucs_config_sprintf_ulunits
- ucs_config_sscanf_memunits
- ucs_config_sscanf_table
- ucs_config_sscanf_uint
- ucs_config_sscanf_ulunits
Memory allocation and pools
- ucs_calloc
- ucs_realloc
- ucs_free
- ucs_mpool_cleanup
- ucs_mpool_get_grow
- ucs_mpool_hugetlb_free
- ucs_mpool_hugetlb_malloc
- ucs_mpool_init
- ucs_mpool_put_inline
Pointer-array datastructure
- ucs_ptr_array_cleanup
- ucs_ptr_array_init
- ucs_ptr_array_insert
- ucs_ptr_array_replace
Profiling and statistics
- ucs_stats_node_alloc
- ucs_stats_node_free
- ucs_profile_record
Strings and error messages
- ucs_strdup
- ucs_status_string
- ucs_snprintf_zero
- ucs_log_dispatch
- ucs_fatal_error_format
Modular infrastructure
- ucs_load_modules
Useful stubs
- ucs_get_tid
- ucs_empty_function
- ucs_empty_function_return_no_resource