The slides include information about getting started with Mochi, recent project updates, and highlights from Bedrock (a tool to aid with Mochi composition), Mercury (the underlying RPC framework for Mochi), and Mochi profiling tools.
includes performance improvements, broader platform support, and new profiling and debugging capabilities (more on that later)
Mercury 2.0.1rc3
Underlying RPC communication package for Mochi
improved logging and several performance optimizations
final 2.0.1 release coming soon
Mochi-sdskv 0.1.12
Key/Value store microservice
Bedrock support
various packaging (cmake, pkgconfig, and dependency) improvements
Bedrock 0.2.1
Flexible service composition tool
various packaging (cmake, pkgconfig) improvements
Sonata 0.6.2
Document store microservice
various packaging (cmake) improvements
Performance regressions from previous quarterly newsletter resolved:
Power9 CPU mutex locking performance regression is resolved in Argobots 1.1
OmniPath network performance regression is resolved in Mercury 2.0.1rc3
New debugging/profiling/maintenance features:
Margo is now using munit for unit testing
Available in origin/main (or mochi-margo@main in Spack)
Coverage is limited for now but will be expanded over time
We will also be leveraging this frame work in additional components over time
Recent Argobots updates include multiple (optional) stack guard methods
See Argobots documentation or Spack package variants. Notable optoins:
“mprotect”: real time detection of stack overruns (with some performance overhead; just use this for debugging)
“canary”: lightweight deferred stack overrun detection (lighter weight, but will not report that a stack overflow occurred until shutdown)
margo_state_dump() function
Available in origin/main (or mochi-margo@main in Spack)
function that can be called at any time to dump point-in-time state to a text file or stdout for debugging purposes
includes Margo json configuration, Argobots configuration, current Argobots ES layout, Argobots performance profile, in flight RPC counts, stack dump for blocked user-level threads, etc. See https://github.com/mochi-hpc/mochi-margo/blob/main/doc/debugging.md for details.