Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
update work status
[simgrid.git] / ChangeLog
index cdec396..a99f060 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.3-cvs) unstable; urgency=low
+SimGrid (3.3.2-svn) unstable; urgency=low
+
+ The "Simplicity does not preceed complexity, but follows it" release.
+
+ The main contributors of this release were (lexical order):
+   Silas De Munck, Stéphane Genaud, Martin Quinson, Cristian Rosa.
+
+ SMPI:
+  * Implement some more MPI primitives: 
+    MPI_Bcast, MPI_Waitany, MPI_Waitall, MPI_Reduce, MPI_Allreduce, MPI_Sendrecv, MPI_Alltoall
+    -implementation: Bcast: flat or 2-ary tree (default), 
+                     Barrier: 4-ary tree,
+                     Reduce: flat tree
+                     Allreduce: Reduce then Bcast
+                     Alltoall: basic_linear if data per proc < 3Kb, otherwise pairwise. 
+                               Not yet implemented: bruck for data per proc < 200b and comm size > 12
+  * Add support for optimized collectives (Bcast is now binomial by default)
+  * Port smpirun and smpicc to OS X
+
+ SURF: 
+  * Extract the routing logic into its own object.
+    (was dupplicated in network.c and workstation_LV07.c;
+     Allows to implement other ways of storing that info)
+    => kill now useless network_card concept
+    - Use dynar to represent routes (instead of void** + int*)
+    - kill link_set (use surf_network_model->resource_set instead)
+    - Add a command-line option to choose the routing schema to use
+    - Add three new models: 
+      * Floyd (shortest path computed at initialization)
+      * Dijikstra (shortest path recomputed all the time)
+      * Cached Dijikstra (shortest path computed on need)
+      All these models where contributed by Silas De Munck, and are
+      described in his ICCS09 paper.
+
+  * Simplify model declaration
+    (less redirections, less function to write when defining a model)
+    - Factorize stuff between models:
+      - model_init/exit
+      - Set of resources:
+        surf_model_resource_set(model)
+        surf_model_resource_by_name(model, name)
+    - Unify the types of models in s_surf_model_t (using an union)
+    - Embeed fields of common_public directly into s_surf_model_t
+    - Rename model methods:
+      action_free ~> action_unref
+      action_change_state ~> action_state_set
+      action_get_state    ~> action_state_get
+    - Change model methods into functions :
+      (model)->common_public->action_use  ~> surf_action_ref
+      
+  * Implement a generic resource; use it as ancestor to specific ones
+    (allows to kill duplicated code in models)
+    Drawback: timer command don't need no name nor properties;
+              workstation_CLM03 don't need no properties
+    (but I guess we can live with those few bytes wasted)
+    
+  * Improve the action object model
+    - implement a constructor avoiding dupplicated code about field
+      initialization in generic_action part.
+      
+  * Kill the SDP model: it has an external dependency, is deprecated
+    in flavor of modern lmm models, and didn't compile since a while
+ SimDag:
+  * Kill SD_link_get_properties: hard to maintain and makes very little sense
+    Shout out if you used it.
+    
+ GRAS:
+  * Display the list of still queued messages in SG mode when existing
+    the process.
 
- Introduce the SIMIX module: factorize code between MSG and GRAS.
-   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.
-   
- 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.
-   Sorry for the inconvenience.
+ XBT:
+  * Add xbt_set_get_by_name_or_null() [Silas De Munck]
+  * Add xbt_graph_node_get_outedges() [Silas De Munck]
+  * Add xbt_str_from_file(FILE*)
+  * Add xbt_dict_get_key achieving a linear reverse search
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.3.1) stable; urgency=low
 
  OVERALL CHANGES:
+  * Implement a --cfg-help to show existing configuration variables
+  * Build chain do not require doxygen in maintainer mode
+
+ 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.
+  * Display the status of simulated processes when receiving SIGINT in
+    simulation mode
+
+ 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
+  * Display the status of simulated processes when receiving SIGINT
+    This fixes a regression of v3.3. due to the introduction of SIMIX
+  * Bug fixing in failure management:
+    - trace could not start by a failure at time 0
+    - failure during communications were not working
+       
+ SIMIX:
+  * Add SIMIX_process_set_name() to change the name of the current
+    process in the log messages.
+  * Store smx_hosts in a dict since we only retrieve them by name
+  * Move the configuration infrastructure to surf
+
+ SIMDAG:
+  * Move the configuration infrastructure to surf
+
+ SMPI: 
+  * Massive internal cleanups:
+    - Store internal structures on processes instead of hosts (allows
+      to have more than one process per host, in addition of being more 
+      logical)
+    - Cleanup the initialization/finalization process
+    - Kill a whole bunch of unneeded synchronization: 
+      processes run in exclusive manner within the simulator
+    - Move queues from global tables to process data fields
+  * Improve smpirun:
+    - now accept -platform and -hostfile arguments
+    - Pass the right rank value to processes according to the hostfile
+  * Compile the examples by default, and use them as regression tests
+  * Implement MPI_Wtime()
+  * Change the reference speed to a command line option
+  
+ SURF:
+  * TCP_gamma can now be specified as command line option using
+    --cfg=TCP_gamma:10000000.0
+  * Change the --surf-path cmd line option into --cfg=path:
+  
+ 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.
+    
+    
+
+ Portability report of this version:
+  * Main portability targets:
+    - Linux(debian)/x86/context   
+    - Linux(debian)/x86/pthreads 
+    - Linux(debian)/amd64/context 
+    - Linux(debian)/amd64/pthreads
+    These targets fail about 1/10 of times on gras/pmm, but we believe
+      that this is because of the test, not because of simgrid.
+    amok/saturate_sg fails even more rarely, and the test may not be
+      the problee.
+      
+    - Mac OSX Leopard/x86/context
+    The test suite still spits tons of errors because some obscure
+      force prevents us from removing the temporary directories
+      arguing that they still contain some metadata I've never heard of.
+    Smpi fails because seq is not installed.
+    Everything seems to work properly beside of that.
+    
+  * Exotic platforms:
+    - AIX version 5.3 (both contexts and pthread)
+      Smpi still fails there because mktemp is not installed. 
+      XML inclusions seems rosty on AIX.
+    
+  * Windows: it's still lagging behind. If you want to help, please
+    stand up.
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>  Sat, 27 Jun 2009 00:14:30 +0200
+
+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.
 
-SimGrid (3.2) unstable; urgency=low
+ -- 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 belive that at
+     We still experience issues on this platform, but we believe that at
      least MSG is usable.
 
   GRAS API BREAKAGE (for simplification purpose, sorry):
@@ -122,7 +392,7 @@ SimGrid (3.2) unstable; urgency=low
 
  -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Fri Mar 16 21:11:46 CET 2007
 
-SimGrid (3.1) unstable; urgency=low
+SimGrid (3.1) stable; urgency=high
 
   General:
   * Port to gcc 4.x   
@@ -218,7 +488,7 @@ SimGrid (3.1) unstable; urgency=low
 
  -- 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:
@@ -315,7 +585,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 
@@ -1088,3 +1358,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.