Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix a compilation warning introduced by r9557
[simgrid.git] / ChangeLog
index bfb285b..19700f0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-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.
+ * Kill the braindead MSG_task_refcount_dec() function. I guess nobody
+   ever managed to do anything useful with it.
+
+ 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.
+ * Introduce a new context factory "raw", highly inspirated from the
+   context 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=simix/context:raw for maximal speed.
+
+ 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
+
+ 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
+
+ -- 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/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 and bypass the XML surf parser
- * 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
@@ -31,11 +155,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.
@@ -43,98 +168,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.
+ * 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)
+ * 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()
-
- Build chain: bug fixes and further polishing
+ * 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.
+ * 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 (not well tested)
+   'make package' compiles a binary archive
  * Compile java files only on need
+ * Add --cd and --setenv command line options to tesh
+ * 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
+ 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