Skip to content

Latest commit

 

History

History
238 lines (161 loc) · 4.83 KB

CHANGELOG.rst

File metadata and controls

238 lines (161 loc) · 4.83 KB

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

0.7.0

Backwards Incompatible changes

  • Instance.reuse_instance no longer accepts apply_overlay argument. Use InstanceFlags.DONT_APPLY_OVERLAY when creating the instance instead.

  • LIBMUSCLE_Instance_create signature has changed, this might lead to errors like:

       30 |     instance = LIBMUSCLE_Instance_create(ports, MPI_COMM_WORLD, root_rank)
          |               1
    Error: Type mismatch in argument ‘flags’ at (1); passed INTEGER(4) to TYPE(libmuscle_instanceflags)
    

    You may provide an explicit InstanceFlags() argument, or use named arguments:

    instance = LIBMUSCLE_Instance_create(ports, LIBMUSCLE_InstanceFlags(), MPI_COMM_WORLD, root_rank)
    instance = LIBMUSCLE_Instance_create(ports, communicator=MPI_COMM_WORLD, root=root_rank)

0.6.0

Added

  • Connecting multiple conduits to outgoing ports
  • Checkpointing (preview, not fully reliable and open to change)
  • Clang support
  • Intel® compiler support
  • Error in case different versions of MUSCLE3 are used

Improved

  • TCP latency (performance)
  • More helpful messages for configuration errors
  • Small documentation improvements

Removed

  • Python 3.6 support

Thanks

  • Maarten at Ignition Computing for implementing much of the above
  • The ITER Organisation for funding much of this work

0.5.0

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

0.4.0

Incompatible changes

  • compute_elements are now called components in .ymmsl files

Improved

  • Use latest OpenSSL library when installing it automatically

Fixed

  • Handling of non-contiguous and F-order numpy arrays
  • C++ memory usage for large dicts/lists now more reasonable
  • Improved shutdown when Python submodel crashes
  • Logging warning message

0.3.2

Improved

  • Accessing settings from C++ now more flexible
  • Python produces more detailed logs to aid in debugging
  • Improved pkg-config set-up
  • Improved build system output to help find problems
  • Documentation on logging in Python
  • Protobuf dependency build now more compatible

Fixed

  • C++ list/dict building functions
  • C++ use-after-free when receiving grids

Thanks

  • Pavel for testing and reporting issues
  • Dongwei for testing and reporting issues

0.3.1

Added

  • Support for sending and receiving multidimensional grids/arrays
  • Support for Python 3.8

Improved

  • Python 3.5.1 support
  • Build compatibility on more operating systems

Thanks

  • Olivier for testing, reporting and fixing build issues
  • Pavel for testing and reporting build issues
  • Hamid for testing and reporting build issues
  • Ben for testing and reporting build issues

0.3.0

Incompatible changes

  • Data::key() now returns std::string instead of DataConstRef.
  • Data::value() now return Data rather than DataConstRef

Added

  • Support for Fortran, including MPI

Improved

  • Fixes to examples
  • Small documentation improvements
  • Improved compatibility with other packages using gRPC

Thanks

  • Pavel for reporting documentation/examples issues
  • Derek for testing on Eagle
  • Dongwei for reporting the gRPC issue

0.2.0

Added

  • Support for C++
  • Support for MPI in C++

Improved

  • Cluster/HPC networking

Incompatible Changes

  • Fatal logic errors now throw instead of exiting, so that you have a chance to shut down the model cleanly before exiting.
  • Instance.exit_error() was replaced by Instance.error_shutdown(), which no longer exits the process, it just shuts down the Instance.
  • Central MUSCLE 3-managed settings are called settings everywhere now, not parameters. As a result, the API has changed in several places.

0.1.0

Initial release of MUSCLE 3.

Added

  • Coupling different submodel instances
  • Spatial and temporal scale separation and overlap
  • Settings management
  • Combining features
  • Python support
  • Initial distributed execution capability