Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Document Arnaud's last change
[simgrid.git] / ChangeLog
index 8642b05..36e16cf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.1) unstable; urgency=low
+SimGrid (3.4-svn) unstable; urgency=high
+
+ OVERALL CHANGES:
+  * Tested successfully on AIX
+
+ GRAS:
+  * fix a bug on struct sizeof computation, which prevented the
+    exchange of arrays of structs in some conditions
+    - added a regression test about this in datadesc_usage
+  * Allow the exchange of 0-long dynamic vectors.
+    - for that, use -1 as indicator of dynamic size instead of 0
+    - This implied to change any size from unsigned long to long,
+      reducing a bit communication abilities, but I guess that with
+      64bits being quite common, this is more than enough.
+    - This also induce a protocol change, thus bumping network protocol
+      version from 0 to 1 (if we have external users, we have to get
+      clean on that point too ;)
+    - added two regression tests about this in datadesc_usage
+  * Be more verbose when propagating local exceptions
+    This helps debugging.
+
+ MSG:
+  * Allow to control the simulation from a trace file.
+    New functions MSG_action_register() and MSG_action_trace_run()
+    The first one allows to associate a function execution to each
+     kind of action while the second one parses a trace file and
+     triggers the corresponding actions within the system.
+    For now, only a toy example is provided in examples/msg/actions
+  * Add an exemple of process migration in examples/msg/migration
+  * Fix a bug in task exchange which broke MSG_task_get_sender()
+    Add a teshsuite regression test for that.
+    [Bug: if MSG_task_get_sender() is called after sender exit,
+     bad things happen]
+  * Fix a bug which prevented suspend/resume to work properly
+     
+ SIMIX:
+  * Add SIMIX_process_set_name() to change the name of the current
+    process in the log messages.
+
+ XBT:
+  * Also include strbuff from xbt.h public header
+  * xbt_ex_display(): do not free the exception after displaying 
+    This allows to do more with the given exception afterward.
+    Users should call xbt_ex_free() themselves.
+  * Do not allow malloc(0) since that's not portable
+  
+ Build Chain:
+  * Do not require doxygen in maintainer mode
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> 
+
+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
+
+SimGrid (3.2) stable; urgency=high
+
+  OVERALL CHANGES:
+   * Port to windows.
+     We still experience issues on this platform, but we believe 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.       
+       
+  AMOK:
+  * 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.
+    
+  SIMDAG:
+  * 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]
+
+  SURF:
+  * 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]
+
+  XBT:
+  * 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.
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Fri Mar 16 21:11:46 CET 2007
+
+SimGrid (3.1) stable; urgency=high
 
   General:
   * Port to gcc 4.x   
     There was a stack corruption somewhere, visible only when optimizing
-    with these versions [Vince]
-
+    with these versions. [Vince]
+
+  SIMDAG:
+  * This is a NEW module! SimDAG (SD for short) is a revival of the old SG
+    module that enabled to play with Directed Acyclic Graphs. It is built
+    directly on top of SURF and provides an API rather close to the old
+    SG. Some old codes using SG are currently under rewrite to check that
+    all needful functions are provided. [Christophe Thiery]
+       
   SURF:
-  * complete rewrote of the KCCFLN05 workstation model. It is now an
+  * Complete rewrite of the KCCFLN05 workstation model. It is now an
     extension of the classical CLM03 model that gracefully handles
-    failures. This is now the standard model for MSG and GRAS. It doesn't
+    failures. This is now the default model for MSG and GRAS. It doesn't
     handle parallel tasks yet though. [AL]
   * Bug fix: Weights were not correctly set in the network part. 
     WARNING: This may have resulted in incorrect results with simulations
@@ -17,7 +281,7 @@ SimGrid (3.1) unstable; urgency=low
   SURF, MSG, GRAS:
   * After a (long ?) discussion on simgrid-devel, we have decided that the
     convention we had on units was stupid. That is why it has been decided
-    to move from (MBits, MFlops, seconds) fo (Bits, Flops, seconds). 
+    to move from (MBits, MFlops, seconds) to (Bits, Flops, seconds). 
     WARNING : This means that all previous platform files will not work as
     such with this version! A warning is issued to ask users to update
     their files. [AL]
@@ -33,11 +297,11 @@ SimGrid (3.1) unstable; urgency=low
     (there was many failure situations I hadn't thought of and that weren't
     correctly handled). [AL]
   * New function: MSG_host_is_avail indicates you whether a given m_host_t
-    is up or down.
+    is up or down. [AL]
 
   GRAS:
   * New! a real RPC mecanism, as it ought to be since too long. [MQ]
-      Exception occuring on server-side are propagated back to client (!).
+      Exception occurring on server-side are propagated back to client (!).
       
     API CHANGE: the callback changed their prototype. Change:
         int my_handler(gras_socket_t expeditor, void *payload_data) {
@@ -46,7 +310,9 @@ SimGrid (3.1) unstable; urgency=low
           gras_socket_t expeditor=gras_msg_cb_ctx_from(ctx);
       and you're set.
   * New! function: gras_msg_handleall to deal with all messages arriving
-      within a given period.      
+      within a given period.
+  * New! function: gras_socket_server_range to get a server socket in a
+    range of port numbers (ease to avoid port number conflicts) [MQ]
   * New! gras processes display their backtrace when they get a SIGUSR1
       or when Ctrl-C is pressed. Use Ctrl-C Ctrl-C to exit.
       Sweet to debug RL processes [MQ]
@@ -54,7 +320,7 @@ SimGrid (3.1) unstable; urgency=low
   AMOK:
   * Bandwidth module: 
     - Do not force experiment sizes to be expressed in kb, or it becomes
-      impossible to mesure the latency this way (needs one byte-long tests)
+      impossible to measure the latency this way (needs one byte-long tests)
     WARNING: this changes the amok_bw_* function semantic. [MQ]
     - Implements the link saturation stuff. [MQ]
   * Peer management module: 
@@ -81,11 +347,11 @@ SimGrid (3.1) unstable; urgency=low
     g++. [AL]
   * Renamed xbt_host_t into xbt_peer_t since it betterly describes what I
     meant. This breaks the API of AMOK and of xbt/config. Sorry about this,
-    but I guess that almost nobody used those parts.
+    but I guess that almost nobody used those parts. [MQ]
 
- --
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Fri, 14 Jul 2006 01:32:27 +0200
 
-SimGrid (3.0.1) unstable; urgency=low
+SimGrid (3.0.1) stable; urgency=low
 
   XBT:
   * Unfortunately, I had missed 5 misnamed functions:
@@ -182,7 +448,7 @@ SimGrid (3.0.1) unstable; urgency=low
 
  -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>  Fri, 21 Oct 2005 14:42:20 +0200
 
-SimGrid (3.00) stable; urgency=low
+SimGrid (3.00) stable; urgency=high
   
  SURF:
   * New! Give the possibility to hijack the surf parser and thus bypass 
@@ -955,3 +1221,7 @@ SimGrid (2.90) unstable; urgency=low
   - Get rid of libgrasutils.a since it makes more trouble than it solves.
     Build examples against the RL library, since there is no way to disable
     its creation for now.
+
+For information, the beginning of coding on GRAS was back in june
+2003. I guess that every line has been rewritten at least twice since
+then.