Releases: bsc-wdc/compss
Releases · bsc-wdc/compss
2.5 (Freesia)
Release Notes
New features:
-
Runtime:
- New Concurrent direction type for task parameter.
- Multi-node tasks support for native (Java, Python) tasks. Previously, multi-node tasks were only posible with mpi or decaf tasks.
- Compss decorator for executing compss applications as tasks.
- New runtime api to synchronize files without opening them.
- Customizable task failure management with the "onFailure" task property.
- Enabled master node to execute tasks.
-
Python:
- Support for collection as task parameter.
- Supported task inheritance.
- New persistent MPI worker mode (alternative to subprocess).
- Support to ARM MAP and DDT tools (with MPI worker mode).
-
C:
- Support for task without parameters and applications without src folder.
Improvements:
- New task property "targetDirection" to indicate direction of the target object in object methods. Substitutes the "isModifier" task property.
- Warnings for deprecated or incorrect task parameters.
- Improvements in Jupyter for Supercomputers.
- Upgrade of runcompss_docker script to docker stack interface.
- Several bug fixes.
Known Limitations:
- Tasks that invoke Numpy and MKL may experience issues if a different MKL threads count is used in different tasks. This is due to the fact that MKL reuses threads in the different calls and it does not change the number of threads from one call to another.
- C++ Objects declared as arguments in a coarse-grain tasks must be passed in the task methods as object pointers in order to have a proper dependency management.
- Master as worker is not working for executions with persistent worker in C++.
- Coherence and concurrent writing in parameters annotated with the "Concurrent" direction must be managed by the underlaying distributed storage system.
- Delete file calls for files used as input can produce a significant synchronization of the main code.
2.4 (Elderflower)
#Release Notes
New features:
-
Runtime:
- New supercomputers supported Power9 (OpenPower) and ThunderX (ARM 64)
-
Python:
- Autoparallel Module to automatically taskify affine loop nests
- Support for Python notebook execution in Supercomputers
- Distributed Data Set lightweight library that eases development of PyCOMPSs applications by distributing data, and/or providing most common data operations such as map, filter, reduce, etc.
-
C:
- Multi-architecture and Cross-compiling build support
Improvements:
- New example applications distributed on Github
- Reduced overhead of c-binding
- Task sandbox reuse to reduce execution overhead
- Script to clean COMPSs zombie processes
- Several bug fixes
Known Limitations:
- Tasks that invoke Numpy and MKL may experience issues if a different MKL threads count is used in different tasks. This is due to the fact that MKL reuses threads in the different calls and it does not change the number of threads from one call to another.
- C++ Objects declared as arguments in a coarse-grain tasks must be passed in the task methods as object pointers in order to have a proper dependency management.
2.3 (Daisy)
Release Notes
New features:
-
Runtime:
- Persistent storage API implementation based on Redis (distributed as default implementation with COMPSs)
- Support for FPGA constraints and reconfiguration scripts
- Support for PBS Job Scheduler and the Archer Supercomputer
-
Java:
- New API call to delete objects in order to reduce application memory usage
-
Python:
- Support for Python 3
- Support for Python virtual environments (venv)
- Support for running PyCOMPSs as a Python module
- Support for tasks returning multiple elements (returns=#)
- Automatic import of dummy PyCOMPSs API
-
C:
- Persistent worker with Memory-to-memory transfers
- Support for arrays (no serialization required)
Improvements:
- Distribution with docker images
- Support for sharing objects in memory between tasks (no file serialization is required now with persistent workers)
- Source Code and example applications distribution on Github
- Automatic inference of task return
- Improved obsolete object cleanup
- Improved tracing support for applications using persistent memory
- Improved finalization process to reduce zombie processes
- Several bug fixes
Known Limitations:
- Tasks that invoke Numpy and MKL may experience issues if a different MKL threads count is used in different tasks. This is due to the fact that MKL reuses threads in the different calls and it does not change the number of threads from one call to another.