Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move src/surf/surf_routing.h in include/surf/surf_routing.h
[simgrid.git] / ChangeLog
index 080a858..fc7f541 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,116 @@
-SimGrid (3.5) unstable; urgency=low
+SimGrid (3.6) unstable; urgency=low
+
+ MSG
+ * 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 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 you send.
+ * 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 receive 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
+ * Added a check for NaN of IEEE754 infinite in the double entries of 
+   the smx_user.c file
+ * 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.
+
+ 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
@@ -7,26 +119,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
- * 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
 
+ Tracing:
  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:1               (activate tracing, needed to use others)
         --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/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
+ * 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
@@ -123,7 +253,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.
- * 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
@@ -167,7 +297,7 @@ SimGrid (3.5) unstable; urgency=low
  * 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
@@ -176,10 +306,10 @@ SimGrid (3.5) unstable; urgency=low
 
  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)
 
- -- 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