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

Release Notes
 * Initial port to windows

   We think that MSG is as stable on windows than on linux, and the GRAS
   runtime is still to be ported.

 * Documentation updates (but you can already see it on the web site)

 * API simplification in GRAS (MSG API wasn't touched)

 * Tons of bug fixes
Change Log
SimGrid (3.2)

   * Port to windows.
     We still experience issues on this platform, but we belive that at
     least MSG is usable.

  GRAS API BREAKAGE (for simplification purpose, sorry):
   * the gras_msgtype_by_name is not used anymore. Instead of 
       gras_msg_send(toserver, gras_msgtype_by_name("request"), &request);
     you can write (and must)
       gras_msg_send(toserver, "request", &request);
   - If you still want to pass a gras_msgtype_t to the function (to cache
     the type and avoid the lookup time), use the gras_msg_send_() variant.
   - Impacted functions:
     gras_cb_register, gras_cb_unregister, gras_msg_send, gras_msg_wait,
     gras_msg_rpccall, gras_msg_rpc_async_call, gras_msg_wait_ext
   * The callbacks are now expected to return 0 when everything went well
     (just like the main() function)

  GRAS new features and improvements:
  * New module mecanism where user code can use per process globals [Mt]
    This is similar to gras_userdata_*() functions, but for libraries. It
      factorize some code developped over and over in the examples and AMOK.
    It has still to be documented and used (only amok/peermanagement is
      converted for now).
  * Fix a vicious bug in the TCP buffering mecanism which leaded to message
    loss when they were small enough to fit into the buffer and sent quickly
    enough so that they can all get received in one shoot.   
  * gras_datadesc_by_name and gras_msgtype_by_name: now raise an exception
    if not found. Use the *_or_null() variant for the old semantic.
  * In gras_msg_handle, do not discard messages without callback.
    They are probably messages to be explicitly awaited later (ie, proofs of
    mis-synchronization in userland since they are sent before being awaited)
    No big deal usually.
  * gras_socket_meas_send/recv: semantic changed!
    The numerical arguments used to be (1) the total amount of data to send
    and (2) msg_size. This was changed to (1) msg_size and (2) amount of
    messages. This was need for the fool willing to send more than MAXINT
    bytes on quite fat pipes.       
  * Do really rename the hostmanagement module to peermanagement. [Mt]
    Ie, rename functions from amok_hm_* to amok_pm_*. This breaks the API,
    but this is rather new and this was documented in the module
    documentation (poor excuses, I admit)
  * Bandwidth measurement semantic changed! This follows the changes to
    gras_socket_meas_send/recv explained above.
  * A sequential mode has been added to the workstations. When a workstation
    is in sequential mode, it can execute only one task, and the other tasks
    are waiting in a FIFO. [Christophe Thiery]

  * The KCCFLN05 workstation model now handles parallel tasks. It is the
    model for SIMDAG. [Christophe Thiery]
  * Bug fix in the maxmin solver: Some values were close to 0 instead of
    equal to 0, which caused some bad behaviors in
    saturated_constraint_set_update. I now use a threshold mechanism like in
    surf. [AL]

  * When running manually src/testall, you select specific units [Mt]
    testall is the result of our cunit mecanism, and should replace all
    the scripty thingy around since bash don't run easily on billware.

  * A mallocator system has been added. [Christophe Thiery]
    Mallocators allow you to recycle your unused objects instead of freeing them
    and allocating new ones.

  Documentation update:
  * FAQ reworking + New FAQs:
    - "Valgrind spits tons of errors!" [Mt]
    - "How to repport bugs" [Mt]
    - "Cross-compiling a Windows DLL of SimGrid from Linux" [Mt]
    - "What is the difference between MSG, SimDag, and GRAS?" [Mt]
    - Communication time measurement within MSG [AL]
    - I experience weird communication times when I change the latency [AL]
  * GRAS tutorial [Mt]
    It contains:
     - an introduction to the framework and to the used communication model
     - an initiatic tour introducing the most proheminent features:
       o Part 1: Bases
         . Lesson 0: Installing GRAS
         . Lesson 1: Setting up your own project
       o Part 2: Message passing
         . Lesson 2: Exchanging simple messages
         . Lesson 3: Passing arguments to the processes (in SG)
         . Lesson 4: Attaching callbacks to messages
         . Lesson 5: Using globals in processes
         . Lesson 6: Logging informations properly
         . Lesson 7: Using internal timers
         . Lesson 8: Handling errors through exceptions
         . Lesson 9: Exchanging simple data
	 . Lesson 10: Remote Procedure Calling (RPC)
	 . Lesson 11: Explicitely waiting for messages
	 . Recapping of message passing features in GRAS
     - A HOWTO section containing:
       o HOWTO design a GRAS application
       More are due, of course. They will come latter. In the meanwhile, you can 
       check the examples which are still here.