Home My Page Projects SimGrid
Summary Activity Forums Tracker Lists Docs News SCM Files

Project Filelist for SimGrid

File Release Notes and Changelog

Release Name: 3.18

Release Notes
The "Ho Ho Ho! SimGrid 4 beta is coming to town" release.
  SimGrid 4 *may* be there by the next solstice.

 * Convert almost all interesting MSG examples to S4U.
 * New model: energy consumption due to the network.
 * Major cleanups in the disk and storage subsystems.
 * (+ further deprecate XBT, bug fixes and doc improvement)
Change Log
 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
 - 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.

 - 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.
   Rational: we still want MSG to work; we want newcomers to use S4U.

 - LMM stuff moved to its own namespace: simgrid::kernel::lmm.
 - Renamed LMM classes (e.g. s_lmm_system_t -> System).

 - 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

 - 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/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

 - 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
   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.

 - Remove the undocumented/untested tag <include>

 - 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