Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[trace] verbose comments to connect simulator parameters with type hierarchy definition
[simgrid.git] / ChangeLog
index 8de9fc0..a393f84 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.5) unstable; urgency=low
+SimGrid (3.6) unstable; urgency=low
 
- Checked up to svn r7858 (Mt)
+ 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
+ * Completely rewrote this module to allow parallel execution.
+
+ XBT
+ * 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
+
+ -- 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
+   Check SIN#1 for more details.
+
+ 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)
+ * 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 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/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
+   - Tracing activated by a parameter "-trace filename" passed
+     to smpirun during execution (considering that simgrid
+     is compiled with tracing enabled)
+   - To run the simulation with gdb, the simulator
+     accepts --cfg=tracing/smpi:1 to trace SMPI
+   - tesh files to check if smpi tracing is ok
+   - See examples/smpi/NAS/DT-trace
+ * GTNetS tracing re-worked
+   - adaptation to the tracing system of GTNets to cope
+     with modifications regarding the fullduplex mode
+   - new tesh files to check if gtnets tracing is ok
 
  MSG
  * Asynchronous communications through the functions:
-   MSG_task_isend/irecv and MSG_comm_test/wait
+   MSG_task_isend/irecv and MSG_comm_test/wait/waitall
  * New function: MSG_load_platform_script()
    to make possible using a lua script instead of XML files to set up platforms
  * New function: MSG_set_function
    to associate functions to processes, used when bypassing the parser
+ * New functions: MSG_task_set_name(), MSG_task_set_compute_duration()
 
LUA Bindings
- * Add layer to set up environment directly from lua, without XML
- * Modify the entry point, to take into consideration when lua is used only as a platform generator
Platforms: Add some more examples in examples/platforms
+ * Grid'5000: see www.grid5000.fr
+ * *_30000_hosts.xml: various huge files [mainly scalability testing]
 
  SURF
  * Change the XML format. This is a very important modification. SimGrid
    3.5 introduces a new hierarchical format based on the notion of
    Autonomous Systems. Compatibility with old format is ensured
-   through the perl script provided in the install bin directory 
-   bin/simgrid_update_xml.pl.
+   through the perl script provided in the install bin directory
+   bin/simgrid_update_xml.
    It is now possible to build platforms with specific routing
    mechanism (Full/Dijkstra/DijkstraCache/Floyd) and to easily
    connect several platforms together. We will try to provide soon
    set of realistic platforms exploiting these properties (have a
    look at examples/platforms/ for the moment).
+ * Take the opportunity of the XML format change to be a good XML citizen:
+   rename link:ctn to link_ctn and similar changes (also dealed with by
+   simgrid_update_xml)
  * Add a new routing scheme (rule-based) using regular expressions. It
    enables to have an extremely low memory footprint when the
    underlying routing is simple and can be compactly described. You
@@ -35,11 +125,12 @@ SimGrid (3.5) unstable; urgency=low
    at teshsuite/simdag/platforms/ to see how this can be done. With
    this tag, you can create clusters with thousands of tasks at no
    cost (have a look at examples/platforms/).
- * Add new callbacks to the CPU & netwok models to create resources
-   no need to pass through the parser callbacks to do so.
- * Add new function to create routes table via the routing model
- * Add generic functions in the public interface that allows the user to
-   call SURF 'create_resource' methods from a lua script.
+   Note: clusters are implemented as ASes, so there is no need for an
+   enclosing AS tag if you have only one cluster in your platform.
+ * Add new generic functions in the public interface that allows the user
+   to call SURF 'create_resource' methods from your code (same
+   functionality as the XML bypass mechanism but with a much lighter
+   burden).
  * Add a new model (enabled through command line --cfg=network/model:SMPI)
    that uses a piecewise linear approximation to produce better
    results when exchanging small messages.
@@ -47,112 +138,94 @@ SimGrid (3.5) unstable; urgency=low
    for interferences between uplink and downlink communications
    (activate with --cfg=fullduplex:1).
 
- SIMIX
- * New function: SIMIX_process_set_function() called by MSG_set_function
- * Change the underlying waiting queue in semaphores so that a process
-   can wait on several of them simultaneously (as in waitany).
- * Fix the way to handle tokens in semaphores so that all access patterns
-   work: {acquire, acquire_timeout, waitany} / {release, release_forever}.
-
  SIMDAG
- * Fix a bug in the management of tasks of size 0 in the surf network
-   models. This problem was only visible with SIMDAG and you should
-   thus disregard results produced with earlier versions if you
-   relied on this feature (some tasks were blocked because of this).
- * Fix a bunch of stuff that prevented to use classical models with SIMDAG
-   even though your applications were doing only point-to-point
-   communications and sequential computations. Now you can really use any
-   model you want (of course, if you create real parallel tasks, which are
-   not implemented in most models beside ptaskL07, this will abort).
+ * Rename the SD_READY (all dependencies are satisfied and task is
+   scheduled) state in SD_RUNNABLE and define a new SD_SCHEDULABLE (all
+   dependencies are satisfied) state.
+   This prevents a confusion between the notion of "ready to schedule"
+   (SD_SCHEDULABLE) used in DAG scheduling and that of "ready to be
+   simulated" (SD_RUNNABLE) used by the simulation kernel.
  * Change the way a task is considered as ready. Instead of removing
    dependencies when a task is done, a counter is decreased. This way,
    it is always possible to reach ancestors thanks to the
    SD_taks_get_parents function (even after the end of the simulation.)
- * Change the level of some logs in sd_global from INFO to VERB. The
-   corresponding tests are now less verbose
  * Change the return type of SD_Simulate from (SD_task_t*) into
    xbt_dynar_t. This function was in handling a dynar internally and
    converted it into a NULL terminated array for historical reasons.
- * Rename the SD_READY (all dependencies are satisfied and task is
-   scheduled) state in SD_RUNNABLE and define a new SD_SCHEDULABLE (all
-   dependencies are satisfied) state.
-   This prevents a confusion between the notion of "ready to schedule"
-   (SD_SCHEDULABLE) used in DAG scheduling and that of "ready to be
-   simulated" (SD_RUNNABLE) used by the simulation kernel.
- * Add an example that scheduling a DAX on an heterogeneous platform
-   using a Min-Min strategy
- * new function SD_dotload(char*) to load a DAG described in dot
+ * New function SD_dotload(char*) to load a DAG described in dot
    format. This loader and the corresponding examples require the
    installation of the graphviz library.
- * new function SD_workstation_get_current_task()
+ * Fix a bug in the management of tasks of size 0 in the surf network
+   models. This problem was only visible with SIMDAG and you should
+   thus disregard results produced with earlier versions if you
+   relied on this feature (some tasks were blocked because of this).
+ * Fix a bunch of stuff that prevented to use classical models with SIMDAG
+   even though your applications were doing only point-to-point
+   communications and sequential computations. Now you can really use any
+   model you want (of course, if you create real parallel tasks, which are
+   not implemented in most models beside ptaskL07, this will abort).
+ * Add an example that schedules a DAX on an heterogeneous platform
+   using a Min-Min strategy.
+ * 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 tasks remains at the end of the
+   simulation. This is usually caused by cycles in the DAG.
+
+ SIMIX
+ * New function: SIMIX_process_set_function() called by MSG_set_function
+ * Change the underlying waiting queue in semaphores so that a process
+   can wait on several of them simultaneously (as in waitany).
+ * Fix the way to handle tokens in semaphores so that all access patterns
+   work: {acquire, acquire_timeout, waitany} / {release, release_forever}.
+ * kill the dirty pimple SIMIX_message_sizes_output()
+   Please use (proper) visualization instead
 
  XBT
  * New data container: setset (set of sets of elements)
  * New module: mmalloc (mapped malloc, allowing to have several
    independent segments of malloc)
  * New function: xbt_dict_cursor_set_data()
- * New function: xbt_dynar_sort()
+ * New functions: xbt_dynar_sort(), xbt_dynar_compare()
  * New function: xbt_dynar_is_empty()
  * New function: xbt_fifo_get_last_item()
- * Bug fix in xbt_dynar_shrink(): use the right element size
+ * Fix xbt_dynar_shrink(): use the right element size.
+ * Fix xbt_dynar_set*(): allow index larger than current size and memset 0
+   uninitialized areas during expand.
+ * Fix semaphores: previous implementation was severely broken.
  * Use library init/fini functions for our initialization.
    - you can use logs and other feature as soon as you want in your
      code (even before the xbt_init / MSG_init)
    - xbt_exit is now a no-op and produce a warning when used.
 
  GRAS:
- * New function: gras_msgtype_get_name()
- * Implement gras_spawn_agent in RL too (the prototype changed a bit)
+ * Port GRAS to new SIMIX mechanisms. This allows gras users to
+   benefit from the latest improvement to the simulation kernel.
  * Kill measurement sockets for now. If you rely on them, sorry. This
    release is not for you. This feature will be reintroduced in the
    future, but we cannot delay the release any further.
-
- SMPI
- * New Model SMPI (three-interval linear regression for correction factors)
+ * New function: gras_msgtype_get_name().
+ * Implement gras_agent_spawn in RL too (the prototype changed a bit)
+ * Fix (at last) the pmm example: it should not randomly fail anymore.
 
  Build chain: bug fixes and overall polishing
+ * Cmake is now stable enough. Hence, we killed the autotools.
+ * Port to windows ( TM :)
  * Fix the 'make install' target.
    No need to use 'make install-simgrid' anymore
  * 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
- * Port to windows
+ * Out of source builds are not fully supported yet, but we are close
+ * Enable supernovae and optimization flags by default for our users
 
- 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:
-        --cfg=tracing/filename:msg.trace
-        --cfg=tracing/platform:1      (categorized 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)
-   - examples of examples/msg/tracing updated
-
- * Tracing the MPI interface implemented by SMPI
-   - Collective operations are traced with states
-   - Point-to-Point operations are traced with states/links
-   - Tracing activated by a parameter "-trace filename" passed
-     to smpirun during execution (considering that simgrid
-     is compiled with tracing enabled)
-   - To run the simulation with gdb, the simulator
-     accepts --cfg=tracing/smpi:1 to trace SMPI
-   - tesh files to check if smpi tracing is ok
-
- * GTNetS tracing re-worked
-   - adaptation to the tracing system of GTNets to cope
-     with modifications regarding the fullduplex mode
-   - new tesh files to check if gtnets tracing is ok
-
- * New feature to any SimGrid-based simulator: Model-Checking
-   Check SIN#1 for more details.
+ LUA Bindings
+ * Add layer to set up environment directly from lua, without XML.
+ * 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