Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'dev-cpuimpl-used' into 'master'
[simgrid.git] / ChangeLog
index 80a7892..2ef1975 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,61 @@
-SimGrid (3.30.1) NOT RELEASED YET (v3.31 expected March 20. 2022, 15:33 UTC)
+SimGrid (3.31.1) NOT RELEASED YET (v3.32 expected June 21. 2022, 09:13 UTC)
+
+Python:
+  - Added the following bindings / examples:
+    - Comm (now 100% covers the C++ interface):
+      - Comm.dst_data_size, Comm.mailbox, Comm.sender, Comm.start_time, Comm.finish_time
+      - Comm.state_str [examples: examples/python/comm-failure/, examples/python/comm-host2host/]
+      - Comm.remaining [examples: examples/python/comm-host2host/, examples/python/comm-suspend/]
+      - Comm.set_payload_size [example: examples/python/comm-host2host/]
+      - Comm.set_rate [example: examples/python/comm-throttling/]
+      - Comm.sendto, Comm.sendto_init, Comm.sendto_async [example: examples/python/comm-host2host/]
+      - Comm.start, Comm.suspend, Comm.resume [example: examples/python/comm-host2host/]
+      - Comm.test_any [example: examples/python/comm-testany/]
+      - Comm.wait_until [example: examples/python/comm-waituntil/]
+    - Engine:
+      - Engine.host_by_name [example: examples/python/comm-host2host/]
+      - Engine.mailbox_by_name_or_create [example: examples/python/comm-pingpong/]
+    - Mailbox: Mailbox.ready [example: examples/python/comm-ready/]
+
+Platform description & visualization:
+  - More robust sanity checks for platforms, to reject unallowed topologies with
+    a proper error message.
+  - One new C++ platform example, supernode.cpp. A Python script (supernode.py)
+    demonstrates how we can generate a nice graphical representation of the
+       platform.
+
+Tools:
+  - Enhancements to the graphicator tool:
+       - Allow to dump the platform topology as a CSV file representing the edges
+         of the graph (in addition to the DOT format).
+       - Fix graphicator for "cluster" topologies (e.g. fat-tree, dragonfly).
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GH: issues on GitHub)
+ - FG#105: "Variable penalty should not be negative!" with in-flight messages and bandwidth profiles
+ - FG#109: Application time reported by --cfg=smpi/display-timing:yes is wrong
+
+----------------------------------------------------------------------------
+
+S4U:
+ - kill signal Comm::on_completion that was not working anyway.
+ - Expose signals Activity::on_suspend and Activity::on_resume
+
+SimGrid (3.31) March 22. 2022.
+
+The ненасильство release. We stand against war.
+
+Against the agression by a sick system that forces peoples to take arms against each other.
+
+MC:
+ - Rework the internals, for simpler and modern code. This shall unlock many future improvements.
+ - You can now define plugins onto the DFS explorer (previously called SafetyChecker), using the
+   declared signals. See CommunicationDeterminism for an example.
+ - Support mutex, semaphore and barrier in DPOR reduction
+ - Seems to work on Arm64 architectures too.
+ - Display a nice error message when ptrace is not usable.
+ - New test suite, imported from the MPI Bugs Initiative (MBI). Not all MBI generators are integrated yet.
+ - Remove the ISP test suite: it's not free software, and it's superseeded by MBI.
 
 SMPI:
  - fix for FG#100 by ensuring small asynchronous messages never overtake larger
 
 SMPI:
  - fix for FG#100 by ensuring small asynchronous messages never overtake larger
@@ -7,13 +64,83 @@ SMPI:
    their handles.
  - tracing: ensure that we dump the TI traces continuously during execution and
    not just at the end, reducing memory cost and performance hit.
    their handles.
  - tracing: ensure that we dump the TI traces continuously during execution and
    not just at the end, reducing memory cost and performance hit.
+ - Update OpenMPI collectives selection logic to match current one (4.1.2)
+ - Add a coherence check for collective operation order and root/MPI_Op
+   coherence. Potentially costly so not activated unless smpi:pendantic is set
+   or -analyze is given.
+
+S4U:
+ - New signal: Engine::on_simulation_start_cb()
+ - Introduce a new execution mode with this_actor::thread_execute(). This simulate
+   the execution of a certain amount of flops by multiple threads ran by a host. Each
+   thread executes the same number of flops, given as argument. An example of this new
+   function can be found in examples/cpp/exec-threads.
+ - Reimplementation of barriers natively.
+   Previously, they were implemented on top of s4u::Mutex and s4u::ConditionVariable.
+   The new version should be faster (and can be used in the model-checker).
+ - Actor::get_restart_count(): Returns the number of reboots that this actor did.
+
+MSG:
+ - MSG_barrier_destroy now expects a non-const msg_barrier parameter.
+
+New plugin: the Chaos Monkey (killing actors at any time)
+ - Along with the new simgrid-monkey script, it tests whether your simulation
+   resists resource failures at any possible timestamp in your simulation.
+ - It is mostly intended to test the simgrid core in extreme conditions,
+   but some users may find it interesting too.
+
+Models:
+ - New solver for parallel task: BMF.
+   - More realistic sharing of heterogeneous resources compared to the fair
+   bottleneck solver used by ptask_L07.
+   - Implement the BMF (Bottleneck max fairness) fairness.
+   - Improved resource sharing for parallel tasks with sub-flows (parallel
+     communications between same source and destination inside the ptask).
+   - Parameters:
+     - "--cfg=host/model:ptask_L07 --cfg=host/solver:bmf": enable the ptask
+        model with BMF solver.
+     - "--cfg=bmf/max-iterations: <N>": maximum number of iterations performed
+        by BMF solver (default: 1000).
+     - "--cfg=bmf/precision: <N>": numerical precision used when computing
+        resource sharing (default: 1e-12).
+   - This model requires Eigen3 library. Make sure Eigen3 is installed to use BMF.
+
+General:
+  - Modifications of the Profile mechanism, with some impact on users
+    - Addition of a new (S4U) method to init profiles from generic functions to improve versatility
+    - Fix initial behaviour of state_profiles
+    - Modify periodicity to behave like a period, and not like a loop delay
 
 XBT:
  - Drop xbt_dynar_shrink().
 
 
 XBT:
  - Drop xbt_dynar_shrink().
 
+Python:
+ - Made the following bindings static (previously member functions):
+   - Actor: Actor.kill_all(), Actor.by_pid()
+   - Host: Host.by_name(), Host.current(), Host.on_creation_cb()
+   - Mailbox: Mailbox.by_name()
+ - Added the following bindings:
+     - this_actor.warning()
+     - Mailbox.put_init() [example: examples/python/comm-waitallfor/]
+     - Comm.detach() [example: examples/python/comm-waitallfor/]
+     - Comm.wait_for() [example: examples/python/comm-waitfor/]
+     - Comm.wait_any_for()
+     - Comm.wait_all_for() [example: examples/python/comm-waitallfor/]
+     - Mutex [example: examples/python/synchro-mutex/]
+     - Barrier [example: examples/python/synchro-barrier/]
+     - Semaphore [example: examples/python/synchro-semaphore/]
+
+Build System:
+ - Remove target "make uninstall" which was incomplete and no longer maintained.
+
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
  (FG: issues on Framagit; GH: issues on GitHub)
 Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
  (FG: issues on Framagit; GH: issues on GitHub)
+ - FG#57: Mc SimGrid should test whether ptrace is usable
+ - FG#87: Smpi scripts fail with spaces in paths
  - FG#100: [SMPI] Order of the message matching is not guaranteed
  - FG#100: [SMPI] Order of the message matching is not guaranteed
+ - FG#101: LGPL 2.1 is deprecated license
+ - FG#104: "make uninstall" not up-to-date
+ - GH#151: Missing mutexes for DPOR.
 
 ----------------------------------------------------------------------------
 
 
 ----------------------------------------------------------------------------
 
@@ -99,7 +226,6 @@ The "Ask a stupid question" release.
 We wish that every user ask one question about SimGrid to celebrate.
 On Mattermost, Stack Overflow or using the issues tracker.
 
 We wish that every user ask one question about SimGrid to celebrate.
 On Mattermost, Stack Overflow or using the issues tracker.
 
-
 New modeling features:
  - Non-linear resource sharing, modeling resources whose performance heavily degrades with contention:
    - The total capacity may be updated dynamically through a callback
 New modeling features:
  - Non-linear resource sharing, modeling resources whose performance heavily degrades with contention:
    - The total capacity may be updated dynamically through a callback