Quarterly newsletter, April 2021

New presentation materials:

GitHub migration complete:

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)
  • 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.