Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' into 'master'
[simgrid.git] / ChangeLog
index 3b9c5c3..e39ed89 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 ----------------------------------------------------------------------------
 
-SimGrid (3.25.1) UNRELEASED (target: March 20 2020 or v3.26 on 3/26/20)
+SimGrid (3.26.1) NOT RELEASED YET (v3.27 expected March 20. 2021, 09:37 UTC)
+
+User-visible changes:
+ - 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.
+ - Model iteration order may change simulations.
+    *****************************************
+    *DO NOT MIX 3.27 RESULTS WITH OLDER ONES*
+    *****************************************
+    The order in which the different models (CPU, network, disk, etc) are
+    solved internally has changed in this version. Although rare (no current
+    test raises the problem), this change can result in slightest different simulations
+    results. Take care when comparing simulations from different SimGrid's
+    versions. Sorry for the inconvenience.
+ - SMPI API break 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.
+
+S4U:
+ - 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>()
+   or Mailbox::get_async<void>() if you really want to play with void*.
+ - 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.
+
+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().
+
+SMPI:
+ - Handle leak checking (experimental): SMPI will now display a message if MPI
+   handles are still present at the end of a simulation. This may be nothing,
+   but if the number is high it could be a problem. To display more information
+   about the type of leaked handle, option --cfg=smpi/list-leaks:n. will display
+   the n first leaked pointers and their types. Known issue: MPI_Cancel usage
+   may trigger handle leaks in SMPI.
+   Using smpirun with -wrapper "valgrind --leak-check=full --track-origins=yes"
+   can provide more information to help locate precisely the leaks.
+ - Memory allocations analysis (experimental): MPI codes using malloc/calloc to
+   allocate memory, and not compiled with SMPI_NO_OVERRIDE_MALLOC, can use
+   smpi/display-analysis option to show at the end of execution the amount of
+   memory allocated through these calls, and locate the most expensive one.
+   This helps finding the targets for manual memory sharing, or the threshold
+   to use for smpi/auto-shared-malloc-thresh option.
+ - 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)
+ - Misc fixes:
+   - better handling of MPI_PROC_NULL
+   - MPI_Group_incl was broken in some cases
+   - PAPI tracing was 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
+     - ECP/Mantevo Cloverleaf3D
+
+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_().
+
+Documentation:
+ - New section: Configuring the logs from the command line.
+ - New section: Programming API of logs.
+
+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
+
+----------------------------------------------------------------------------
+
+SimGrid (3.26) December 15. 2020
+
+The Release release (the French lockdown was eased today).
 
 Important user-visible changes:
  - SimGrid now requires a compiler with C++14 support.
    Sibling projects should upgrade their FindSimgrid.cmake
  - Surf precision default value is now 1e-9, instead of 1e-5. This was changed as
-   several users had difficult to understand issues when using high bandwidth or
+   several users had difficulties to understand issues when using high bandwidth or
    small latency events. The new value was already the default for SMPI and
    should not cause too much performance hit. It can change some simulation
    timings if simulation was skipping a lot of small events (which was actually
-   an issue of said simulation). The value can still be changed back using
-   --cfg=surf/precision:1e-5.
+   an issue per see). The old value can be restored with --cfg=surf/precision:1e-5.
  - On some network models (L07, CM02, LV08), an implicit loopback link is created
    for local communication. Default bandwidth was 500MBps and latency was 15µs,
    which was rather bad. Default values have been changed to 10GBps and 0 latency.
@@ -33,7 +130,10 @@ General:
  - LTO behavior on GCC can be parameterized using LTO_EXTRA_FLAG in cmake.
    Setting it to "auto" will use all available cores, while setting it to n will
    use n cores to speedup link step (usage: cmake -DLTO_EXTRA_FLAG=4).
- - Remove obsolete option --cfg=contexts/parallel-threshold.
+ - Remove obsolete runtime option 'contexts/parallel-threshold'.
+ - Runtime option 'tracing/msg/process' renamed to 'tracing/actor'. The old name
+   has been kept for compatibility.
+ - Finally remove obsolete snake_case() aliases for runtime options.
  - Further improve the documentation.
 
 S4U:
@@ -50,10 +150,23 @@ SMPI:
  - smpicc/cxx/ff/f90 now will actually perform definition checks at link time. When
    building shared libraries, this may cause issues, so environment variable
    SMPI_NO_UNDEFINED_CHECK can be added to disable this.
+ - most temporary files should now be created in /tmp dir (or equivalent).
+   If this one does not allow execution of code (noexec flag), this may cause issues.
+   Please use another tmp directory (using TMPDIR or equivalent system variable)
+   in this case.
+
+Model-Checker:
+ - A large refactoring is ongoing, but this should be transparent for users so far.
+
+XBT:
+ - Drop xbt_str_split().
 
 C binding and interface:
  - The return type of the sg_actor_on_exit() callbacks is now 'void'
    (int value was previously ignored)
+ - Many C functions were renamed to follow a common naming style
+   (sg_object_get_something and sg_object_set_something). As usual, the deprecated
+   names are kept until version 3.30.
  - Many MSG tests were converted to the new S4U's interface in C, that
    was extended for that.
 
@@ -64,6 +177,7 @@ Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
  - FG#48: The Impossible Did Happen (yet again)
  - FG#50: Suspending an actor executed at the current timestamp fails
  - FG#52: Zero-seconds timeout : "That's in the past already"
+ - FG#53: Crash while using ns-3 network model
  - FG#54: How to suspend a comm?
  - FG!22: Stochastic Profiles
  - FG!24: Documentation and fix for xbt/random
@@ -75,7 +189,9 @@ Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
  - GH#128: Parallelization of simulation with --cfg=contexts/nthreads
  - GH#139: Allow pthread creation in SMPI
  - GH#336: Packet-level simulation using SMPI?
+ - GH#345: Error in the LMM while migrating a VM
  - GH#346: [SMPI] error while loading shared libraries: libsimgrid.so
+ - GH#352: pip install / python setup.py install fail to find pybind11
  - GH!337: Fix link_energy plugin for wifi platforms
  - GH!339: Add Mailbox set_receiver method to python binding
  - GH!344: Cast hugepages macros parameters to int64
@@ -144,7 +260,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.