All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- MUSCLE3 now starts submodels and other components (using QCG-PilotJob)
- Automatic resource management for components on HPC
- Build and installation process now even easier
- Improved error messages and reliability
- Cleaner and more informative logging output
- TCP performance and scalability improvements
- Various issues when building and running on HPC clusters
- Many small fixes
- Python 3.5 support
- Removed gRPC for faster and more reliable builds
- Pipe-based networking, as it had no benefits and some issues
- Stefan, Merijn and Maarten for reporting issues
- Piotr and Bartek for creating and supporting QCG-PilotJob
- compute_elements are now called components in .ymmsl files
- Use latest OpenSSL library when installing it automatically
- 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
- 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
- C++ list/dict building functions
- C++ use-after-free when receiving grids
- Pavel for testing and reporting issues
- Dongwei for testing and reporting issues
- Support for sending and receiving multidimensional grids/arrays
- Support for Python 3.8
- Python 3.5.1 support
- Build compatibility on more operating systems
- 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
- Data::key() now returns std::string instead of DataConstRef.
- Data::value() now return Data rather than DataConstRef
- Support for Fortran, including MPI
- Fixes to examples
- Small documentation improvements
- Improved compatibility with other packages using gRPC
- Pavel for reporting documentation/examples issues
- Derek for testing on Eagle
- Dongwei for reporting the gRPC issue
- Support for C++
- Support for MPI in C++
- Cluster/HPC networking
- 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.
Initial release of MUSCLE 3.
- Coupling different submodel instances
- Spatial and temporal scale separation and overlap
- Settings management
- Combining features
- Python support
- Initial distributed execution capability