Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
migrate execute_tasks from simix::Global to kernel::EngineImpl
[simgrid.git] / ChangeLog
index fd3a5ba..194b7e2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,17 +1,56 @@
 ----------------------------------------------------------------------------
 
-SimGrid (3.26.1) NOT RELEASED YET (v3.27 expected March 20. 2021, 09:37 UTC)
+SimGrid (3.27.1) NOT RELEASED YET (v3.28 expected June 21. 2021, 03:32 UTC)
 
-User-visible changes:
+S4U:
+ - Fixed a bug where Activity::wait_for() killed the activity on timeout.
+   Explicitly cancel the activity to get back to previous behavior.
+
+SMPI:
+ - The default SMPI compiler flags are no more taken from the environment.
+   They can be explicitly set through cmake parameters SMPI_C_FLAGS,
+   SMPI_CXX_FLAGS, or SMPI_Fortran_FLAGS.
+
+LUA:
+ - Lua platform files are deprecated. Their support will be dropped after v3.31.
+
+XBT:
+ - xbt_assert is not disabled anymore, even when built with enable_debug=off.
+
+Documentation:
+ - New tutorial: Model-checking and formal assessment
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GF: issues on GForge; 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
+ - GH#322: Issue when an actor kills his host vm
+
+----------------------------------------------------------------------------
+
+SimGrid (3.27) March 29. 2021
+
+The Ragnar Release (anniversary of the siege of Paris by Vikings in 845)
+
+Main user-visible changes:
+ - All functions marked as deprecated for one year were removed.
+ - Removed all that was related to the "Storage" type in all APIs and bindings.
+   "Disks" have been introduced more than a year ago to replace them for the better.
+   It's time to finish this replacement.
+ - SMPI ABI breaks from previous version: MPI global handles (predefined datatypes,
+   ops, COMM_WORLD) are now defined differently, and can be used in initializers,
+   avoiding "initializer element is not constant" errors with some codes. Please be
+   careful to recompile your MPI codes if switching to this new SimGrid version.
+ - Network model ns-3 now requires version ns-3.28 or higher.
  - Removed some option aliases that were deprecated since v3.23 (June 2019)
    - 'verbose-exit' is now 'debug/verbose-exit'
    - 'simix/breakpoint' is now 'debug/breakpoint'
    - 'clean-atexit' is now 'debug/clean-atexit'
- - Removed all that was related to the "Storage" type in all APIs and bindings.
-   "Disks" have been introduced more than a year ago to replace them for the better.
-   It's time to finish this replacement.
 
 S4U:
+ - New functions: Comm::sendto_{init,async} to initiate a communication
+   on between two (possibly remote) hosts.
  - Define new template functions Mailbox::get_unique(), returning a std::unique_ptr.
  - Functions Mailbox::get() and Mailbox::get_async() are now templated with the
    type of the pointee. Untyped functions are deprecated. Use Mailbox::get<void>()
@@ -19,12 +58,76 @@ S4U:
  - Unify the interface of Activity::on_{start/activity}
  - New function: Comm::get_dst_data()
  - New function: Comm::set_payload_size() to set the amount of bytes to simulate.
- - New functions: Comm::sendto_{init,async} to initiate a communication
-   on between two (possibly remote) hosts.
+
+Models:
+ - ptask should now work better with multicore hosts (FG#37).
+ - Internal cleanups and refactoring around activities, to prepare for SimDAG++.
+ - Internal cleanups and refactoring around models, to prepare for programmatic
+   platform creation.
+ - Modernize our tests of the performance models
 
 Documentation:
- - New section: Configuring the logs from the command line.
- - New section: Programming API of logs.
+ - User manual:
+   - New section: Configuring the logs from the command line.
+   - New section: Programming API of logs.
+   - New section: Getting realistic results
+   - New section: Examples of SMPI Usage
+ - New part: SimGrid's Internals, with a section on Design goals
+ - Move back to the classical Breathe tool chain, and fix many small glitches.
+
+SMPI:
+ - Handle leak checking: SMPI will now display a message if MPI handles are still
+   present at the end of a simulation. Option smpi/list-leaks:n will display the n
+   first leaked pointers and their types.
+ - smpi/display-allocs option : Display Memory allocations analysis, with hints
+   about the largest allocations. This only works for allocations with malloc/calloc
+   and not compiled with SMPI_NO_OVERRIDE_MALLOC
+ - "-analyze" option in smpirun will activate smpi/display-allocs and smpi/display-timing
+ - New implemented MPI calls: MPI_File_set_size, MPI_Aint_add, MPI_Aint_diff,
+   MPI_Type_get_extent_x, MPI_Type_get_true_extent_x, MPI_Status_set_elements_x
+ - Support for MPI C++ datatypes (MPI_CXX_BOOL, MPI_CXX_FLOAT_COMPLEX,
+   MPI_CXX_DOUBLE_COMPLEX, MPI_CXX_LONG_DOUBLE_COMPLEX)
+ - Replay now opens and parses the trace file only once for all ranks when possible.
+ - Misc fixes:
+   - better handling of MPI_PROC_NULL
+   - MPI_Group_incl was broken in some cases
+   - PAPI tracing now fixed
+   - MPI_Errhandlers are properly handled for MPI_COMM_WORLD
+   - SMPI will now fail properly when receive size < sent size, instead of
+     just setting MPI_ERR_TRUNCATE and keep going.
+ - Proxy Apps ( https://framagit.org/simgrid/SMPI-proxy-apps ):
+   - Remove useless build patches and split build/run patches on the page
+   - Build in parallel when possible
+   - Test on yum-based systems
+   - New nightly tested Proxy-apps:
+     - OpenMPI mpi-test-suite
+     - Coral MCB, LSMS, Qbox, CLOMP
+     - ECP/Mantevo Cloverleaf3D, Ember
+     - Codevault bhtree_mpi
+
+Model checker:
+ - Only initialize the Dwarf parser when needed, saving 10 seconds in most cases.
+ - Start to overhaul the implementation to modernize it (still ongoing).
+
+XBT:
+ - Drop simgrid::xbt::demangle(). Please use boost::core::demangle() instead.
+ - Drop xbt_dynar_cursor_rm(), xbt_dynar_search_or_negative(),
+   xbt_str_split_quoted(), xbt_str_split_quoted_in_place().
+ - Deprecate xbt_dynar_to_array().
+ - When an exception occurs in kernel mode, display both the actor and kernel stacks.
+
+C binding and interface:
+ - Rename (lowercase) functions sg_actor_get_PID, sg_actor_get_PPID, sg_actor_by_PID.
+ - Constness requirement has been lowered for parameter argv of sg_actor_start()
+   and sg_actor_create() It's now (char* const*). The previous version is still
+   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#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
+ - GH#343: Wrong consumed energy when an exec timeouts
 
 ----------------------------------------------------------------------------
 
@@ -192,7 +295,7 @@ SMPI:
    allocations' size above which they are considered "shared" by default (as if
    they were performed through SMPI_SHARED_MALLOC macros).
    Default = 0 = disabled feature.
-   Note : malloc, calloc and free are now overriden by smpicc/cxx by default.
+   Note : malloc, calloc and free are now overridden by smpicc/cxx by default.
    This can cause some troubles if codes are already overriding these. If this
    is the case, defining SMPI_NO_OVERRIDE_MALLOC in the compilation flags can
    help, but will make this feature unusable.