Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Don't test features that are impossible to get right
[simgrid.git] / ChangeLog
index f959057..22c53c2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,106 @@
-SimGrid (3.16) UNRELEASED
+SimGrid (3.18) NOT RELEASED YET (target: December 24 2017)
+
+ S4U
+ - Link::name() is deprecated and will be removed in v3.21, use
+   Link::getCname() instead.
+ - Mailbox::getName() changed to return a std::string, use
+   Mailbox::getCname() instead to get a char*.
+ - Storage::getName() changed to return a std::string, use
+   Storage::getCname() instead to get a char*.
+
+ MSG
+ - Deprecate MSG_task_get_flops_amount(). Its semantic was weird:
+    before the start it returned the total amount of flops;
+    after it returned the ratio of remaining work. Split it:
+   MSG_task_get_initial_flops_amount() for first behavior
+   MSG_task_get_remaining_work_ratio() for the second one.
+   This fixes GitHub's #223 using PR #237. Thanks Michael Mercier.
+
+ XBT
+ - Define class simgrid::xbt::Path to manage file names.
+ - Removed unused functions:
+   - xbt/file.h: xbt_basename(), xbt_dirname(), xbt_getline()
+   - xbt/str.h: xbt_str_join()
+   - xbt/heap.h: use std::priority_queue or boost::heap instead
+
+ PLUGINS:
+ - New link_energy plugin for the consumption of the links.
+ - All of the operations on files and storage contents have been
+   packaged into a plugin (src/plugins/file_system). The current
+   public interface can be found in 
+   include/simgrid/plugins/file_system.h
+   To use these functions you now have to initialize the plugin by 
+   calling MSG_storage_file_system_init() just after calling 
+   MSG_init() or sg_storage_file_system_init() just after creating 
+   the Engine.
+
+ XML
+ - Remove the undocumented/untested tag <include>
+
+ TRACE
+ - Remove viva specific tracing as the tool is no longer maintained
+
+ Fixed bugs:
+ - #248: Kill of finished MSG processes leads to segfault
+
+SimGrid (3.17) Released October 8 2017
+
+ The Drained Leaks release: (almost) no known leaks despite the tests.
+
+ Even very long simulations will preserve your memory: our testsuite
+ stresses SimGrid for over 45mn on fast machines for a coverage of
+ over 80%, and there is only one single known leak, of about 4kb.
+
+
+ S4U
+  - Comm.detach(): start and forget about asynchronous emission. A cleanup
+    handler may be given to free resources if the comm cannot be completed.
+  - this_actor::send(mailbox) is now mailbox->put()
+  - New: simgrid::s4u::Comm::wait_all()
+  - New: Host.execute() for remote executions.
+
+ SURF
+  - Unused option network/sender-gap is removed.
+
+ MSG
+  - Deprecate MSG_task_isend_with_matching(): This unused feature
+    really complicates our internals. Will be removed in v3.20.
+
+ Simix
+  - Improved context termination.  It is now possible to free resources, even
+    when a process is forcibly killed.
+  - ContextBoost: add support for Boost versions above 1.61.
+
+ XBT
+ - Bring back run-time option --cfg=exception/cutpath to remove exception
+   backtraces.
+ - Removed unused functions:
+   - xbt/str.h: xbt_str_split_str(), xbt_str_subst(), xbt_str_ltrim(),
+       xbt_str_rtrim(), xbt_str_trim().
+   - xbt/xbt_os_thread.h: xbt_os_thread_cancel(), xbt_os_thread_detach().
+
+ Misc
+ - Removed header files obsolete since SimGrid 3.12:
+   msg/datatypes.h, msg/msg.h, simdag/datatypes.h, simdag/simdag.h.
+ - Fix many bugs:
+   - #3: SD_exit should be made optional
+   - #120: Memory leak when the processes are forcefully killed
+   - #159: Threading test regression in Actor refcounting
+   - #170: simgrid::s4u::Comm::wait_any() returns too many comms
+   - #185: simgrid::s4u::Engine::instance()->shutdown() segfaults
+   - #186: Actor::killAll() segfaults if some process is blocked on wait()
+   - #191: VM migration and pstate
+   - #192: Updating the energy consumptions of all hosts crashes with VMs
+   - #195: All actors have PID=0 in the logs
+   - #204: Sometimes segfault with thread contexts and mmap privatization
+   - #222: Actor::kill() doesn't really kill and segfaults
+   - #225: Actor::kill() doesn't really kill when victims are doing a join()
+
+----------------------------------------------------------------------------
+
+SimGrid (3.16) Released June 22. 2017.
+
+ The Blooming Spring Release: developments are budding.
 
  Portability status:
   - FreeBSD: Disable SMPI mmap privatization, switch automatically to dlopen.
@@ -8,7 +110,7 @@ SimGrid (3.16) UNRELEASED
  XML platforms: Switch to platform v4.1 format.
  * This is (mainly) a backward compatible change: v4 are valid v4.1 files
    - <zone> can be used as a synonym for the now deprecated <as>
-   - <zoneZoute> an be used as a synonym for the now deprecated <asroute>
+   - <zoneRoute> can be used as a synonym for the now deprecated <asroute>
    - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
    - <actor> can be used as a synonym for the now deprecated <process>
    - state_file and avail_file periodicity is now easier to express
@@ -28,10 +130,14 @@ SimGrid (3.16) UNRELEASED
     now        returns void.
 
  Virtual Machines
-  - Allow multicore VMs, along with the correct sharing computations
+  - Allow multicore VMs, with the correct sharing (unless you overcommit)
+    BUG: vCPU overcommitting still leads to buggy sharing, though. WIP.
 
  Energy
   - New function to update the consumption of all hosts at once.
+  - Fix the model for multi-core hosts, linear in the amount of busy
+    cores with an abnormality for pIdle (see paper).
+    BUG: Still not satisfactory for ptask on mono-cores.
 
  MSG
   - The netzone are now available from the MSG API.
@@ -40,7 +146,7 @@ SimGrid (3.16) UNRELEASED
  SMPI
   - New algorithm to privatize globals: dlopen, with dynamic loading tricks
   - New option: smpi/keep-temps to not cleanup temp files
-  - New option : smpi/shared-malloc-blocksize . Relevant only when global shared 
+  - New option : smpi/shared-malloc-blocksize . Relevant only when global shared
     mallocs mode is used, allows to change the size of the fake file used
     (default 1MB), to potentially limit the number of mappings for large runs.
   - Support for sparse privatized malloc with SMPI_PARTIAL_SHARED_MALLOC()
@@ -53,6 +159,11 @@ SimGrid (3.16) UNRELEASED
       - MPI_Op_commutative, MPI_Fetch_and_Op, MPI_Compare_and_swap
       - MPI_Rput, MPI_Rget, MPI_Raccumulate, MPI_Rget_accumulate
 
+ S4U
+  - New: this_actor::isMaestro() returns whether we are in kernel mode.
+  - Behind the scene, ActivityImpl are now automatically refcounted.
+    Removing this nasty bottleneck will greatly simplify our internals.
+
  XBT
   - Replay: New function xbt_replay_action_get():
     Retrieve the function previously associated to an event type.
@@ -61,9 +172,9 @@ SimGrid (3.16) UNRELEASED
   - DROPPED MODULE: matrix. We don't need it anymore.
   - DROPPED MODULE: lib. We don't need it anymore.
 
- -- Release target: June 21 2017   -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ -- Thu Jun 22 22:48:12 CEST 2017   -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
-SimGrid (3.15) stable; urgency=low
+SimGrid (3.15) Released March 22. 2017
 
  The Spring Release: continuous integration servers become green
  We fixed even the transient bugs on all target architectures:
@@ -76,7 +187,7 @@ SimGrid (3.15) stable; urgency=low
 
  MSG
  - New: MSG_process_yield(). Stop and yield to other processes.
- - New: MSG_process_daemon(). Daemon processes are automatically killed 
+ - New: MSG_process_daemon(). Daemon processes are automatically killed
    when the last non-daemon process terminates
  - New: MSG_process_ref/unref(). Fiddle with the process refcounting.
  - Renamed MSG_energy_plugin_init() -> MSG_host_energy_plugin_init()
@@ -88,13 +199,13 @@ SimGrid (3.15) stable; urgency=low
  - Kill the obscure NativeException. Nobody want to survive the issues
    it denotes, so use JniException that is a RuntimeException (not to
    be caught explicitly).
- - Partial bug fix in initialization. SimGrid flags on command line were 
-   consumed at C level but stayed in the original Java String[] args. 
+ - Partial bug fix in initialization. SimGrid flags on command line were
+   consumed at C level but stayed in the original Java String[] args.
    This could mess users' args[i] if SG flags were not put at the end of
    the command line.
-   The SimGrid flags are now removed from the Java arguments. However, 
+   The SimGrid flags are now removed from the Java arguments. However,
    the number of arguments REMAINS UNCHANGED. It is then UNSAFE to test
-   if args.length is greater than the number of YOUR OWN ARGUMENTS. 
+   if args.length is greater than the number of YOUR OWN ARGUMENTS.
    It might be if you have --log or --cfg flags in the command line.
  - Fix numerous memleaks all around the place. In particular, around VMs.
 
@@ -116,21 +227,21 @@ SimGrid (3.15) stable; urgency=low
 
  SimDag
  - Backwards Compatibility breaks
-    - The SD_route_get_list and SD_route_get_size functions have been removed. 
-      They are replaced by the unique 
+    - The SD_route_get_list and SD_route_get_size functions have been removed.
+      They are replaced by the unique
          void sg_host_route(sg_host_t src, sg_host_t dst, xbt_dynar_t links)
-      The route from src to dst is built in the links dynar whose size can 
+      The route from src to dst is built in the links dynar whose size can
       be obtained with xbt_dynar_length.
     - The SD_route_bandwidth and SD_route_latency functions have been replaced by
-        sg_host_route_bandwidth and sg_host_route_latency. 
+        sg_host_route_bandwidth and sg_host_route_latency.
       Macros ensure the backwards compatibility, but you should fix your code
 
  SMPI
- - Major C++ rewrite ongoing (SMPI used to be C compiled in C++). 
+ - Major C++ rewrite ongoing (SMPI used to be C compiled in C++).
    This can break codes using SMPI internals (from private.h instead of the public smpi.h).
- - Bump our claim of support from MPI 1.1 to MPI 2.2. 
+ - Bump our claim of support from MPI 1.1 to MPI 2.2.
    We don't support 100% of it, but it should be enough. Contact us if not.
- - MPI_Win_lock/unlock, MPI_Get_accumulate support added (as for all RMA, implementation is 
+ - MPI_Win_lock/unlock, MPI_Get_accumulate support added (as for all RMA, implementation is
    naive and probably inaccurate)
  - New algorithm for SMPI_SHARED_MALLOC: global, where all blocks are
    mapped onto a unique small file using some system magic.
@@ -152,9 +263,7 @@ SimGrid (3.15) stable; urgency=low
  - A <cluster> can now be created with different speed values to represent pstates.
    see examples/platforms/energy_cluster.xml for an example.
 
- -- Wed Mar 22 17:50:21 CET 2017 -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
-
-SimGrid (3.14.159) stable; urgency=low
+SimGrid (3.14.159) Released December 28. 2016
 
  The previous release was only a crude approximation of a Pi release;
  this one should be a bit better.
@@ -164,9 +273,7 @@ SimGrid (3.14.159) stable; urgency=low
  - Improve the documentation, in particular of the routing module.
  - Integrate some patches flying around in Debian.
 
- -- Wed Dec 28 17:14:49 CET 2016 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
-
-SimGrid (3.14) stable; urgency=low
+SimGrid (3.14) Released December 24. 2016
 
  Documentation
  * The whole documentation was reworked and reorganized. There is
@@ -181,13 +288,13 @@ SimGrid (3.14) stable; urgency=low
 
  SMPI
  * Privatization now works on FreeBSD
+
  * Privatization is now activated by default in smpirun
    You can turn it off with -no-privatize if something goes wrong.
 
  * Call-location tracing for SMPI.
-   You can add the exact location (filename / linenumber) of an MPI call to 
-   your trace files and slow down or speed up the simulation between two 
+   You can add the exact location (filename / linenumber) of an MPI call to
+   your trace files and slow down or speed up the simulation between two
    consecutive calls by using an adjustment file (see the documentation).
 
  * Fixed computation of timings for MPI_Send, MPI_Recv & possibly also others
@@ -199,8 +306,8 @@ SimGrid (3.14) stable; urgency=low
  * smpi/cpu-threshold:-1 should become smpi/simulate-computation:no
    smpi/running-power    is renamed to smpi/host-speed
 
- * smpi/grow-injected-times option to enable or disable multiplication of the 
-   timings injected in MPI_Iprobe, or MPI_Test. Enabled by default, which can 
+ * smpi/grow-injected-times option to enable or disable multiplication of the
+   timings injected in MPI_Iprobe, or MPI_Test. Enabled by default, which can
    make simulation less precise (but also much faster).
 
  * smpirun script should be (much) faster for large deployments.
@@ -230,11 +337,11 @@ SimGrid (3.14) stable; urgency=low
    - Ignored parameter of vm_create: core_nb, disk_path and disk_size.
    - Unimplemented save/restore methods
  * MSG_as_router_get_property_value() was redundent with
-   MSG_environment_as_get_property_value(). 
+   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()). 
-   Well, they are still there for now, but deprecated with a warning. 
+ * xbt heterogeneous dictionnaries (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.
  * Task affinity. Its intended behavior (that was very badly tested
@@ -242,8 +349,8 @@ SimGrid (3.14) stable; urgency=low
    would have hoped here.
  * xbt_os_sem_get_value: unused internally, deprecated on OS X El Capitan
  * Option network/coordinates is now useless and should be dropped.
- Storage: 
+
+ Storage:
  * Added option storage/max_file_descriptors to allow more than 1024 files opened
 
  SURF:
@@ -252,31 +359,29 @@ SimGrid (3.14) stable; urgency=low
 
  XML:
  * Add Exa- and Peta- units such as EiB, EB, Eib, Eb for size, and
-   EiBps, EBps, Eibps, Ebps for bandwidth. 
+   EiBps, EBps, Eibps, Ebps for bandwidth.
    They may become useful to some lucky ones.
-   
+
  Java:
  * New functions: msg.Comm.waitAll() and msg.Comm.waitAny()
  * ex/app_tokenring: new example, very similar to the MSG Token Ring
  * ex/async_waitAll: new example, on asynchronous communications
 
  MSG:
- * Memory usage should be decreased for simulations with a large number 
+ * Memory usage should be decreased for simulations with a large number
    of processes. This also helps for SMPI.
 
- -- Sat Dec 24 22:34:26 CET 2016 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
-
 SimGrid (3.13) stable; urgency=low
 
  The Half Release, a.k.a. the Zealous Easter Trim.
+
  - We removed half of the lines, that were mostly experimental cruft.
    v3.12 lasted 286000 lines of code, v3.13 is only 142000 lines
    (not counting blanks and comments -- according to openhub.net)
  - The internals are now compiled in C++ (and will soon be clean C++)
- - We removed 75 klines of XML, 12 klines of Java, 5 klines of cmake, 
+ - We removed 75 klines of XML, 12 klines of Java, 5 klines of cmake,
    59 klines of C, etc. We added only 29 klines of C++ in replacement.
-   
+
  * Backwards Compatibility breaks
    - Removed Lua simulation bindings (switch to C or Java for that).
      Lua can still be used to describe platforms
@@ -288,11 +393,11 @@ SimGrid (3.13) stable; urgency=low
         way, with filter function.
           - MSG_task_listen_from_host
           - MSG_mailbox_get_count_host_waiting_tasks
-          - MSG_mailbox_put_with_timeout was removed. 
+          - MSG_mailbox_put_with_timeout was removed.
             Please use MSG_task_send_with_timeout instead.
-   - In SimDag 
-      - the SD_application_reinit function was removed. It has been a noop for a while. 
-      - The ACCESS_MODE of SD_workstation has been removed. This feature was not really usable and should soon be 
+   - In SimDag
+      - the SD_application_reinit function was removed. It has been a noop for a while.
+      - The ACCESS_MODE of SD_workstation has been removed. This feature was not really usable and should soon be
         replaced by a more flexible mechanism.
       - The following functions thus do not exist anymore
          - SD_workstation_get_access_mode
@@ -302,7 +407,7 @@ SimGrid (3.13) stable; urgency=low
         - SD_route_get_communication_time => SG_route_get_latency() + amount / SD_route_get_bandwidth()
         - SD_workstation_get_computation_time => amount / sg_host_speed()
    - In Java
-      - VM.setBound(int load) is now VM.setBound(double bound) to meet the MSG semantics. 
+      - VM.setBound(int load) is now VM.setBound(double bound) to meet the MSG semantics.
         Use VM.getSpeed()*load/100 for the legacy behavior.
    - In CMake
       - option enable_tracing was removed. It was not doing anything for a while.
@@ -341,7 +446,7 @@ SimGrid (3.13) stable; urgency=low
        And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
      - latency. Default: 's' second. Also defined:
        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
-       
+
  * bin/simgrid_update_xml can upgrade your files automatically (won't convert unit-less values)
    tools/sg_xml_unit_converter.py may help (but it's just a warning and will probably ever be).
 
@@ -352,14 +457,14 @@ SimGrid (3.13) stable; urgency=low
 
  MSG
  * The examples were completely reorganized (in C and Java), for your browsing pleasure.
- * Kill all deprecated functions (the ones you had when declaring MSG_DEPRECATED). 
+ * Kill all deprecated functions (the ones you had when declaring MSG_DEPRECATED).
    They were deprecated since a few years, and probably did not even compile anymore.
 
  SimDag
- * The API has been profoundly modified to directly use the core objects instead of redefining its own. 
+ * The API has been profoundly modified to directly use the core objects instead of redefining its own.
    SD_Workstation_t and SD_link_t are now sg_host_t and sg_link_t respectively.
-   Some functions have also been renamed for consistency. Backward compatibility is maintained, but users are 
-   encouraged to update their codes. A list of the modified functions can be found at the end of 
+   Some functions have also been renamed for consistency. Backward compatibility is maintained, but users are
+   encouraged to update their codes. A list of the modified functions can be found at the end of
    include/simgrid/simdag.h
 
  Simix
@@ -395,7 +500,7 @@ SimGrid (3.13) stable; urgency=low
  * refactoring and cleanup of the code;
  * ongoing process to cleanly separate the model-checking algorithms
    from the code model-checking support.
+
  -- Wed Apr 27 21:00:53 CEST 2016 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.12) stable; urgency=low