Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
parameter "--trace" to control whether to trace masterslave examples
[simgrid.git] / ChangeLog
index d90ded4..048bf58 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,155 @@
-SimGrid (3.3.4) unstable; urgency=low
+SimGrid (3.4-svn) unstable; urgency=low
+
+ The "Easter in Cargese" release. Also known as (major changes):
+  * the "se habla Java, Ruby 話せます, fala-se Lua (and deaf-friendly)"
+    ~> bindings were greatly improved
+    ~> new tracing infrastructure for better visualization introduced
+    
+  * the "Welcome to configury modernity" release.
+    ~> we switched from autotools to cmake, and improved our cdash
+
+
+ A more detailled list of changes follow (full detail in svn log).
+
+ Java Bindings: Various Cleanups
+  * (install java-gcj-compat-dev on debian-like to use them)
+  * Remove put/get: no need to export deprecated interface in Java
+    Use send/receive instead.
+  * Cleanup the examples and add a README per directory
+  * Remove example autoDestination (that's the only way to go now)
+  * Remove example explicitDestination (was a plain copy of basic)  
+  * Make JniException a runtime exception, so that there is no need to
+    declare the fact that you may encounter such a beast. I guess that
+    nobody will ever want to survive such error.
+  * Create specific errors for each MSG case of failure:
+    host failure, transfer failure, timeout, task cancelled
+  * Cleanup the exceptions that may get thrown by each function
+  * Other internal cleanups in Java bindings. Performance still bad :/
+ Ruby and Lua Bindings: create them
+  * (install ruby1.8-dev/liblua5.1-0-dev on debian-like to use them)
+  * That's new and great, you should try them out. 
+    Same functionalities than Java bindings, only even less polished
+ SimDag:
+  * Kill the useless "rate" argument of SD_task_get_execution_time()
+    Everyone used to provide -1 as a value, it was not used, and the
+    semantic of a possible use wasn't even clear.
+  * SD_SCHED_NO_COST: Constant to use as cost in SD_task_schedule()
+    either as comm costs or compute costs to mean that there is no
+    such thing for that specific task.
+  * Add a SD_task_set_name() function
+  * Fix SD_task_unschedule() on typed tasks
+  * Fix SD_task_get_execution_time() to return seconds, not flop*sec
+  * In DAX loader, accept useless 'level' attributes to <job> since
+    LIGO DAGs have them (seem to be to ease graphical representation).
+ MSG: 
+  * Add an example masterslave_mailbox.c using send/receive and not
+    the deprecated put/get interface.
+  * Kill the MSG_paje_output() function. It's a noop since 2 years.
+  * Kill MSG_WARNING and MSG_FATAL return codes: they were not used
+    anywere in source.
+  * Rename MSG_TIMEOUT_FAILURE into MSG_TIMEOUT for sake of logic
+    (declare MSG_USE_DEPRECATED to still have the old name)
+  * Add a MSG_task_set_data() function
+  * About trace replay (see examples/msg/actions):
+    - implement barrier
+    - Allow to work with splitted trace files for each process
+      Give the specific trace file as argument of each process, 
+        and call MSG_action_trace_run(NULL)
+      You can still have one merged file for all processes.
+    - Fix implementation of collective operations
+ SMPI:
+  * This is the first release of SimGrid where SMPI is not considered
+    beta anymore (even if some corners should still be improved)
+  * Port over the new SIMIX_network submodule (internal refactoring)
+  * Basic support to log events as with SMPE (use --cfg=SMPE:1)
+  * Implement more missing elements of the standard:
+    - MPI_COMM_SELF 
+    - MPI_MAXLOC MPI_MINLOC + all associated datatype MPI_DOUBLE_INT,
+      MPI_FLOAT_INT, etc.
+    - MPI_Address() MPI_Get_count() MPI_Type_free() MPI_Type_extent()
+      MPI_Scan() MPI_Get_processor_name()
+    - Added implementation of missing case for Alltoall (warning: it's
+      *not* the bruck variant from OpenMPI; based on Alltoallv instead)
+    - SMPI_MPI_Gather() SMPI_MPI_Gatherv() SMPI_MPI_Scatterv()
+      SMPI_MPI_Reduce_scatter() SMPI_MPI_Allgather()
+      SMPI_MPI_Allgatherv() 
+  * Bug fixes include:
+    - MPI_Waitsome() was broken
+    - Allow relative includes in smpicc
+    - Command line cfg argument 'reference_speed' was ignored...
+    - Some functions did not properly lead to auto-benching of user code
+    - smpicc passes -O2 by default (just like openmpi one)
+ SIMIX:
+  * add SIMIX_action_suspend() and SIMIX_action_resume() functions
+  * Bug fixes about timeouts during communications
+  * add SIMIX_message_sizes_output() as a pimple to write to file the
+    amount of messages per size. Use gnuplot to get histogram. 
+    Pimple because that's the only user-visible function of simix,
+     defined directly in xbt.h (irk, sorry)
+  * About semaphores:
+     - Add a SIMIX_sem_get_capacity() function
+     - Fix interactions with processe resume/suspende
+     - release_forever() was stupidly broken
+     - Fix SIMIX_display_process_status() for processes in a semaphore
+     - Make SIMIX_sem_block_onto() user-visible
+  * Refactoring context stuff:
+    - Use pseudo-OOP for better modularity
+    - reimplement SIMIX_process_kill() without process_schedule() so
+      that the latter can take as invariant that it is called from
+      maestro.
+    - Merge context_start into context_new for sake of simplicity
+ SURF:
+  * Rename configuration variables to start a hierarchy:
+    o cpu_model -> cpu/model
+    o network_model -> network/model
+    o workstation_model -> workstation/model
+  * New configuration variables:
+    o network/bandwidth_factor: correction to bandwith
+    o network/latency_factor: correction to latency
+    o netwotk/weight_S: correction to the weight of competing streams
+  * Add a long description to the models, that users can see with such
+    argument on the command line: --cfg=cpu/model:help
+  * --help-models display the long description of all known models
+ XBT:
+  * config: add the ability to set a default value after registration
+    Does not override any previously set value (e.g. from cmd line)
+  * dict: allow to have integer key and data.
+    When so, you need to use the following functions
+     void xbt_dicti_set(xbt_dict_t dict, uintptr_t key, uintptr_t data);
+     uintptr_t xbt_dicti_get(xbt_dict_t dict, uintptr_t key);
+     void xbt_dicti_remove(xbt_dict_t dict, uintptr_t key);
+    In contrary to regular dicts, the key is not malloced before copy.
+    Mixing scalar and regular elements in the same dict is not tested 
+      (but may work).
+  * Allow to use xbt_dynar_shrink() to expend the dynar instead
+ Tracing for Visualization:
+  * SimGrid is now instrumented in order to generate a trace file for
+    visualization analysis: to use it, need to compile SimGrid with the
+    "tracing" option enabled, and instrument the program using SimGrid with
+    TRACE_start, TRACE_category, TRACE_msg_set_task_category and TRACE_end
+    (among other functions).
+  * The instrumentation only traces the platform utilization for now
+  * Documentation to use the tracing functions and how to analyze the
+    traces with the Triva tool is written.
+  * More information about: SimGrid FAQ (in the section Tracing Simulations
+    for Visualization)
+ Build system:
+  * We moved to cmake as default build system. Autotools support will
+    be dropped soon. Check the FAQ for more info about how to use it.
+  * Greatly improved our cdash/ctest interactions
+    Check http://cdash.inria.fr/CDash/index.php?project=Simgrid
+  * Added memory checking tests with valgrind; lot of memleak fixing.
+    This may be the first release of simgrid with so few memory issues
+  * Added code coverage tests. 
+    Our coverage is still improvable, but at least we see it on cdash.
+   
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 
- The "Desktop Grid needs love too" release.
+
+SimGrid (3.3.4) stable; urgency=low
+
+ The "Desktop Grid needs love too" release (also called Xmas release).
 
  Models improvements:
  * Major speedup in the maxmin system solving by using lazy evaluation
 
  Models improvements:
  * Major speedup in the maxmin system solving by using lazy evaluation
@@ -43,15 +192,28 @@ SimGrid (3.3.4) unstable; urgency=low
      This new model is more realistic than the previous one, so you
        should consider redoing your old experiments with this model.
      Sorry for the inconvenience.
      This new model is more realistic than the previous one, so you
        should consider redoing your old experiments with this model.
      Sorry for the inconvenience.
+     
+ Build System:
+ * Introduce the supernovae compilation mode
+   When compiled that way, the whole SimGrid (or almost) is put in a
+     single compilation unit and compiled in one shoot. 
+  This is to help gcc which has difficulties to inline stuff from one
+     file into another.
+  The speedup seem to be above 15%, althrough more tests are needed on
+     amd64 to confirm that gain.
 
  MSG:
  * Port of MSG's mailbox on top of SIMIX network
 
  MSG:
  * Port of MSG's mailbox on top of SIMIX network
-   The put/get mechanism was greatly simplified thanks to the new SIMIX module.
+   The put/get mechanism was greatly simplified on the way.
 
  SIMIX:
 
  SIMIX:
- * New SIMIX network module
-   It provides a rendez-vous point (aka mailbox) based send/recv API to perform
-   synchronous communication. 
+ * New SIMIX network module. Provides:
+   - Mailbox: rendez-vous mecanism to find with who you want to speak
+   - Synchronous send/recv: easier and hopefully faster since the
+     logic is handled in the maestro process directly now
+   - Asynchronous send/recv: you dreamt of it? It's here now
+     Too bad that nobody cared enough to propagate the change to MSG.
+ * Add semaphores as SIMIX synchronization mechanism.
    
  SimDag:
  * new function SD_daxload(char*) to load a DAX file 
    
  SimDag:
  * new function SD_daxload(char*) to load a DAX file 
@@ -111,8 +273,24 @@ SimGrid (3.3.4) unstable; urgency=low
    Introduce a MSG_TIMEOUT_FAILURE return code and use it consistently.
  * Integrate patch #8636: Obey DESTDIR when installing documentation.
    Thanks to Robson Peixoto.
    Introduce a MSG_TIMEOUT_FAILURE return code and use it consistently.
  * Integrate patch #8636: Obey DESTDIR when installing documentation.
    Thanks to Robson Peixoto.
+ * Fix a vicious bug in dictionaries inducing that some elements were
+   not freed on xbt_dict_free()
+
+ Portability report of this version:
+  * Main portability targets:
+    - linux (ubuntu (804/810/910) /debian (4/5/testing) /fedora (core11)) 
+      on (amd64/i386/ia64)
+    - mac leopard on i386
+    Known problems: http://cdash.inria.fr/CDash/index.php?project=Simgrid
+     but nothing critical.
+  * Other platforms: windows, AIX and others were not tested for this release
+  
+ Timing report of this version:
+  * Lazy evaluation brings arbitrary speedup (ie, speedup depending on
+    scenario parameters). From 8h to a few seconds in desktop grid settings.
+  * Supernovae brings about 25% speedup on i386.
 
 
- -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> 
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Thu, 24 Dec 2009 19:07:39 +0100
 
 SimGrid (3.3.3) stable; urgency=low
 
 
 SimGrid (3.3.3) stable; urgency=low