Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
typo
[simgrid.git] / ChangeLog
index 0463325..0e14051 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,15 +1,50 @@
 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.
+   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 receive at most the power provided in
+   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
@@ -21,21 +56,41 @@ SimGrid (3.6) unstable; urgency=low
    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.
+ SIMIX
  * Introduce a new context factory "raw", highly inspirated from the
-   context factory, but using manually crafted functions in assembly to
+   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=simix/context:raw for maximal speed.
+   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:
+   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 logging macros, with variable number of arguments.
- * Kill old style logging macros.
+ * 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
@@ -45,7 +100,8 @@ SimGrid (3.6) unstable; urgency=low
  * 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
+ * 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
@@ -55,6 +111,26 @@ SimGrid (3.6) unstable; urgency=low
    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>