mercury 2.4.0rc4
Pre-release
Pre-release
Summary
This is a preview release of the v2.4.0 release.
New features
Added in rc4
- [HG]
- Add
multi_recv_copy_threshold
init parameter- Use this new parameter to fallback to memcpy to prevent starvation of multi-recv buffers
- Associate handle to HG proc
hg_proc_get_handle()
can be used to retrieve handle within proc functions
- Add
Added in rc3
- [HG]
- Add
multi_recv_op_max
init parameter- This allows users to control number of multi-recv buffers posted (libfabric plugin only)
- Add
no_overflow
init option to prevent use of overflow buffers - Improve multi-recv buffer warning messages
- Add
HG_Event_get_wait_fd()
to retrieve internal wait object - Add
HG_Event_ready()
/HG_Event_progress()
/HG_Event_trigger()
to support wait fd progress model- Simplify progress mechanism and remove use of internal timers
- Always make NA progress when
HG_Event_progress()
is called - Update HG progress to use new NA progress routines
- Add missing
HG_WARN_UNUSED_RESULT
to HG calls - Switch to using standard types and align with NA
- Keep some
uint8_t
instances instead ofhg_bool_t
for ABI compatibility
- Keep some
- Add
- [NA]
- Add
NA_Poll()
andNA_Poll_wait()
routines - Deprecate
NA_Progress()
in favor of poll routines - Add
NA_Context_get_completion_count()
to retrieve size of completion queue - Update plugins to use new
poll
andpoll_wait
callbackspoll_wait
plugin callback remains for compatibility
- Fix documentation of
NA_Poll_get_fd()
- Add missing
NA_WARN_UNUSED_RESULT
qualifiers - Bump NA version to 5.0.0
- Remove deprecated CCI plugin
- Return last known error when plugin loading fails
- Add
- [NA OFI]
- Remove unused
NA_OFI_DOM_SHARED
flag - Always use
FI_SOURCE
andFI_SOURCE_ERR
when both are supported
- Remove unused
- [NA UCX]
- Add
ucx
log outlet and redirect UCX log- Use default HG log level if
UCX_LOG_LEVEL
is not set
- Use default HG log level if
- Add
- [HG Util]
- Add
hg_log_vwrite()
to write log fromva_list
- Add
hg_log_level_to_string()
- Clean up
mercury_event
code and addconst
qualifier tohg_poll_get_fd()
- Add
const
on atomic gets - Switch to using
sys/queue.h
directly - Remove
HG_QUEUE
andHG_LIST
definitions - Add
hg_dl_error()
to return last error
- Add
- [HG/NA Perf Test]
- Add
-u
option to control number of multi-recv ops (server only) - Add
-i
option to control number of handles posted (server only) - Update to use new HG/NA progress routines and remove use of
hg_request
- Add
Added in rc2
- [NA OFI]
- Add support for
FI_AV_AUTH_KEY
(requires libfabric >= 1.20)- Add runtime check for cxi provider version
- Setting multiple auth keys disables
FI_DIRECTED_RECV
- Separate opening of AV and auth key insertion
- Parse auth key range when
FI_AV_AUTH_KEY
is available - Encode/decode auth key when serializing addrs
- Add support for
FI_AV_USER_ID
- Clean up handling of
FI_SOURCE_ERR
- Remove support of
FI_SOURCE
w/oFI_SOURCE_ERR
- Add support for new CXI address format
- Add support for
Added in rc1
- [NA]
- Add init info version compatibility wrappers
- Bump NA version to v4.1.0
- Add support for
traffic_class
init info (only supported by ofi plugin)
- [NA OFI]
- Attempt to distribute multi-NIC domains based on selected CPU ID
- Support selection of traffic classes (single class per NA class)
- [HG/NA Perf Test]
- Add
-f
/--hostfile
option to select hostfile to write to / read from - Add
-T
/--tclass
option to select trafic class - Autodetect MPI implementation in perf utilities
- MPI can now be autodetected and dynamically loaded in utilities, even if
MERCURY_TESTING_ENABLE_PARALLEL
was turned off. IfMERCURY_TESTING_ENABLE_PARALLEL
is turned on, tests remain manually linked against MPI as they used to be.
- MPI can now be autodetected and dynamically loaded in utilities, even if
- Add
Bug fixes
Added in rc4
- [HG]
- Fix couple of type changes introduced in rc1 that could have broken ABI
- Fix shared-memory path that was previously disabled in conjunction with libfabric transports that use the multi-recv capability
- [HG util]
- Fix
dlog_free
not called when parent/child have separate dlogs
- Fix
- [HG/NA]
- Fix init info changes made in previous rcs to prevent ABI breakage
- HG NA init info is fixed to v4.0 for now and duplicates tclass info
Added in rc3
- [HG]
- Fix behavior of
request_post_incr
init parameterrequest_post_incr
cannot be disabled (set to -1) with multi-recv
- Fix behavior of
- [HG Util]
- Fix mercury log to correctly generate outlet names
- Fix log outlets to use prefixed subsys name
- Fix use of macros in debug log
- [CMake]
- Fix cmake_minimum_required() warning
- Update kwsys and mchecksum dependencies
Added in rc2
- [HG Util]
- Use destructor to free log outlets
- [NA]
- Fix missing free of dynamic plugin entries
- [NA UCX]
- Fix
hg_info
not filtering protocol- Allow
na_ucx_get_protocol_info()
to resolve ucx tl name aliases
- Allow
- Fix
- [NA OFI]
- Fix shm provider flags
- [NA Test]
- Remove could not find MPI message
Added in rc1
- [HG Util]
- Add missing prototype to
hg_atomic_fence()
definition
- Add missing prototype to
- [NA OFI]
- Remove excessive MR count warning message
- [NA Perf]
- Ensure perf tests wait on send completion
⚠️ Known Issues
- [NA OFI]
- [tcp/verbs;ofi_rxm] Using more than 256 peers requires
FI_UNIVERSE_SIZE
to be set.
- [tcp/verbs;ofi_rxm] Using more than 256 peers requires