Skip to content

Release 0.5.0

Compare
Choose a tag to compare
@LourensVeen LourensVeen released this 15 Jul 15:04
· 571 commits to develop since this release

MUSCLE3 0.5.0

MUSCLE3 is the third incarnation of the Multiscale Coupling Library and Environment, and the successor to MUSCLE 2. Its purpose is to make creating coupled multiscale simulations easy, and to then enable efficient Uncertainty Quantification of such models using advanced semi-intrusive algorithms.

MUSCLE3 uses the Multiscale Modelling and Simulation Language (MMSL) to describe the structure of a multiscale model. MMSL can be expressed in the form of a diagram (gMMSL; not yet implemented) or as a YAML file (yMMSL; this is convenient both for people and for software). The MMSL lets one describe which components (submodels, scale bridges, data converters, UQ components, etc.) a multiscale model consist of, how many instances of each we need, and how they are wired together.

MUSCLE3 is intended to scale from your laptop to the exascale. At the low end, it supports a non-distributed but parallel mode in which an entire multiscale simulation, including all component implementations and the MMSL configuration, is in a single (short) Python file. Next is a distributed mode where the manager and component instances are started on multiple nodes in a cluster, and communicate directly with one another. Beyond that, additional components and optimisations are envisioned that would allow scaling to huge machines or combinations of multiple machines. Our goal is to make the transitions between these modes as smooth as possible, so that extra compute power can be added gradually, as needed.

Added

  • MUSCLE3 now starts submodels and other components (using QCG-PilotJob)
  • Automatic resource management for components on HPC

Improved

  • Build and installation process now even easier
  • Improved error messages and reliability
  • Cleaner and more informative logging output
  • TCP performance and scalability improvements

Fixed

  • Various issues when building and running on HPC clusters
  • Many small fixes

Removed

  • Python 3.5 support
  • Removed gRPC for faster and more reliable builds
  • Pipe-based networking, as it had no benefits and some issues

Thanks

  • Stefan, Merijn and Maarten for reporting issues
  • Piotr and Bartek for creating and supporting QCG-PilotJob