Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Forgot to remove that comment
[simgrid.git] / ChangeLog
index 9eb85c8..2205423 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,202 @@
-SimGrid (3.01) unstable; urgency=low
+SimGrid (3.1.1) unstable; urgency=low
 
   * 
 
  --
 
+SimGrid (3.1) unstable; urgency=low
+
+  General:
+  * Port to gcc 4.x   
+    There was a stack corruption somewhere, visible only when optimizing
+    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 rewrite of the KCCFLN05 workstation model. It is now an
+    extension of the classical CLM03 model that gracefully handles
+    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
+    where there are more than one flow on a given link. [AL]
+
+  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) 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]
+    A conversion script can be found in the contrib module of the CVS, under
+    the name contrib/platform_generation/surfxml_update.pl [MQ]
+
+  MSG,GRAS:
+  * Bug fix: Processes were started in reverse order, wrt deployment file.
+    WARNING: if your code relies on this bug, please fix it.    [AL]
+  * Bug fix: Add a test in MSG_task_execute to stop whenever a task is
+    being executed on two different locations.                  [AL]
+  * Bug fix: Failures are now better supported thanks to Derrick's tests
+    (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. [AL]
+
+  GRAS:
+  * New! a real RPC mecanism, as it ought to be since too long. [MQ]
+      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) {
+      to:
+        int my_handler(gras_msg_cb_ctx_t ctx  , void *payload_data) {
+          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.
+  * 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]
+
+  AMOK:
+  * Bandwidth module: 
+    - Do not force experiment sizes to be expressed in kb, or it becomes
+      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: 
+    New! module factorizing code that we wrote over and over [MQ].
+      
+  XBT:
+  * New module: cunit (my jUnit implementation in ansi C) [MQ]
+    - Test units are placed directly into the library code, they get extracted
+      automatically and placed into the src/testall binary.
+    - Convert most of the XBT tests to this system.
+  * New functions: xbt_dynar_getfirst_as() and xbt_dynar_getlast_as() [MQ]
+  * XML parsing: rewrote parts of flexml to enable multiple xml parsers to
+    live in the same C code. This required to change a little bit the API
+    of surfxml parsing but shouldn't be an issue for end-users. [AL]
+  * New module: sparse graph structure with basic algorithms (this is work
+    in progress and the API is not considered to be frozen yet). [AL]
+  * Display more information on backtraces: source line & function names are
+    now displayed just like valgrind does (rely on addr2line tool) [MQ]
+  * New function: xbt_backtrace_display(). Sweet while debuging [MQ]
+  * Reworked a little bit some #include statements to load only required
+    headers. Some user code that relied on SimGrid to include stdlib or
+    stdio may need to include it by themselves. [AL]
+  * Fixed xbt/log.h. A missing SG_BEGIN_DECL prevented compilation with
+    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. [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
+
+  XBT:
+  * Unfortunately, I had missed 5 misnamed functions:
+      xbt_fifo_item_t xbt_fifo_newitem(void);
+      void xbt_fifo_freeitem(xbt_fifo_item_t);
+      xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l);
+      xbt_fifo_item_t xbt_fifo_getNextItem(xbt_fifo_item_t i);
+      xbt_fifo_item_t xbt_fifo_getPrevItem(xbt_fifo_item_t i);
+    They're now deprecated. Please use their new versions:
+      xbt_fifo_item_t xbt_fifo_new_item(void);
+      void xbt_fifo_free_item(xbt_fifo_item_t);
+      xbt_fifo_item_t xbt_fifo_get_first_item(xbt_fifo_t l);
+      xbt_fifo_item_t xbt_fifo_get_next_item(xbt_fifo_item_t i);
+      xbt_fifo_item_t xbt_fifo_get_prev_item(xbt_fifo_item_t i);
+    [AL]
+  * Bugfix: really disconnect fifo items which are remove_item()ed [AL]
+  * Documentation: xbt_log module unmercifully reworked [MQ]
+  * Bugfix: there was a problem with the ending of contexts with 
+    the pthread backend. It caused some weird deadlock or behavior
+    depending on the pthread implementation. [AL]
+  * Bugfix: get the exceptions raised in the simulator repport where
+    and why they come from when they are not catched in time [AL, MQ]
+
+  SURF:
+  * Bugfix: Do repport the error when two non-connected hosts try to
+    exchange data (Thanks to Flavien for stumbling into this one) [AL]
+  
+  SURF:
+  * Add additionnal checkings on communications. Assert that two
+    communicating hosts are connected by a set of links... [AL]
+       
+  MSG:
+  * Add additionnal checkings on channel values in communication [AL]
+  * New: MSG_task_get_source to see on which host a task was generated [HC]
+  * New: int MSG_task_probe_from_host(int channel, m_host_t host): returns
+    the number of tasks waiting to be received on channel and sent
+    by host. [AL]
+  * New: MSG_error_t MSG_task_get_from_host(m_task_t * task, int channel, m_host_t host); 
+    waits for the first task coming from a given host.. [AL]
+       
+  GRAS new functionnalities: [MQ]
+  * Enhance the parsing macro to allow the size of multidimentional objects
+    to be given thru annotations.
+  * New example (and documentation): Matrix Multiplication a la RPC 
+    (as when I was young!) and fix a bunch of bugs found on the way.
+
+  GRAS performance improvements: [MQ]
+  [DataDesc]
+  * Reduce the amount of cbps creation/destruction by making it static to 
+    datadesc_send/recv() and using a (newly created) cbps_reset (based on 
+    dynar_reset ())
+  [Virtu]
+  * Change libdata to a set so that we can search for stuff by ID (and thus 
+    reduce the insane amount of dict lookups)     
+  
+  [Transport]
+  * Actually implement gras_datadesc_copy() so that we don't have to mimick
+    RL communication on top of SG since it's so uneffective. 
+    It may also be used for inter-thread communication in RL, one day. 
+  * Use gras_datadesc_copy() to exchange messages on top of SG 
+    Allows to:
+    - improve message exchange performance on top of SG
+    - deprecate transport_plugin_sg.c:gras_trp_sg_chunk_send() & recv()
+  * Don't exchange on the network the size of the used part of buffer,
+    instead, specify the possible buffer size to read(). 
+    Advantages:
+     - reduces the amount of read/write calls (one pair per exchange)
+     - reduces the amount of exchanged data (the size)
+     - allows to retrieve all arrived data on receiver side, if we don't need
+       it right now (subsequent read will peek the buffer)
+     - allows the receiver to proceed with the begining of the stream before
+       everything is arrived
+     - make it possible to build an iov transport (using readv/writev)
+    Extra difficulty: 
+     - take care of the data with non-stable storage (like stacked data),
+       and bufferize them.
+  * If possible, TCP send uses vector I/O (when writev() is here) 
+     - Don't use it for receive since we send data sizes and data on the
+       same stream, so we wouldn't be able to chain large amount of chunks
+       before having to flush the stuff to read the size.
+  * Rework the transport plugin mecanism to simplify it and reduce the
+    amount of pointer dereferencement when searching for the right function 
+    to use. 
+
+  * I guess that now, we do almost as few system calls as possible while
+    doing as few data copy as possible.
+
+    To improve it further, we could try to send all the sizes first and then
+    all the data (to use iov on receiving size), but it's only a partial
+    solution: when you have 2 dimensional data, the sizes of the second
+    dimension is data of the first dimension, so you need 3 streams.
+
+    I'm not sure the potential performance gains justify the coding burden.
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>  Fri, 21 Oct 2005 14:42:20 +0200
+
 SimGrid (3.00) stable; urgency=low
   
  SURF: