New presentation materials:
- The Mochi team presented a BoF session entitled “Using Mochi to build data services: Overview and Updates” at the 2021 ECP Annual Meeting, April 13, 2021.
- 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.
GitHub migration complete:
- See https://github.com/mochi-hpc now for most packages, and see our news post for tips on how to update Spack.
New software releases:
- Argobots 1.1
- Underlying user-level threading package for Mochi
- 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)
- See Argobots documentation or Spack package variants. Notable optoins:
- 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.