Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git] / ChangeLog
index 7e2610f..71afbb0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.17) UNRELEASED (release target: September 22 2017)
+SimGrid (3.20) NOT RELEASED YET (Release target: June 21. 2018 10:07 UTC)
+
+TRACE
+ - Change --cfg=tracing/msg/vm to --cfg=tracing/vm as virtual machine
+   behavior tracing is no longer limited to MSG
+
+ S4U:
+ - Introduced new function simgrid::s4u::Host::get_actor_count. This function
+   returns the number of actors running on a specific host.
+
+ Simix:
+ - Add parameter --cfg=simix/breakpoint to raise a SIGTRAP at given time.
+
+ SMPI:
+ - Replay: The replay file has been re-written in C++.
+ - Replay: Tags used for messages sent via MPI_Send / MPI_Recv are now
+   supported. They are stored in the trace and used when replayed.
+
+ XBT:
+ - Config: the C API is now deprecated (will be removed in 3.23), and
+           the C++ API has been slightly improved.
+
+ Fixed bugs:
+ - #143: Setting a breakpoint at a given time
+ - #258: daemonized actors hang after all non-daemonized actors have completed
+
+----------------------------------------------------------------------------
+
+SimGrid (3.19.1) Released March 22 2018
+
+ The Fixed ABI Release.
+
+ As you may know, we are currently refactoring SimGrid in deep.
+ Upcoming SimGrid4 will be really different from SimGrid3: modular,
+ standard and extensible vs. layered, homegrown and rigid. C++ vs. C.
+
+ Our goal is to smooth this transition, with backward compatibility
+ and automatic update paths, while still progressing toward SimGrid4.
+
+ SimGrid remains open during works: The last pure SimGrid3 release was
+ v3.12 while all subsequent versions are usable alpha versions of
+ SimGrid4: Existing interfaces remain unchanged, but the new S4U
+ interface is budding and the internals are deeply reorganized.
+
+ Since 2015, we work hard to reduce the changes to public APIs. When
+ we need to rename a public library symbol in S4U, we let your
+ compiler issue an explicative warning when you use the deprecated
+ function. These messages remain for four releases, i.e. for one full
+ year, before turning into an error. Starting with v3.15, your can
+ also adapt to API changes with the SIMGRID_VERSION macro, that is
+ defined to 31500 for v3.15, to 31901 for v3.19.1 and so on.
+
+ Starting with this v3.19.1, our commitment to reduce the changes to
+ the public interfaces is extended from the API to the ABI: a program
+ using only MSG or SimDag and compiled against a given version of
+ simgrid can probably be used with a later version of SimGrid without
+ recompilation. We will do our best... but don't expect too much of
+ it, that's a really difficult goal during such profund refactoring.
+
+ The difference between v3.19 and v3.19.1 is that the former was
+ accidentally breaking the ABI of MSG, while the later is restoring
+ the previous ABI.
+
+ S4U and kernel APIs will still evolve until SimGrid4, with one-year
+ deprecation warnings as currently. In fact, cleaning up these
+ interfaces and converting them to snake_case() is one release goal of
+ v3.20. But don't worry, we are working to smooth this upgrade path.
+
+ In summary, new projects should start with S4U to benefit of the
+ future, but old MSG projects should still be usable with no change.
+
+----------------------------------------------------------------------------
+
+SimGrid (3.19) Released March 20 2018
+
+ The Moscovitly-cold Spring release.
+
+ SMPI user-visible improvements:
+ - Support of MPI_Type_create_subarray
+ - Unimplemented MPI calls now abort (instead of issuing a warning)
+   Some harmless calls around errhandlers still only issue a warning.
+ - MPI_Sendrecv was behaving badly when MPI_PROC_NULL was sender or receiver.
+ - Starting MPI ranks (or even MSG/S4U actors) once the simulation started
+   is now possible (mmap privatization was refactored to this end).
+   Adding new SMPI instances should also be technically doable now.
+
+ SMPI internal cleanups:
+ - Removed index notion from SMPI -- no more "getPid() - 1"!
+   In tracing files, actors are called rank-<PROCESS-ID> but these are
+   NOT the real ranks (tracing several communicators is not supported yet).
+ - Deprecate smpi_process_index() (will be removed in 3.22)
+ - Better testing on classical proxy apps, through an external project:
+   https://github.com/simgrid/SMPI-proxy-apps/
+
+ Documentation
+ - Use a graphical TOC to make it easier to find the documentation you need
+ - Revamp the MSG tutorial
+
+ MSG
+ - Fix MSG_task_get_remaining_work_ratio(): return 1.0 for unstarted tasks.
+ - Remove parameter of MSG_process_killall().
+   Resetting the PID was bogus anyway (several actors could have the same PID).
+
+ S4U
+ - Execution->setHost() can be called after start(), to migrate it.
+ - Comm::test_any() is now implemented.
+ - s4u::Actor now has onCreation() and onDestruction() signals.
+ - Install some kernel header files for the users' plugins and more.
+   Warning, their API is really not stable yet.
+    include/simgrid/kernel/resource/{Action,Resource,Model}.hpp
+    include/simgrid/kernel/routing/*Zone.hpp
+
+ SimDag
+ - SD_task_dependency_add(): remove unused parameters 'name' and 'data'.
+
+ Build System and other cleanups:
+ - Remove unused run-time parameter "tracing/onelink-only".
+ - SimGrid now works with intel compilers (MC still buggy)
+ - Remove XBT_LOG_CONNECT, it should be useless nowadays.
+ - tesh kills subprocesses on timeout (but not on windows)
+
+ PLATFORM:
+ - Rename FULLDUPLEX into SPLITDUPLEX (old name still accepted)
+
+ Fixed bugs:
+ - #194: Feature request: simgrid::s4u::Comm::test_any()
+ - #245: migrating an actor does not migrate its execution
+ - #254: Something seems wrong with s4u::Actor::kill(aid_t)
+ - #256: Modernize FindSimGrid.cmake
+ - #257: Fix (ab)use of CMake install
+
+----------------------------------------------------------------------------
+
+SimGrid (3.18) Released December 24 2017
+
+ The "Ho Ho Ho! SimGrid 4 beta is coming to town" release.
+
+ MSG IS NOW DEPRECATED. Please use S4U for new projects.
+ - Support for MSG should not be removed from SimGrid before 2020,
+   but future evolutions will be limited to the integration of
+   user-provided patches.
+
+ S4U New features
+ - s4u::onDeadlock() signal, run before stopping the simulation.
+ - s4u::Exec: asynchronous executions (abstraction of background
+   threads)
+ - s4u::Host->getLoad() returns the achieved speed in flops/s
+
+ S4U API changes
+ - 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*.
+ - s4u::allStorages() becomes s4u::getStorageList(whereTo)
+   to have both allocation and deallocation of the map in user space.
+
+ MSG
+ - Forbid the use of MSG_task_get_flops_amount() on parallel tasks:
+   The amount of flops remaining to do is a vector, not a scalar.
+ - Introduce MSG_task_get_remaining_work_ratio(), which does what its
+   name implies on both sequential and parallel tasks.
+ - Both changes fix GitHub's #223 using PR #237 as a basis.
+   Thanks Michael Mercier.
+ - Most examples were converted to S4U and hidden elsewhere at tests.
+   Rationale: we still want MSG to work; we want newcomers to use S4U.
+
+ SURF
+ - LMM stuff moved to its own namespace: simgrid::kernel::lmm.
+ - Renamed LMM classes (e.g. s_lmm_system_t -> System).
+
+ SMPI
+ - Switch to the faster dlopen privatization mechanism by default
+ - Documentation improvments
+
+ Virtual Machines
+ - Live migration is getting moved to a plugin. Dirty page tracking is
+   the first part of this plugin. This imply that VM migration is now
+   only possible if one this function is called :
+    - C/MSG: MSG_vm_live_migration_plugin_init()
+    - C/C++: sg_vm_live_migration_plugin_init()
+    - Java:  Msg.liveMigrationInit()
+   For C and C++, "simgrid/plugins/live_migration.h" also has to be
+   included.
+
+ XBT
+ - Define class simgrid::xbt::Path to manage file names.
+ - Removed unused functions:
+   - xbt/file.h: xbt_basename(), xbt_dirname(), xbt_getline()
+   - xbt/graph.h: xbt_graph_edge_get_length(), xbt_graph_edge_set_length,
+       xbt_graph_export_graphviz()
+   - xbt/str.h: xbt_str_join()
+ - Remove unused datatypes:
+   - xbt/heap.h: use std::priority_queue or boost::heap instead
+   - xbt/swag.h: use boost::intrusive::list 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 processes leads to segfault
+ - #240: xbt_cond_wait_timeout should gracefully return for C apps
+ - #239: please implement signal s4u::onDeadlock()
+ - #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
+ - #221: odd LMM warning when killing an actor
+ - #120: Memory leak when the processes are forcefully killed
+
+----------------------------------------------------------------------------
+
+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, and there is only
- one single known leak, of about 4kb. 
+ 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
@@ -29,22 +256,29 @@ SimGrid (3.17) UNRELEASED (release target: September 22 2017)
  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: 
+ - 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 
+   - #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 
+   - #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 
+   - #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.
 
@@ -75,7 +309,7 @@ SimGrid (3.16) Released June 22. 2017.
     When one wants to get the list of tasks whose states have changed during a
     simulation round, s/he has to allocate and free a dynar and use it as
     argument to this function. The former SD_simulate (double how_long)
-    now        returns void.
+    now returns void.
 
  Virtual Machines
   - Allow multicore VMs, with the correct sharing (unless you overcommit)