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

Release Notes
The Clean Diaper Release, a.k.a. SimGrid is leak-free. Major changes:

 * Preliminary DVFS support to track the energy consumption
 * Java is back in the main package (and is very stable).
 * The storage sub-modules is now believed to be usable.
 * SMPI is now very stable (we pass most MPICH tests).
 * Lots of memory leaks were corrected in this release.
 * Verification and model checking further improved:
   liveness+SMPI works; reduction through state equality detection
 Plus the usual load of bug fixes and small improvements
Change Log
The Clean Diaper Release, a.k.a. SimGrid is leak-free.

 Java:
 * Reintegrate Java to the main archive as desynchronizing these
   package is not acceptable anymore (Java is now considered stable)
 * Add explicit synchronization facilities through semaphores
 * Bug fix: Task.setDataSize() only changed the C world, not the value
   cached in the Java world

 MSG:
 * Dramatically change the way files are handled. API and internals changed, but
   this part of MSG was not considered as production grade either.
 * Add explicit synchronization facilities through semaphores
 * Add a new function MSG_host_get_process_list()
 * Preliminary DVFS support (see examples/msg/energy/ for details)

 SMPI:
 * SMPI is now included directly in the libsimgrid as the windows
   linker doesn't force us on splitting it anymore.
 * Improvements of the SMPI replay tool:
   - Most of the collective communications are now rooted in the same process as
     in the original application.
   - Traces now rely on the same MPI data type as the application (MPI_BYTE was
     used until now). Multiple data types can now be used in a trace.
   - The replay tool now supports traces produce either by TAU or a modified
     version of MPE.
   - Bug Fix: the compute part of the reduce action is now taken into account.
   - Gatherv collective is now supported
   - SimGrid (SMPI for now) can generate replay traces as well. Option -trace-ti
     of smpirun outputs time independent traces for the current run. One file
     is created per process. If too many processes are simulated, this behavior
     can be changed to one file for all processes by using the
     tracing/smpi/format/ti_one_file flag
 * smpirun generates the host file if needed (with given host count and platform)
 * Integration of more than 100 STAR-MPI, MPICH, OpenMPI collective algorithms
   - allows to select one in particular with --cfg=smpi/coll_name:algorithm
   - allows to use the decision logic of OpenMPI(1.7) or MPICH(3.0.4) by setting
     --cfg=smpi/coll_selector:(mpich/ompi)
 * Support for new functions : MPI_Issend, MPI_Ssend, Commutative operations in
   Reduce
 * Add a --cfg:tracing/smpi/internals option, to trace internal communications
   happening inside a collective SMPI call.
 * Fix the behavior of complex data types handling.
 * Make MPI_Wtime another synchronization point to take computations into account.
 * Replace MPICH-1 test suite by the one from MPICH 3.0.4. Can be built using
   enable_smpi_MPICH3_testsuite flag in cmake. Run with ctest.
 * Add all missing Fortran bindings, SMPI should work with Fortran 90
   (no privatization of global variables yet)
 * Preliminary DVFS support (see examples/smpi/energy/ for details)

 Model-Checking;
 * Verification of liveness properties is now available for SMPI applications
   (in addition to MSG applications)
 * Bugged examples using SMPI in examples/smpi/mc/
 * Add --cfg=model-check/visited option. Allows the verification of infinite
   programs. Detection of loops in the execution thanks to the system state
   comparison and reduction of the state space to explore. Can be combined with
   DPOR for safety properties.

 SimDag:
 * Allow to change SimGrid configuration (see --help) within the code
   thanks to SD_config() as it can be done in MSG.
 * Add a new function SD_task_set_amount() upon user request.

 PLATFORM:
 * Handle units for values (10ms, 10kiloflops, 10Bps, 1GB, ...)
 * Remove rule based routing (no more PCRE dependency)
 * Add a limiter_link option to cluster tag, to specify a maximum reachable
   bandwidth in fullduplex mode when it is less than twice the nominal bandwidth.
 * Add a loopback_bw and loopback_lat options to cluster tag.
 * Fix the peer tag that could not be mixed with other AS within a Vivaldi
   routing. Now peers are encapsulated in an AS and have their own private
   router but this is transparent.

 XBT:
 * Our own implementation of getline is renamed xbt_getline, and gets
   used even if the OS provide a getline(). This should reduce the
   configuration complexity by using the same code on all platforms.
 * New type: xbt_cfg_elm_boolean.
 * Allow to use yes/no for boolean configuration options in the command line.
 * Allow to disable SimGrid cleanups at exit from command line option.
   There are situations where one may want a simulation to end with an exit.
   Unfortunately, calling exit may cause SimGrid to segfault, which is quite
   annoying when scripting around the simulator. Adding a
   --cfg=clean_atexit:no allows to circumvent this issue.

 Build System:
 * Lots of memory leaks were corrected in this release.
   There is no known memory leaks anymore, in all of our 600+ tests.
 * New command line option --version, to get SimGrid version information.
   Packagers may want to add extra words to SIMGRID_VERSION_EXTRA defined in
   CMakeLists.txt.
 * Supernovae builds are deprecated, and expected to be removed in the next
   version of SimGrid.