Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
typo
[simgrid.git] / ChangeLog
index 080a858..0e14051 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,140 @@
-SimGrid (3.5) unstable; urgency=low
+SimGrid (3.6) unstable; urgency=low
+
+ Java and Ruby: 
+ * Bindings now constitute their own package, separated from the main one.
+   Rationale: reduce our maintainance nightmare by reducing the module coupling
+   They will soon be released on their own on gforge. 
+ * In the meanwhile:
+   svn co svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/simgrid-java
+   svn co svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/simgrid-ruby
+ GRAS: It is not considered as stable anymore, but experimental. Sorry.
+ * It's not quite deprecated for now because we have no replacement,
+   but it may soon become the case.
+
+ SMPI
+ * New MPI functions supported: MPI_Comm_disconnect, MPI_Comm_get_name
+ * Fortran: New user-level cache variable to store the rank of the running
+   process. This improves performance by an order of magnitude.
+ * C: New coccinelle script to automatically locate and modifiy global and
+   local static variables.
+ * Improved SMPI network model with a sender-side gap to account for multiple
+   parallel sends.
+
+ MSG
+ * New function MSG_comm_get_status(). MSG_comm_test() and MSG_comm_testany()
+   only say if a communication is finished, no matter whether it succeeded or
+   failed. You can call MSG_comm_get_status() to know the status of a finished
+   communication.
+ * New function MSG_task_dsend() to send a task and detach it. When a
+   communication is detached, you are never notified of its success or failure
+   and the memory is released automatically once it is finished. This function
+   is useful when you don't care about the end nor the success of a
+   communication.
+ * Change the prototypes of action replay. Sorry for inconvenience,
+   but this is really more efficient this way (and to adapt your code,
+   you just have to fix the initialization, that shouldn't be too long)
+ * Kill the braindead MSG_task_refcount_dec() function. I guess nobody
+   ever managed to do anything useful with it.
+ * New function MSG_comm_testany(). Similarly to MSG_comm_waitany(), it
+   takes a dynar of communications. It returns immediately and gives the
+   index of a finished communication (if any).
+ * New example: a basic implementation of the Chord P2P algorithm.
+
+ SURF
+ * New model for multi-core CPUs. You can now use the core attribute to
+   precise the number of cores of a host. This is a basic model. Every
+   process running on the host receives at most the power provided in
+   the DTD (throughput<=power). Total throughput of process cannot exceed
+   power * num_cores.
+ * New peer tag. This peer tag creates a tiny AS comprising a host and a
+   router linked by an up-link and a down-link (possibly asymmetrical).
+   This kind of pattern allows to easily build last-mile model style platforms.
+   Aggregating such patterns in a rule-based AS is thus the technique of
+   choice for modeling large peer-to-peer/volunteer computing/cloud platforms.
+ * New model for Vivaldi routing. We transformed the Vivaldi network model
+   into a Vivaldi routing model (based on the rule-based model). This allows to
+   combine Vivaldi based latencies with last-mile platforms.
+
+ SIMIX
+ * Introduce a new context factory "raw", highly inspirated from the
+   ucontext factory, but using manually crafted functions in assembly to
+   do the work in an efficient manner.
+ * Allow to change the used context factory at run time, not only at
+   compilation time. Use --cfg=contexts/factory:raw for maximal speed.
+ * Add an option --cfg=contexts/stacksize:N to set the stack size of the user
+   contextes at runtime (only with raw contexts or ucontexts).
+ * Completely rewrote this module to allow parallel execution of user
+   processes. Use --cfg=contexts/nthreads:N to execute user processes
+   with N parallel threads (the default is 1, meaning no parallelism).
+ * Allow to decide dynamically between sequential and parallel modes.
+   When nthreads > 1, you can use --cfg=contexts/threshold:P to run the user
+   processes in parallel only when their number is greater than or equal to P
+   (the default is 2).
+ * Added a check for NaN of IEEE754 infinite in the double entries of 
+   the smx_user.c file
+
+ XBT
+ * New command line option: if you pass --cfg=verbose-exit:0, SimGrid
+   won't output the state of processes when interrupted with Ctrl-C
+ * Add a new function xbt_dynar_to_array that transforms a dynar into a
+   NULL-terminated array. This may solve backward compatibility issues
+   due to the change to return type of SD_simulate. See also:
+   http://lists.gforge.inria.fr/pipermail/simgrid-user/2010-December/002206.html
+ * Add new macros with variable number of arguments.
+   - in xbt/log.h: XBT_DEBUG, XBT_VERB, XBT_INFO, etc.
+   - in xbt/asserts.h: xbt_assert
+   - in xbt/cunit.h: xbt_test_{add,fail,assert,log}
+   - in xbt/ex.h: THROWF and RETHROWF.
+   Define XBT_USE_DEPRECATED if you want to use the old numbered macros like
+   INFO1, INFO2, etc.
+ * Change xbt_die() to accept a format string with arguments, just like printf.
+ * New data structure: xbt_lib_t, like a dict but more general and with better
+   memory handling.
+
+ INSTR
+ * New configuration options
+   Options triva/categorized and triva/uncategorized can be used to generate
+   graph configuration files for Triva visualization tool.
+ * Configuration option tracing/platform is renamed to tracing/categorized
+ * XBT logging makes tracing error checks easier, new root log hierarchy: instr
+ * New TRACE_user_link_variable interface:
+   User provides the name of the link and the tracing variable to attach to it
+ * the declaration of tracing categories must be done after the environment
+   creation
+ * simpler tracing interface, just one way to declare categories
+    TRACE_category or TRACE_category_with_color, it is up to you
+ * links in the trace file are again identified by their names
+ * trace contains the full platform hierarchy exactly as declared using the ASes
+ * Options tracing/msg/[task|process]:1 groups the process by hosts
+   for both cases, tasks and processes must have names that are unique during the simulation
+   these options generate traces that are suited to gantt-charts, such as the space-time view of Paje
+ * The experimental option tracing/msg/volume is deprecated
+   its functionality may be reincorporated if needed
+ * Buffering
+   The tracing generates a trace file with unordered timestamped events,
+   because of the way the core simulator (surf) works. A script available
+   at the tools directory (fix-paje-trace.sh) can be used to put the events
+   in order. We have changed the tracing so it can generate ordered timestamped
+   events in the final trace, but depending on the simulator (and how much time
+   is simulated) that can lead to a huge memory utilization. It is desactivated 
+   by default, but it can be activated using the --cfg=tracing/buffer:1 switch.
+   
+ Build Infrastructure
+ * Define a SIMGRID_VERSION macro in simgrid_config.h.
+   - We are trying hard to keep the API stable, but it may happen that
+     some things change (we're a research project after all, not a
+     nuclear plant operating system). If such things should happen, you
+     could rely on that macro to adapt.
+   - current value: 30600 for 3.06.00, aka 3.6
+ * Define macro MAKE_SIMGRID_VERSION(major, minor, patch) to help building
+   a number that can be compared with SIMGRID_VERSION.
+ * Add a build option -Denable_debug (set to ON by default): when set to OFF,
+   assertions and verbose/debug logging events are disabled at compile time.
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.5) stable; urgency=medium
 
  Model Checking
  * New feature to any SimGrid-based simulator: Model-Checking
 
  Model Checking
  * New feature to any SimGrid-based simulator: Model-Checking
@@ -7,26 +143,44 @@ SimGrid (3.5) unstable; urgency=low
  SMPI
  * New Model SMPI (three-interval linear regression for correction factors)
    See RR-7426, available at http://hal.inria.fr/inria-00527150
  SMPI
  * New Model SMPI (three-interval linear regression for correction factors)
    See RR-7426, available at http://hal.inria.fr/inria-00527150
- * Ability to use fortran MPI code (through f2c, automatically privatized)
+ * Ability to use FORTRAN MPI code (through f2c, automatically privatized)
  * New MPI functions supported: MPI_Get_count(), MPI_Comm_split()
  * New: RAM folding (see RR-7426 and examples/smpi/NAS/DT-folding)
  * New: execution sampling (see RR-7426 and examples/smpi/NAS/EP-sampling)
  * See also src/smpi/README
 
  * New MPI functions supported: MPI_Get_count(), MPI_Comm_split()
  * New: RAM folding (see RR-7426 and examples/smpi/NAS/DT-folding)
  * New: execution sampling (see RR-7426 and examples/smpi/NAS/EP-sampling)
  * See also src/smpi/README
 
+ Tracing:
  Tracing:
  * Tracing system
  Tracing:
  * Tracing system
-   - tracing API for MSG changes: TRACE_start has no
-     longer parameters, the trace file is supplied through
-     an option passed to simulator. Categories declaration
-     and utilization remain the same. The following options
-     are supported:
+   - Tracing API changes: TRACE_start and TRACE_end should not be called
+     by user-code. They are automatically called by simulators created
+     with SimDAG, MSG and SMPI if the toolkit is compiled with
+     tracing_enabled=ON. Categories declaration and utilization remain the
+     same for MSG and SimDag.
+   - A function was added to the tracing API to declare categories with
+     colors:
+        - TRACE_category_with_color (char *category, char *color)
+                where color must be in the following format
+                    "%f %f %f", red, green, blue
+                and red, green, blue are float values in the interval [0, 1]
+        - User can specify NULL as color parameter, or continue calling
+            TRACE_category (cat)
+          On that case, the tracing system will define random colors
+   - The following command-line options are supported:
         --cfg=tracing/filename:msg.trace
         --cfg=tracing/filename:msg.trace
+        --cfg=tracing:1               (activate tracing, needed to use others)
         --cfg=tracing/platform:1      (categorized resource use)
         --cfg=tracing/platform:1      (categorized resource use)
+        --cfg=tracing/uncategorized:1 (uncategorized resource use)
         --cfg=tracing/msg/task:1      (task creation)
         --cfg=tracing/msg/process:1   (process creation, migration)
         --cfg=tracing/msg/task:1      (task creation)
         --cfg=tracing/msg/process:1   (process creation, migration)
-        --cfg=tracing/msg/volume:1    (volume of msg send/recv)
-        --cfg=tracing/smpi:1          (smpi interface tracing)
+        --cfg=tracing/msg/volume:1    (volume of MSG send/recv)
+        --cfg=tracing/smpi:1          (SMPI interface tracing)
+        --cfg=tracing/simdag:1        (allow SimDAG tasks receive categories)
    - examples of examples/msg/tracing updated
    - examples of examples/msg/tracing updated
+ * Tracing SimDag
+   - DAXLoader and DOTLoader functions can generate tasks with categories
+   - A new function to attribute a category to SD tasks:
+        TRACE_sd_set_task_category (SD_task_t task, char *category)
  * Tracing the MPI interface implemented by SMPI
    - Collective operations are traced with states
    - Point-to-Point operations are traced with states/links
  * Tracing the MPI interface implemented by SMPI
    - Collective operations are traced with states
    - Point-to-Point operations are traced with states/links
@@ -123,7 +277,7 @@ SimGrid (3.5) unstable; urgency=low
  * New function SD_workstation_get_current_task() that returns the kind
    of task currently running on a workstation in the sequential access
    mode.
  * New function SD_workstation_get_current_task() that returns the kind
    of task currently running on a workstation in the sequential access
    mode.
- * Raise some warnings when unexecuted remains at the end of the
+ * Raise some warnings when unexecuted tasks remains at the end of the
    simulation. This is usually caused by cycles in the DAG.
 
  SIMIX
    simulation. This is usually caused by cycles in the DAG.
 
  SIMIX
@@ -167,7 +321,7 @@ SimGrid (3.5) unstable; urgency=low
  * Port to windows ( TM :)
  * Fix the 'make install' target.
    No need to use 'make install-simgrid' anymore
  * Port to windows ( TM :)
  * Fix the 'make install' target.
    No need to use 'make install-simgrid' anymore
- * Introduce a 'make dist' target compiling a *souce* archive
+ * Introduce a 'make dist' target compiling a *source* archive
    'make package' compiles a binary archive
  * Compile java files only on need
  * Add --cd and --setenv command line options to tesh
    'make package' compiles a binary archive
  * Compile java files only on need
  * Add --cd and --setenv command line options to tesh
@@ -176,10 +330,10 @@ SimGrid (3.5) unstable; urgency=low
 
  LUA Bindings
  * Add layer to set up environment directly from lua, without XML.
 
  LUA Bindings
  * Add layer to set up environment directly from lua, without XML.
- * The effect of gras_stub_generator can be achieved athrough
+ * The effect of gras_stub_generator can be achieved through
    lua too (check examples/gras/console/ping_generator.lua)
 
    lua too (check examples/gras/console/ping_generator.lua)
 
- -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ -- Wed, 01 Dec 2010 22:09:23 +0100 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.4.1) stable; urgency=low
 
 
 SimGrid (3.4.1) stable; urgency=low