Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Unit test to check if the RNG state is written and read correctly
[simgrid.git] / ChangeLog
index 0bd9fc2..416340d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,141 @@
 ----------------------------------------------------------------------------
 
+SimGrid (3.25.1) UNRELEASED (target: March 20 2020 or v3.26 on 3/26/20)
+
+Important user-visible changes:
+ - 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
+   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.
+ - 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.
+   Options network/loopback-lat and network/loopback-bw have been added to adapt
+   these values if needed. Network and routing models already providing separate
+   loopbacks (clusters and such) are not impacted by this change.
+
+General:
+ - LTO is now enabled for Intel/clang compilers.
+ - 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).
+
+C interface:
+ - Many MSG tests were converted to the new S4U's interface in C, that
+   was extended for that.
+
+Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests)
+ (FG: issues on Framagit; GF: issues on GForge; GH: issues on GitHub)
+ - FG#41: Add sg_actor_create C interface
+ - FG#43: xbt::random needs some care
+ - FG#48: The Impossible Did Happen (yet again)
+ - FG!24: Documentation and fix for xbt/random
+ - GF#18137: Allow different stack sizes?
+ - GH#128: Parallelization of simulation with --cfg=contexts/nthreads
+ - GH#139: Allow pthread creation in SMPI
+ - GH#336: Packet-level simulation using SMPI?
+ - GH!337: Fix link_energy plugin for wifi platforms
+
+----------------------------------------------------------------------------
+
+SimGrid (3.25) February 2. 2020 (aka 02 02 2020)
+
+The Palindrom Day Release.
+
+Important user-visible changes:
+ - Improve the Python usability (stability and documentation).
+   - A nasty synchronization bug was ironed out, see also below.
+   - Python's doc was organized as a separate tree, now integrated with C++.
+   - C bindings of S4U were not part of the doc.
+   - The C++ doc was also improved as methods are now split by theme.
+ - Further deprecate MSG: you now have to pass -Denable_msg=ON to cmake.
+   - This is mandatory to use the Java bindings.
+   - OFF by default; The plan is to completely remove MSG by 2020Q4 or 2021Q1.
+ - SimDAG++: Automatic dependencies on S4U activities (experimental)
+   - Some features are already implemented but not all of them
+   - Cannot block an activity until it's scheduled on a resource
+   - No heterogeneous wait_any() that would mix Exec/Comm/Io activities.
+   - See examples/s4u/{io,exec,comm}-dependent for what's already there.
+
+General:
+ - Upgrade documented Java dependency to Java 8 (earlier versions don't work).
+ - Drop support for Viva/Triva (old visualization tools), hence removed
+   TRACE_get_node_types() and TRACE_get_edge_types() functions.
+
+Python:
+ - Require pybind11 version 2.4.
+ - Greatly improve locking during context switches with Python.
+   - Declaring Python callbacks to this_actor::on_exit is now working.
+   - No more tests are failing currently, even on win32.
+
+S4U:
+ - Actor: Merge signals on_migration_start/end into on_host_change
+ - Actor: Rename migrate() into set_host()
+ - Disk: Allow users to get the read and write nominal bandwidth values
+ - Exec: Implement wait_for(timeout)
+ - Io: Implement wait_for(timeout)
+
+XML:
+ - Parse errors now raise a simgrid::ParseError that you may want to catch.
+
+Kernel:
+ - In simgrid::kernel::resource::Model, the methods next_occuring_event*() have
+   been renamed to fix a spelling error. As usual, the previous definitions are
+   kept with a deprecation warning. However, to avoid runtime errors, it is now
+   forbidden to override these deprecated methods in a derived class. Please use
+   the new names immediately if you need to override them.
+
+XBT:
+ - Remove unused parameter 'free_ctn' for xbt_dict_set() and xbt_dict_set_ext().
+ - Drop unused functions for dicts and dynars: xbt_dict_cursor_get_elm,
+   xbt_dict_get, xbt_dict_get_elm, xbt_dict_get_ext, xbt_dict_get_key,
+   xbt_dict_remove, xbt_dict_reset, xbt_dynar_compare, xbt_dynar_dump,
+   xbt_dynar_foreach_ptr, xbt_dynar_free_data, xbt_dynar_free_voidp,
+   xbt_dynar_init, xbt_dynar_insert_at_as, xbt_dynar_merge,
+   xbt_dynar_remove_n_at, xbt_dynar_replace, xbt_dynar_search, xbt_dynar_set.
+ - New module: random, providing classical random numbers generators.
+
+SMPI:
+ - New option : "smpi/auto-shared-malloc-thresh" which sets a value for
+   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.
+   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.
+ - Input check is now performed much more consistently and outputs precise
+   warnings for each error found
+ - New supported calls : MPI_File_set_view, MPI_File_get_view
+ - MPI I/O now only supports disks, as storage is discontinued.
+ - MPI I/O allows opening files without specifying absolute path
+ - Note : SMPI configuration options are now initialized by smpi_init_options()
+   call, which should be called if SMPI is not being used through smpirun.
+
+Fixed bugs (FG#.. -> framagit bugs; FG!.. -> framagit merge requests):
+ - FG#9: Python bindings crashing
+ - FG#39: Missing s4u::Comm::wait_any_for example
+ - FG#42: Add support for ThreadSanitizer (TSan)
+ - FG!19: Removing RngStream
+ - FG!20: A module for RNG calls
+ - FG!21: Choice between ad-hoc and standard distributions implementations
+ - FG!23: Master
+ - FG!25: Fix link in Mutex doc
+ - FG!26: Fix links in SMPI interface doc
+ - GH#31: [MC] please provide an option to make MPI_Send asynchronous
+ - GH#305: Unscheduled tasks are still excuted
+ - GH#313: smpirun: manual outdated w.r.t. --help
+ - GH#321: [S4U] Get task remaining work ratio
+ - GH#323: Crash when an actor turn off his physical host
+ - GH#335: Missing links on dragonfly example svg
+ - https://lists.gforge.inria.fr/pipermail/simgrid-user/2019-November/004653.html:
+   MPI_Cart_sub was not working properly. Kudos to Jonathan Borne for the report.
+
+----------------------------------------------------------------------------
+
 SimGrid (3.24) October 9. 2019
 
 The Clean Disk Release.
@@ -52,7 +188,7 @@ SMPI:
    with smpi/comp-adjustment-file.
  - sleep events are now correctly traced/replayed.
  - Default for trace-call-location is now to use file names and not full paths.
-   To revert to previous behaviour (in case of collision of filenames), option
+   To revert to previous behavior (in case of collision of filenames), option
    "smpi/trace-call-use-absolute-path" can be set to yes.
 
 Model-Checker:
@@ -94,10 +230,12 @@ Fixed bugs (FG#.. -> framagit bugs; FG!.. -> framagit merge requests):
  - FG!16: Fix the ns-3 bindings when several flows are simultaneously finishing
  - FG!17: ns-3: unblock the right number of communications + others issues
  - FG!18: Improving the performance of the ns-3 bindings
+ - GH#189: Energy consumption of parallel tasks
  - GH#219: Error in the throughput of TCP transfer
  - GH!330: Minor polishing of English: Configuring_Simgrid
  - GH!331: Fix a doc error about actors (Tutorial_algorithms)
  - GH!332: Add '-O0' flag for: cmake -DCMAKE_BUILD_TYPE=Debug
+ - GH!334: Rework energy plugin, again
 
 ----------------------------------------------------------------------------
 
@@ -640,7 +778,7 @@ SimGrid (3.18) Released December 24 2017
  - #230: segfaults when exit() without run()
  - #225: s4u::Actor::kill() doesn not really kill victims in a join()
  - #223: MSG_task_get_flops_amount() not working with parallel tasks
- - #222: Actor::kill() doesn't really kill and segfaults
+ - #222: Actor::kill() doesn't really kill and segfaults
  - #221: odd LMM warning when killing an actor
  - #120: Memory leak when the processes are forcefully killed
 
@@ -943,7 +1081,7 @@ SimGrid (3.14) Released December 24. 2016
    MSG_environment_as_get_property_value().
    - Removed MSG_as_router_*propert*() functions
    - Added MSG_environment_as_set_property_value() for consistency
- * xbt heterogeneous dictionnaries (created with xbt_dict_new()).
+ * xbt heterogeneous dictionaries (created with xbt_dict_new()).
    Well, they are still there for now, but deprecated with a warning.
    Please switch to xbt_dict_new_homogeneous() before this is removed
    for real.
@@ -1674,7 +1812,7 @@ SimGrid-java (3.8.1) stable; urgency=low
  * New module: org.simgrid.msg.File (SimGrid File management functions)
  * New Module: org.simgrid.msg.VM (SimGrid interface to mimick IAAS clouds)
  * Change the meaning of Process.restart: now restart the process from
-   the begining, like MSG_process_restart in C.
+   the beginning, like MSG_process_restart in C.
  * Add Process.setAutoRestart: handling of process restart when failed
    host comes back.
  * Add Process.getProperty, Host.getProperty, Host.getProperty: allows
@@ -2311,7 +2449,7 @@ SimGrid (3.4.1) stable; urgency=low
  * Fix a bug preventing the tasks from begin garbage collected.
 
  MSG
- * Fix a bug occuring when a host involved in a communication fails.
+ * Fix a bug occurring when a host involved in a communication fails.
    This was not detected properly by the other peer involved in the
    communication. Now, it's reported as a network error.
 
@@ -2435,7 +2573,7 @@ SimGrid (3.4) stable; urgency=low
     o network_model -> network/model
     o workstation_model -> workstation/model
   * New configuration variables:
-    o network/bandwidth_factor: correction to bandwith
+    o network/bandwidth_factor: correction to bandwidth
     o network/latency_factor: correction to latency
     o netwotk/weight_S: correction to the weight of competing streams
   * Add a long description to the models, that users can see with such
@@ -2554,7 +2692,7 @@ SimGrid (3.3.4) stable; urgency=low
     - SD_task_create_comm_e2e() for end-to-end communication
     - SD_task_create_comp_seq() for sequential computation
    Use SD_task_schedulev() / SD_task_schedulel() to schedule them.
- * new function SD_task_dump() for debuging display
+ * new function SD_task_dump() for debugging display
  * new function SD_task_dotty(task,FILE*) writing to file the info
    about the task in dotty format
  * SD_task_dependency_exists() can now cope with having one of its
@@ -2812,7 +2950,7 @@ SimGrid (3.3.1) stable; urgency=low
      kind of action while the second one parses a trace file and
      triggers the corresponding actions within the system.
     For now, only a toy example is provided in examples/msg/actions
-  * Add an exemple of process migration in examples/msg/migration
+  * Add an example of process migration in examples/msg/migration
   * Fix a bug in task exchange which broke MSG_task_get_sender()
     Add a teshsuite regression test for that.
     [Bug: if MSG_task_get_sender() is called after sender exit,
@@ -2910,7 +3048,7 @@ SimGrid (3.3) stable; urgency=high
     **************************************
     *DO NOT MIX 3.2 RESULTS WITH 3.3 ONES* Simix may changes simulations!
     **************************************
-    The point is that events occuring at the exact same timestamp are
+    The point is that events occurring at the exact same timestamp are
     not scheduled in the same order with the old and new version. This
     may be enough to completely change the execution of simulations in
     some cases. Sorry for the inconvenience.
@@ -3087,7 +3225,7 @@ SimGrid (3.2) stable; urgency=high
          . Lesson 8: Handling errors through exceptions
          . Lesson 9: Exchanging simple data
          . Lesson 10: Remote Procedure Calling (RPC)
-         . Lesson 11: Explicitely waiting for messages
+         . Lesson 11: Explicitly waiting for messages
          . Recapping of message passing features in GRAS
      - A HOWTO section containing:
        o HOWTO design a GRAS application
@@ -3180,7 +3318,7 @@ SimGrid (3.1) stable; urgency=high
     in progress and the API is not considered to be frozen yet). [AL]
   * Display more information on backtraces: source line & function names are
     now displayed just like valgrind does (rely on addr2line tool) [MQ]
-  * New function: xbt_backtrace_display(). Sweet while debuging [MQ]
+  * New function: xbt_backtrace_display(). Sweet while debugging [MQ]
   * Reworked a little bit some #include statements to load only required
     headers. Some user code that relied on SimGrid to include stdlib or
     stdio may need to include it by themselves. [AL]
@@ -3263,7 +3401,7 @@ SimGrid (3.0.1) stable; urgency=low
      - reduces the amount of exchanged data (the size)
      - allows to retrieve all arrived data on receiver side, if we don't need
        it right now (subsequent read will peek the buffer)
-     - allows the receiver to proceed with the begining of the stream before
+     - allows the receiver to proceed with the beginning of the stream before
        everything is arrived
      - make it possible to build an iov transport (using readv/writev)
     Extra difficulty:
@@ -3677,7 +3815,7 @@ SimGrid (2.90) unstable; urgency=low
       - s_toto   is a structure needing 'struct' keyword to be used
       - e_toto_t is an enum
       -   toto_t is an 'object' (struct*)
-    Exemple:
+    Example:
       typedef struct s_toto {} s_toto_t, *toto_t;
       typedef enum {} e_toto_t;
     Moreover, only toto_t (and e_toto_t) are public. The rest (mainly
@@ -3803,7 +3941,7 @@ SimGrid (2.90) unstable; urgency=low
   - In composed data description (struct, ref and so on), stop foolness of
     keeping the subtype's ID, but store the type itself. This keeps sets out
     of the critical path, which is good since they rely on dynar and
-    dictionnaries. The only loose of that is that we cannot detect the
+    dictionaries. The only loose of that is that we cannot detect the
     redeclaration of a structure/union with another content (but I'm not sure
     the code detected well this error before anyway). We still can detect
     the redefinition discrepancy for the other types.
@@ -4041,7 +4179,7 @@ SimGrid (2.90) unstable; urgency=low
     for now.
  [Transport]
    [File plugin]
-     - Bugfix when using a filename explicitely (instead of '-')
+     - Bugfix when using a filename explicitly (instead of '-')
 
 2004-04-09 Martin Quinson
  [Transport plugins]