Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SIMIX_display_process_status becomes Global::display_all_actor_status
[simgrid.git] / ChangeLog
index 7a14991..242ee77 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 ----------------------------------------------------------------------------
 
-SimGrid (3.23) NOT RELEASED (Release Target: June 21. 2019, 15:54 UTC)
+SimGrid (3.24.1) NOT RELEASED YET (v3.25 expected December 22. 2029, 04:19 UTC)
+
+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
+
+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().
+- New module: random, providing classical random numbers generators.
+
+Fixed bugs (FG#.. -> framagit bugs; FG!.. -> framagit merge requests):
+ - GH#31: [MC] please provide an option to make MPI_Send asynchronous
+ - GH#305: Unscheduled tasks are still excuted
+ - GH#323: Crash when an actor turn off his physical host
+ - FG!19: Removing RngStream
+
+----------------------------------------------------------------------------
+
+SimGrid (3.24) October 9. 2019
+
+The Clean Disk Release.
+
+S4U:
+ - Introduce a s4u::Disk interface to manage the newly introduced <disk>
+   tag. s4u::Disk is called to supplant s4u::Storage in a near future. It
+   thus becomes the default resource to execute I/O operations. Examples
+   and the file system plugin have been modified to use disks instead of
+   storage elements. Storage can still be used but is doomed to disappear.
+   Users are thus adviced to update their simulators accordingly.
+ - Barrier::wait returns SG_BARRIER_SERIAL_THREAD for (only) one actor
+   for consistency with pthread_barrier_wait()
+ - Host::get_englobing_zone() returns the englobing netzone
+ - Actor::on_destruction is now called in the destructor
+   Actor::on_termination new signal called when the actor terminates
+   its code.
+ - Global signals are now part of the Engine:
+   - on_platform_creation: after config settings, before the XML parsing
+   - on_platform_created: right after the XML parsing
+   - on_time_advance: each time the clock advances
+   - on_simulation_end: after simulation, before cleanups
+   - on_deadlock: as the name implies.
+ - C bindings:
+   - sg_{actor,host,link}_{data,data_set}() now all exist.
+     Use them to attach user data to the object and retrieve it.
+
+Models:
+ - Introduce an experimental Wifi model. It sounds reasonable
+   according to the state of the art, but it still has to be properly
+   validated, at least against ns-3 if not against reality.
+ - Improved the usability of ns-3. Several bugs were ironed out.
+ - host_energy: Wattage was expressed as 'idle:oneCore:allCores'.
+   It is now expressed as 'idle:epsilon:allCores' to properly model the
+   consumption of non-whole tasks on mono-core hosts. More info in the doc.
+
+MSG:
+ - convert a new set of functions to the S4U C interface and move the old MSG
+   versions to legacy (MSG_process_self*, MSG_process_{un}ref, ...)
+
+SMPI:
+ - Fortran bindings for DVFS have been removed.
+ - Add support for MPI_Irsend, MPI_Rsend, MPI_Rsend_init, MPI_Bsend,
+   MPI_Ibsend, MPI_Bsend_init, MPI_Buffer_attach, MPI_Buffer_detach
+ - SMPI can now be selected by cmake's find_module(MPI) with
+   MPI_C_COMPILER, MPI_CXX_COMPILER, MPI_Fortran_COMPILER variables.
+ - Add support for MPI Errhandlers in Comm, File or Win. Default errhandler is now
+   MPI_ERRORS_ARE_FATAL, so codes which were sending warnings may start failing.
+ - trace-call-location can be used with TI traces, and replayed, and is compatible
+   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 behavior (in case of collision of filenames), option
+   "smpi/trace-call-use-absolute-path" can be set to yes.
+
+Model-Checker:
+ - Use the included xxHash as an hash implem when C++14 is usable.
+ - Option model-checker/hash was removed. This is always activated now.
+ - New option smpi/buffering controls the MPI buffering in MC mode.
+ - MPI calls now MC_assert() that no MPI_ERR_* code is returned.
+   This is useful to check for MPI compliance.
+
+Documentation:
+ - New section on plugins: how to define a new one, and existing ones.
+
+XBT:
+ - xbt_mutex_t and xbt_cond_t are now marked as deprecated, a new C interface
+   on S4U is already available to replace them by sg_mutex_t and sg_cond_t.
+
+XML:
+ - Introduce the <disk> tag as a replacement of the <storage>, <storage_type>,
+   and <mount> tags. The rationale is finish to decouple what should be handle
+   by SimGrid kernel (i.e., resources and activities) from plugins built in
+   user space (e.g., the file system plugin). This new tag currently accepts
+   only three attributes (id, read_bw, and write_bw). All the other information
+   that was declared with the storage related tags now has to be expressed as
+   properties. An example of platform using this new tag is available at
+   examples/platforms/hosts_with_disks.xml
+
+tesh:
+ - 'expect signal' can now accept more than one potential signal.
+
+Fixed bugs (FG#.. -> framagit bugs; FG!.. -> framagit merge requests):
+ - FG#28: add sg_actor_self (and other wrappers on this_actor methods)
+ - FG#29 and FG#33: provide a new C API to mutexes and condition variables
+ - FG#30: convert MSG_process_{un}ref to sg_actor_{un}ref
+ - FG#31: per-actor data
+ - FG#34: SG_BARRIER_SERIAL_THREAD?
+ - FG#35: model-checker does not like buster-produced binaries
+ - FG!13: MC: complete workaround in the error msg seen on modern systems
+ - FG!15: execute_flops now logs compute
+ - 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
+
+----------------------------------------------------------------------------
+
+SimGrid (3.23.2) July 8. 2019
+
+Documentation:
+ - Nicer introduction page.
+ - Migrate the "Deploy your application" page to the new doc.
+ - Move Java as a subtree of MSG.
+
+General:
+ - Rename simgrid::TimeoutError to simgrid::TimeoutException.
+
+XBT:
+ - Drop xbt_dynar_sort_strings().
+
+Bugs:
+ - Really fix FG#26: Turning off a link should raise NetworkFailureException
+ - FG#27: Wrong exception thrown to wait_any when link is turned off
+ - GH#328: Java: Canceling multiple tasks in a single vm/host
+
+----------------------------------------------------------------------------
+
+SimGrid (3.23) June 25. 2019
+
+The Exotic Solstice Release.
 
 General:
+ - SunOS and Haiku OS support. Because exotic platforms are fun.
  - Stop setting random seed with srand48() at initialization.
  - Use addr2line as a fallback for stacktraces when backtrace is not available.
  - Build option -Denable_documentation is now OFF by default.
+ - Network model 'NS3' was renamed into 'ns-3'.
+
+Python:
+ - Simgrid can now hopefully be installed with pip.
+
+S4U:
+ - wait_any can now be used for asynchronous executions too.
 
 XBT:
  - New log appenders: stdout and stderr. Use stdout for xbt_help.
@@ -15,6 +177,9 @@ SMPI:
  - SMPI now reports support of MPI3.1. This does not mean SMPI supports all MPI 3 calls, but it was already the case with 2.2
  - MPI/IO is now supported over the Storage API (no files are written or read, storage is simulated). Supported calls are all synchronous ones.
  - MPI interface is now const correct for input parameters
+ - MPI_Ireduce, MPI_Iallreduce, MPI_Iscan, MPI_Iexscan, MPI_Ireduce_scatter, MPI_Ireduce_scatter_block support
+ - Fortran bindings for async collectives.
+ - MPI_Comm_get_name, MPI_Comm_set_name, MPI_Count support.
 
 Model-checker:
  - Remove option 'model-check/record': Paths are recorded in any cases now.
@@ -27,10 +192,7 @@ Network models:
  - Remove the lagrange-based models (Reno/Reno2/Vegas). The regular
    models proved to be more accurate than these old experiments.
 
-Python:
- - Simgrid can now hopefully be installed with pip.
-
-Fixed bugs (FG=FramaGit; GH=GitHub):
+Fixed bugs (FG=FramaGit; GH=GitHub -- Please prefer framagit for new bugs)
  - FG#1: Broken link in error messages
  - FG#2: missing installation documentation
  - FG#3: missing documentation in smpirun
@@ -43,9 +205,11 @@ Fixed bugs (FG=FramaGit; GH=GitHub):
  - FG#13: Installs unstripped file 'bin/graphicator'
  - FG#14: Installs the empty directory 'doc/simgrid/html'
  - FG#15: Setting -Denable_python=OFF doesn't disable the search for pybind11
+ - FG#17: Dead link in doc (pls_ns3)
  - FG#20: 'tesh --help' should return 0
  - FG#21: Documentation link on http://simgrid.org/ broken
  - FG#22: Debian installation instruction are broken
+ - FG#26: Turning off a link should raise NetworkFailureException exceptions
  - GH#133: Java: a process can run on a VM even if its host is off
  - GH#320: Stacktrace: Avoid the backtrace variant of Boost.Stacktrace?
  - GH#326: Valgrind-detected error for join() when energy plugin is activated
@@ -103,11 +267,9 @@ SMPI:
  - MPI_Alltoallw support
  - Partial MPI nonblocking collectives implementation: MPI_Ibcast, MPI_Ibarrier,
    MPI_Iallgather, MPI_Iallgatherv, MPI_Ialltoall, MPI_Ialltoallv, MPI_Igather,
-   MPI_Igatherv, MPI_Iscatter, MPI_Iscatterv, MPI_Ialltoallw, MPI_Ireduce,
-   MPI_Iallreduce, MPI_Iscan, MPI_Iexscan, MPI_Ireduce_scatter,
-   MPI_Ireduce_scatter_block, with fortran bindings.
+   MPI_Igatherv, MPI_Iscatter, MPI_Iscatterv, MPI_Ialltoallw.
  - MPI_Request_get_status, MPI_Status_set_cancelled, MPI_Status_set_elements
-   support, MPI_Comm_get_name, MPI_Comm_set_name
+   support
  - Basic implementation of generalized requests (SMPI doesn't
    allow MPI_THREAD_MULTIPLE) : MPI_Grequest_complete, MPI_Grequest_start
 
@@ -509,7 +671,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
 
@@ -812,7 +974,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.
@@ -1543,7 +1705,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
@@ -2180,7 +2342,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.
 
@@ -2304,7 +2466,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
@@ -2423,7 +2585,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
@@ -2681,7 +2843,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,
@@ -2779,7 +2941,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.
@@ -2956,7 +3118,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
@@ -3049,7 +3211,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]
@@ -3132,7 +3294,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:
@@ -3546,7 +3708,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
@@ -3672,7 +3834,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.
@@ -3910,7 +4072,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]