Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
memset with a size of 0 is forbidden
[simgrid.git] / ChangeLog
index bd7d97a..b3d154b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.6) unstable; urgency=low
+SimGrid (3.7) NOT RELEASED; urgency=low 
+
+  Models:
+  * Use the partial invalidation optimization by default for the
+    network too. Should produce the exact same results, only faster.
+
+  SimDag:
+  * Performance boost by using a swag internally to compute the set of
+    tasks that are finished and should constitute the return value of
+    SD_simulate.
+
+  -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.6.2) stable; urgency=low 
+
+ The "Not coding new stuff allows to polish old things" release.
+
+ General
+ * New bindings to the NS3 packet level simulator (experimental)
+ * Use the raw (efficient) execution contextes instead of the sysv
+   (portable) ones when possible.
+ * libpcre is now mandatory in any cases since not using it led to
+    severe performance loss and possibly other issues
+ * Update the XML platforms:
+   - G5K: include the lastest machine in Nancy 
+   - GridPP and LCG: new platforms
+ * Documentation was partially updated, at least (more to come)
+   
+ Bug fixes, cosmetics and small improvements
+ * Free terminated processes before the end of the simulation to avoid
+   exhausting the memory of users having very dynamic amount of
+   processes.
+ * Bug fix and cosmetics about canceling non-running tasks
+ * Bug fix about the dot loader's issues when using libcgraph
+
+ Portability
+ * Create an installer for windows with nsis (amd64 and win32)
+   - Add an hello world project to illustrate simgrid project creation.
+   - Embed libpcre into the Simgrid installer to avoid 
+     its compilation burden 
+ * The raw execution contextes should work on Apple now
+ * Port to Windows 64 bits
+    - Sysv contextes now have an implementation for this arch
+    - GRAS communication features now support this arch
+ * Drop support for borland compiler on windows
+    - this code was not maintained, and we kinda depend on gcc nowadays
+ * Fix portability issues on kfreebsd/gnu: build error about semaphores
+ * Fix portability issue on unstable ubuntu: linker became picky on
+   argument order
+
+ -- Wed Oct  5 15:51:01 CEST 2011 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+
+SimGrid (3.6.1) stable; urgency=low 
+
+ The "Oops, we broke Macs too" release
+
+ Portability
+ * Fixed contextes detection so that raw ones are used when possible   
+ * On Mac, do not use Posix Ucontextes with gcc v4.[1-5] since this
+   leads to a strange error, with user code segfaulting sometimes when
+   the generated code is not perfectly aligned (which is not
+   controlable from the user side, depends on the amount of code)
 
- Simix
- * completely rewrote this module to allow parallel execution.
+ XBT
+ * New macro: CATCH_ANONYMOUS, which is like CATCH(e) but without argument.
+
+ -- Mon Jun 27 13:59:03 CEST 2011 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.6) stable; urgency=medium
+
+ The Summer Release, also known as the "OMG! They Killed Kenny!" version
+
+ 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
+ * 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
+   (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
-
- -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ * 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.
+
+ -- Tue Jun 21 08:57:43 CEST 2011 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.5) stable; urgency=medium