Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix test action ti-tracing, it needs to behave like a wait
[simgrid.git] / ChangeLog
index a68f0ad..42cd05a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,40 +1,60 @@
 ----------------------------------------------------------------------------
 
 ----------------------------------------------------------------------------
 
-SimGrid (3.29.1) NOT RELEASED YET (v3.30 expected December 21. 2021, 15:59 UTC)
+SimGrid (3.30) January 30. 2022.
+
+The Sunday Bloody Sunday release.
 
 Main user-visible changes:
 
 Main user-visible changes:
- - The SimDag API for the simulation of the scheduling of Directed Acyclic 
-   Graphs has been dropped. It was marked as deprecated for a couple of years. 
-   We finally complete the implementation of what has been called SimDag++ 
-   internally, i.e., porting the different features of SimDag on top of S4U. 
-   The new way to simulate the execution of dependent activities directly by 
+ - The SimDag API for the simulation of the scheduling of Directed Acyclic
+   Graphs has been dropped. It was marked as deprecated for a couple of years.
+   We finally complete the implementation of what has been called SimDag++
+   internally, i.e., porting the different features of SimDag on top of S4U.
+   The new way to simulate the execution of dependent activities directly by
    maestro (without any other actor) is details in the examples/cpp/dag-* series
    maestro (without any other actor) is details in the examples/cpp/dag-* series
-   of examples. 
- - The removal of SimDag led us to also remove the export to Jedule files that 
-   was tightly coupled to SimDag. The instrumentation of DAG simulation is still 
+   of examples.
+ - The removal of SimDag led us to also remove the export to Jedule files that
+   was tightly coupled to SimDag. The instrumentation of DAG simulation is still
    possible through the regular instrumentation API based on the Paje format.
    possible through the regular instrumentation API based on the Paje format.
- - We also dropped the old and clumsy Lua bindings to create platforms in a 
-   programmatic way. It can be done in C++ in a much cleaner way now, which 
-   motivates this suppression.  
-   
+ - We also dropped the old and clumsy Lua bindings to create platforms in a
+   programmatic way. It can be done in C++ in a much cleaner way now, which
+   motivates this suppression.
+
 S4U:
  - Introduce on_X_cb() functions for all signals, to attach a new
    callback to the signal X. The signal variables are now hidden and
    only these functions should be used.
 S4U:
  - Introduce on_X_cb() functions for all signals, to attach a new
    callback to the signal X. The signal variables are now hidden and
    only these functions should be used.
-   Rational: this enables the usual deprecation schema where functions
+   Rationale: this enables the usual deprecation scheme where functions
    remain for 4 releases if we need to modify the signals, while the
    current code with the signal variables directly visible prevents any
    smooth transition.
  - New function: Engine::run_until(date), to split the simulation.
  - New signal: Activity::on_veto, to detect when an activity fails to start.
    remain for 4 releases if we need to modify the signals, while the
    current code with the signal variables directly visible prevents any
    smooth transition.
  - New function: Engine::run_until(date), to split the simulation.
  - New signal: Activity::on_veto, to detect when an activity fails to start.
+ - Signal change: Comm::on_start(Comm&, bool) has been replaced by
+   Comm::on_send and Comm::recv. These two signals respectively correspond to
+   when the sending or receiving side of a Comm is ready. They are raised at
+   the same locations as the former Comm::on_start signal.
  - New function: Engine::track_vetoed_activities() to interrupt run()
    when an activity fails to start, and to keep track of such activities.
    Please see the corresponding example for more info.
  - New function: Engine::track_vetoed_activities() to interrupt run()
    when an activity fails to start, and to keep track of such activities.
    Please see the corresponding example for more info.
+ - New functions: s4u::Comm::{sendto_init, set_source, set_destination} to enable
+   the use of vetoers with direct host-to-host communications. Both source and
+   destination have to set for a comm to start. Each call to these setters check
+   if all vetoes are satisfied. When it is the case, the comm starts. A use case of
+   these functions is given in examples/cpp/dag-scheduling.
+ - New functions: {Exec, Io}::update_priority allow you to modify the priority of
+   these kinds of activities during their execution. Behavior is detailed in
+   examples/cpp/io-priority/.
 
 SMPI:
  - Dynamic costs for MPI operations: New API to allow users to dynamically
    change injected costs for MPI_Recv, MPI_Send and MPI_Isend operations.
    Alternative for smpi/or, smpi/os and smpi/ois configuration options.
 
 SMPI:
  - Dynamic costs for MPI operations: New API to allow users to dynamically
    change injected costs for MPI_Recv, MPI_Send and MPI_Isend operations.
    Alternative for smpi/or, smpi/os and smpi/ois configuration options.
+ - Fix some issues with the replay mechanism.
+
+XBT:
+ - Function xbt::Extendable::get_data() is now templated with the type of the
+   pointee. Untyped function is deprecated. Use get_data<void>() if you still
+   want to retrieve void*.
 
 Documentation:
  - New section: "SimGrid MPI calibration of a Grid5000 cluster"
 
 Documentation:
  - New section: "SimGrid MPI calibration of a Grid5000 cluster"
@@ -46,11 +66,13 @@ Python:
    contexts revealed unstable, specially starting with pybind11 v2.8.0.
 
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
    contexts revealed unstable, specially starting with pybind11 v2.8.0.
 
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
- (FG: issues on Framagit; GF: issues on GForge; GH: issues on GitHub)
+ (FG: issues on Framagit; GH: issues on GitHub)
  - FG#95: Wrong computation time for multicore execution after pstate change
  - FG#97: Wrong computation time for ptask+multicore+pstates
  - FG#95: Wrong computation time for multicore execution after pstate change
  - FG#97: Wrong computation time for ptask+multicore+pstates
+ - FG#98: SMPI offline simulation is inconsistent with the online simulation
+          (deadlocks / message truncation)
  - FG#99: Weird segfault when not sealing an host
  - FG#99: Weird segfault when not sealing an host
+
 ----------------------------------------------------------------------------
 
 SimGrid (3.29) October 7. 2021
 ----------------------------------------------------------------------------
 
 SimGrid (3.29) October 7. 2021
@@ -118,11 +140,11 @@ ns-3 model:
  - Make wifi creation compatible with ns-3 version 3.34 too.
 
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
  - Make wifi creation compatible with ns-3 version 3.34 too.
 
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
- (FG: issues on Framagit; GF: issues on GForge; GH: issues on GitHub)
+ (FG: issues on Framagit; GH: issues on GitHub)
+ - FG#77: Search feature of doc is broken (update sphinx theme version)
  - FG#78: Multiple fixes for SMPI replay:
     - TI tracing of allotallv/w was outputting wrong values
     - MPI_LOGICAL in fortran is actually 32 bits wide, and not 8.
  - FG#78: Multiple fixes for SMPI replay:
     - TI tracing of allotallv/w was outputting wrong values
     - MPI_LOGICAL in fortran is actually 32 bits wide, and not 8.
- - FG#77: Search feature of doc is broken (update sphinx theme version)
 ----------------------------------------------------------------------------
 
 SimGrid (3.28) July 14. 2021
 ----------------------------------------------------------------------------
 
 SimGrid (3.28) July 14. 2021
@@ -240,7 +262,7 @@ Simix:
  - Legacy functions deprecated in this release: SIMIX_get_clock(), SIMIX_run().
 
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
  - Legacy functions deprecated in this release: SIMIX_get_clock(), SIMIX_run().
 
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
- (FG: issues on Framagit; GF: issues on GForge; GH: issues on GitHub)
+ (FG: issues on Framagit; GH: issues on GitHub)
  - FG#47: Complete and fix tests from teshuite/s4u/activity-lifecycle
  - FG#64: Configuring smpi/IB-penalty-factors
  - FG#67: Running computation concurrently with MPI_Iallreduce
  - FG#47: Complete and fix tests from teshuite/s4u/activity-lifecycle
  - FG#64: Configuring smpi/IB-penalty-factors
  - FG#67: Running computation concurrently with MPI_Iallreduce
@@ -344,7 +366,7 @@ C binding and interface:
    available as sg_actor_start_() and sg_actor_create_().
 
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
    available as sg_actor_start_() and sg_actor_create_().
 
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
- (FG: issues on Framagit; GF: issues on GForge; GH: issues on GitHub)
+ (FG: issues on Framagit; GH: issues on GitHub)
  - FG#37: Parallel tasks are limited to 1 core per host
  - FG#62: Running "smpirun -replay" on large networks
  - FG!46: Fix a few potential memory leaks in SMPI colls
  - FG#37: Parallel tasks are limited to 1 core per host
  - FG#62: Running "smpirun -replay" on large networks
  - FG!46: Fix a few potential memory leaks in SMPI colls