Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
implement TRACE_start as function instead of pre-processor define
[simgrid.git] / ChangeLog
index ba12009..048bf58 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,19 @@
-SimGrid (3.3.5-svn) 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
 
- The "C spoken, se habla Java, Ruby 話せます, fala-se Lua" release.
+
+ 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
@@ -11,30 +22,128 @@ SimGrid (3.3.5-svn) unstable; urgency=low
   * 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.
- Ruby Bindings: create it
-  * That's new and great, you should try it out. 
-    Kinda the same functionalities than Java bindings
+  * 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. 
+    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: 
-  * In trace replay, allow to have one trace file per 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 each processes.
+  * 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.
- SIMIX:
-  * add a SIMIX_sem_get_capacity() function
+  * 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:
-  * Implement MPI_Get_count, MPI_MAXLOC, MPI_MINLOC
-      
+  * 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>