|
1 | 1 | ---------------------------------------------------------------------------- |
2 | 2 |
|
| 3 | +DTLMod (0.4) February 16, 2026 |
| 4 | + |
| 5 | +Major improvements: |
| 6 | + - Data Reduction framework |
| 7 | + - New abstract ReductionMethod interface for extensible data reduction strategies |
| 8 | + - Decimation method: spatial subsampling with per-dimension stride, optional |
| 9 | + interpolation (linear, quadratic, cubic), configurable computational cost, |
| 10 | + and support for both publisher-side and subscriber-side application |
| 11 | + - Compression method: size reduction with preserved shape, supporting three |
| 12 | + compressor profiles (fixed ratio, SZ-inspired, and ZFP-inspired models), |
| 13 | + separate compression and decompression costs, and per-transaction ratio |
| 14 | + variability |
| 15 | + - Publisher-side reduction state is propagated to subscribers through |
| 16 | + inquire_variable, enabling detection and prevention of conflicting |
| 17 | + double reductions |
| 18 | + - Reduction operations work with both File and Staging engines |
| 19 | + - New documentation pages for the reduction feature (Reduction, Decimation, |
| 20 | + and Compression) and updated Main Concepts page |
| 21 | + - Improved test coverage |
| 22 | + - Comprehensive C++ and Python tests for both reduction methods |
| 23 | + - Coverage of error handling, parameter validation, re-parameterization, |
| 24 | + and publisher-subscriber workflows for each reduction method |
| 25 | + - New test for subscriber-first arrival pattern in File engine |
| 26 | + - Code quality and CI improvements |
| 27 | + - Improved coverage reporting with SonarQube and CodeFactor integration |
| 28 | + - Added subscriber synchronization barrier in File engine |
| 29 | + - Removed unnecessary defensive guards and race condition checks that |
| 30 | + cannot occur under SimGrid's maestro orchestration |
| 31 | + |
| 32 | +API Changes: |
| 33 | + - New Stream method: |
| 34 | + - Stream::define_reduction_method(name) creates a named reduction method |
| 35 | + ("decimation" or "compression") for the stream |
| 36 | + - New Variable methods and properties: |
| 37 | + - Variable::set_reduction_operation(method, parameters) applies a reduction |
| 38 | + with key-value parameters to a variable |
| 39 | + - Variable::is_reduced(), is_reduced_by_publisher(), is_reduced_by_subscriber() |
| 40 | + query the reduction state |
| 41 | + - Variable::get_reduction_method() retrieves the applied ReductionMethod |
| 42 | + - New ReductionMethod class with query methods: |
| 43 | + - get_reduced_variable_global_size(), get_reduced_variable_local_size() |
| 44 | + - get_reduced_variable_shape() |
| 45 | + - get_flop_amount_to_reduce_variable(), get_flop_amount_to_decompress_variable() |
| 46 | + - Full Python bindings for all reduction operations, including nine new |
| 47 | + exception types for parameter validation errors |
| 48 | + - Engine::put() now automatically simulates reduction cost and transports the |
| 49 | + reduced data size when the variable is reduced |
| 50 | + - Engine::get() now automatically simulates decompression cost after receiving |
| 51 | + compressed data |
| 52 | + |
| 53 | +---------------------------------------------------------------------------- |
| 54 | + |
3 | 55 | DTLMod (0.3) January 19, 2026 |
4 | 56 |
|
5 | 57 | Major improvements: |
|
0 commit comments