Muscle3

Latest version: v0.7.2

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.7.2

Added

- Support for Python 3.12
- Support for NumPy 2 (already working, constraint removed)

Improved

- Fixed `SHUTDOWN_WAIT` profiling event for Python components
- Report successful completion on successful completion (instead of an error)
- Fixed crash on SLURM clusters with hyperthreading
- Use psutil instead of netifaces, which is no longer maintained
- Internal improvements and refactoring to support upcoming fixes and features

Removed

- Support for Python 3.7
- Warnings about ruamel.yaml, via ymmsl/YAtiML update

0.7.1

Added

- Support for Python 3.11 (working already, now official)
- Enabled type checking support for the libmuscle Python API

Improved

- Easier crash debugging due to improved root cause detection
- Fixed crash in profiling timeline plot
- Better performance of timeline plot
- Better visual quality of timeline plot
- Improved profiling of shutdown process
- Fixed crash in profiler for large simulations
- Fixed several (harmless) compiler warnings
- Small documentation rendering improvements

Thanks

- David for reporting many of these and submitting a fix too!

0.7.0

Added

- Checkpointing is now supported in C++ and Fortran as well
- Added built-in profiling feature
- New object-oriented Fortran API (existing API also still available)
- New `Instance.list_settings()` function
- Build support for macOS with CLang and G++/GFortran
- Build support for Cray machines and compilers

Improved

- Compiling with MPI and linking without or vice versa is now impossible
- Fixed MessagePack build failure on old OSes
- Fixed resource allocation for instance sets
- Planner now detects `F_INIT` -> `O_F` loops and gives an error
- Manager correctly handles instances that never register
- Last lines of log now printer to screen on error for smoother problem solving
- Various small fixes and improvements

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:

.. code-block:: text

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:

.. code-block:: fortran

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

- ``DataConstRef`` items can no longer be added to a ``Data`` containing a list or dict.
The newly added ``DataConstRef::list`` and ``DataConstRef::dict`` should be used
instead.

Thanks

- Maarten at Ignition Computing for implementing much of the above
- Peter for debugging the MessagePack build issue
- Peter, Jon and Gavin for ARCHER2 access and support
- Koen for testing macOS build support
- Everyone who reported issues and contributed feature ideas!

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

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.