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

Release Notes
     ____  _            ____      _     _ 
    / ___|(_)_ __ ___  / ___|_ __(_) __| |
    \___ \| | '_ ` _ \| |  _| '__| |/ _` |
     ___) | | | | | | | |_| | |  | | (_| |
    |____/|_|_| |_| |_|\____|_|  |_|\__,_|                                       
                    _               _____  _____ 
__   _____ _ __ ___(_) ___  _ __   |___ / |___ / 
\ \ / / _ \ '__/ __| |/ _ \| '_ \    |_ \   |_ \ 
 \ V /  __/ |  \__ \ | (_) | | | |  ___) | ___) |  
  \_/ \___|_|  |___/_|\___/|_| |_| |____(_)____/ 
               _             _           _ 
     _  _ _ _ | |___ __ _ __| |_  ___ __| |
    | || | ' \| / -_) _` (_-< ' \/ -_) _` |
     \_,_|_||_|_\___\__,_/__/_||_\___\__,_|
                                       

homepage: http://simgrid.gforge.inria.fr/
download: http://gforge.inria.fr/frs/?group_id=12

At least, after 2 years of hard work, we managed to release the 3.3
version of the SimGrid framework. There is so many changes that the
changelog only lists the most important ones, leaving alone the small
improvements, bug fixing and new gadgets. 

In short:
 * Java bindings
 * New simulation models, and improvement of the GTNetS wrapper
 
 * Large memory savings (mainly in parser)
 * Faster (twice faster is not uncommon, and from 20 hours to 2
           minutes on very large scenarios)
 * Much better scalability (tested up to 250,000 processes)
 
 * Complete regression testing framework so that you can trust the tool
 * Lot of neat new modules in the XBT toolbox
 
This version was throughfully tested on linux 32bits and 64bits
(debian), as well as Mac OSX (leopard). 

Unfortunately, our windows-guy left, and we cannot release the windows
version at the same time than the other archs. Any help would be
really welcomed here.

Some of the 96 included test suites are known to fail, but everything
should work anyway (don't panic):
 * The amok module does not work in real deployment ATM, but I don't
   see this as release critical since I'm not aware of anyone needing
   this right now   
 * Some tests about the ability of GRAS to receive messages from
   exotic platforms fail because I've lost access to these platforms
   (such as AIX)
 * the example/gras/pmm sometimes fails (about 1/10 of cases). I'm
   quite puzzled, but I suspect a bug in the test, not in the lib.
 * the tesh auto-tests "fail" on Mac OSX. This is because "rm -rf" is
   sometimes too verbose (when the OS creates hidden files, I
   suspect), but tesh definitly work as the rest on this arch.
   
We hope to manage to do more timely releases in the future, even if
that may turn out difficult since big stuff is comming (I don't say
much here for the suspense ;)

We hope you'll enjoy this new version, and please report any feedback
on the <simgrid-user@lists.gforge.inria.fr> list.

Martin (for Da SimGrid Team)
Change Log
SimGrid (3.3) stable; urgency=high

 OVERALL CHANGES:

  * JAVA BINDINGS for MSG (you dreamt of them? We made them)
    [Malek Cherier & Mt]

  * Introduce the SIMIX module: factorize code between MSG and GRAS.
    [Bruno Donassolo]
  
    Until now, GRAS were using MSG as an interface to SURF. It was
    quite difficult because both interface have several differences
    (MSG channels vs GRAS sockets were the most notable point).
   
    This also opens the gate to SMPI (which should occur soon) and speed
    up simulations by to 40% (even if it were not the main goal).
  
    ************************************** 
    *DO NOT MIX 3.2 RESULTS WITH 3.3 ONES* Simix may changes simulations!
    **************************************
    The point is that events occuring at the exact same timestamp are
    not scheduled in the same order with the old and new version. This
    may be enough to completely change the execution of simulations in
    some cases. Sorry for the inconvenience.

  * Cleanup and upgrade the XML format to push further scalability
    issues (check http://hal.inria.fr/inria-00256883/ for more info)

  * Improve the testing infrastructure with tesh. Now a very large part of
    the code is tested not only by being run but also by checking that the
    output match an expected output [Mt].

  * Move on to FleXML v1.7 for the embeeded XML parsers. This version
    is really less memory-demanding, which should allow you to use
    larger files in SimGrid [AL].
    
  * Inform valgrind about our contextes, so that it becomes usable
    with the default (and more effecient) version of SimGrid
    [contributed by Sékou Diakite, many thanks]

 GRAS:
  * Introduce a listener thread in charge of receiving incomming
    messages from the network. It allows to overlap communication and
    computation but most notably, it removes some stupid deadlocks due
    to the fact that so far, a process could not send and receive at
    the same time. This made most non trivial communication schema
    impossible.
  * Convert the PIDs from long int to int to match the MSG ones (and
    linux ones too) [Mt]
  * New function: gras_agent_spawn() to launch a new process on
    current host. Only working in simulation for now. [Mt]
  * New function: gras_os_hostport() returning a constant form (ie,
    not needing to be freed) of "gras_os_hostname():gras_os_myport()"

 XBT:
  * Make the backtrace of exceptions more human readable [Mt]
  * New module: xbt/str [Mt]
    a ton of string utility functions (split, join, printf to a newly
    allocated buffer, trim, etc)
  * New module: xbt/hash [Mt]
    SHA1 hashing algorithm (more to come if needed)
  * New module: xbt/synchro [Mt]
    synchronization tools (mutex and conditions) working the same way
    in simulation and in real life (mainly useful for GRAS, but not
    only).
  * New module: xbt/queue [Mt]
    classical producer/consumer synchronization scheme
  * xbt_dynar_new_sync() creates a synchronized dynar. All access
    (using the classical functions will get serialized) [Mt]
  * Make dictionary internal table dynamic. No need to specify its size
    anymore; functions xbt_dict_new_ext() and xbt_dict_hashsize_set()
    thus dropped. [Mt].
  * Make sure the log channels are organized as a tree under windows
    (because of ANSI C compatibility issue, any channel were child of
     root directly) [Mt].

 SURF:
  * Cleaned many thing in surf and fixed a few bugs [AL].
  * Add a nice command line configuration mechanism to compose models [AL].
  * Add a new model for parallel tasks (ptask_L07) that is less buggy than
    the previous one (KCCFLN05). It relies on something that looks like
    a max-min sharing mechanism but cannot be written as such. A new solver
    was thus designed [AL].
  * Add a new solver to lmm. Based on Lagrange optimization and
    gradient-based descent, it enables to efficiently maximise systems s.a
  
     sum f_i(x_i) s.t Ax<= b  with A_{i,j}>=0 and f_i a concave function.

    This solver enables to propose two new network models for TCP Reno and
    TCP Vegas based on Low's work. These models still need to be fully
    tested though [Pedro Velho].

 SIMDAG [AL]:
  * Bug fix in SD_simulate. Now the time bound given as argument is
    used.
  * Use the new parallel task model (ptask_L07) as default.
  * Use the SURF command line configuration mechanism.
  * 0-size tasks (for synchronization) should now work.

 -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Sun Apr 12 05:20:36 CEST 2009