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

Release Notes
The Psssshiiiit release: SimGrid jumps into the Cloud.

 * Experimental interface to manipulate VMs, EC2-style.
 * Fixes around process restart and stochastic workloads
 * platf: New C interface to create fixed or random platforms
 * SimDag: Many fixes and improvements of typed tasks
 * SMPI now covers more of the MPI interface.
   More datatypes, more functions, more robust.
 * Model-checking: mmalloc is more robust to user errors.
Change Log
The Psssshiiiit release: SimGrid jumps into the Cloud.

 MSG:
 * Add an experimental interface to manipulate VMs. They are mainly
   process groups with very few intrinsic semantic, but they should
   allow you to build the semantic you want easily.
 * New function: MSG_host_set_property_value()
 * New function: MSG_process_on_exit(). To clean memory in all cases.
 * Bug fixes that made the host (and link) failures unusable.
 * Add a way to auto-restart process when the host in which they are
   executing comes back (ON_FAILURE="RESTART" on deployment file,
   MSG_process_auto_restart_set).   
 * Use the "msg_" prefix for all datatypes (instead of m_, msg_ and MSG_),
   please stop using the old ones, they are DEPRECATED.
   
 * Deprecate functions MSG_global_init() / MSG_global_init_args()
   Please use MSG_init() instead. (reducing the amount of entry
   points in the library helps us).
 * Make it impossible to link against the wrong version of the lib
 * Deprecate MSG_clean(). No need to call it anymore.
 * Function MSG_get_host_number() is not deprecated anymore.

 Documentation:
 * Split the doc into a user guide and a reference guide.
 * Start a developper guide to help people hacking on SimGrid.

 Cmake:
 * Enable tracing by default. This modules rocks you should use it.
 * Remove option custom_flags. Now use environment variables CFLAGS
   and LDFLAGS.
 * Use default cmake things to detect lua instead of home grown ones.
 * New option "enable_mallocators" to disable mallocators, for debugging
   purpose ("on" by default).

 Simix:
 * Bug fixes around the resource failures: don't let the processes
   survive the host they are running onto.
 * Add an interface to auto-restart processes when the host in which they are
   executing comes back.
 * Ensures that SIMIX_clean is called automatically. It's not part of
   the public interface anymore (bindings should be updated).

 SimDag:
 * Bug fix for when SD_Simulate is called with a positive value: be careful
   when comparing doubles. Sometimes they are different for non significant
   digits only.
 * New types of typed tasks. SD_TASK_COMP_PAR_AMDAHL represents a
   parallel task whose initial work is distributed among host according
   to the Amdahl's law. Such tasks are created with a parameter alpha
   that corresponds to the non-parallelizable part of the computation.
   SD_TASK_COMM_PAR_MXN_1D_BLOCK represents a complex data redistribution
   between two sets of workstations assuming a 1D block distribution (each
   workstation owns a similar share of data) on both sides.

   These tasks can be scheduled with SD_task_schedulel or SD_task_schedulev.
   Data redistribution will be automatically scheduled once parent and child
   are both scheduled. The filling of computation_amount and
   communication_amount structures is now done seamlessly thanks to the chosen
   assumptions.
 * New function SD_workstation_dump to display various information
 * New function SD_task_set_rate to throttle the bandwidth allowed to be used
   by a SD_TASK_COMM_E2E typed task. This rate depends on both the nominal
   bandwidth on the route onto which the task is  scheduled and the amount of
   data to transfer.
   To divide the nominal bandwidth by 2, the rate then has to be :
                     rate = bandwidth/(2*amount)
 * Compute tasks that have failed can now be rescheduled and executed again
   (from their beginning)
 * Increasing source code coverage (src/simdag is now covered at 95.8%
   on average)

 SMPI:
 * Re-implement time-independent trace replay using SMPI (at the
   smpi_smp_* level) instead of MSG. This should replace
   examples/msg/actions/actions.c
 * Implement support of MPI Datatypes (vectors, hvectors, indexed, 
   hindexed and structs)
 * Implement the exchange of non-contiguous data.
   [Khalid Hasanov & Jean-Noel Quintin] Thanks for the patch, guys.
 * Correct behavior of smpi/sender_gap and set its default value to 0
 * Add option to asynchronously send small messages to allow better 
   simulation of pt2pt communications. --cfg=smpi/async_small_threshold:value 
   specifies the size in bytes under which messages will be asynchronously sent.
 * Add support of MPI_Iprobe, MPI_Probe, MPI_Testall, MPI_Wtick functions
 * SMPI now handles more MPI specific values in input. Closes [#14389] and [#14388] 

 SimGrid:
 * New C interface to define a platform: XML is now optional. 
   For more info, please check include/simgrid/platf.h.
 * New interface to define random platforms from the C:
   For more info, please check include/simgrid/platf_generator.h and
   examples/msg/masterslave/masterslave_platfgen.c
 * Export a sg_cmdline dynar containing all the arguments we got from
   the command line.

 TRACE:
 * Two new tracing options for adding comments to trace file so you
   can track your experiments (see --help-tracing for details).
 * New option to generate a impoverished trace file (--cfg=tracing/basic:1)
 * Adding the SimGrid version that generated the trace file as a comment.
 * Instrumenting other MSG functions (MSG_task_isend_with_matching and MSG_task_dsend)
 * Fix to avoid key clashes on Paje links
 * Other minor fixes related to the Paje specification

 XBT:
 * Functions xbt_dict_hash() and xbt_dict_hash_ext() are made public,
   and renamed to xbt_str_hash() and xbt_str_hash_ext().
 * New function: xbt_os_timer_resume() to restart a timer w/o resetting it.
 * Greatly improve the robustness of mmalloc to user errors (such as
   using an area after freeing it, or freeing it twice)

 -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>