Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : print statistics in all cases (property satisfied or not)
[simgrid.git] / ChangeLog
index a341a17..80e6ed1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-SimGrid (3.6.1) unstable; urgency=low 
+SimGrid (3.8) NOT RELEASED; urgency=low
+
+ The "SimGrid makes psssshiiiit and jumps into the cloud" release.
+
+ CMAKE:
+ * Remove option custom_flags. Now use environment variables CFLAGS
+   and LDFLAGS.
+
+ MSG:
+ * Add an experimental interface to manipulate VMs. They are mainly
+   process groups with very few intrinsic semantic, but they should
+   allow you to build the semantic you want easily.
+
+ Simix:
+ * Bug fixes around the resource failures: don't let the processes
+   survive the host they are running onto
+
+ SimDag:
+ * New type of typed tasks SD_TASK_COMP_PAR_AMDAHL that represents a
+   parallel task whose initial work is distributed among host according
+   to the Amdahl's law. Such tasks are created with a parameter alpha
+   that corresponds to the non-parallelizable part of the computation.
+
+   Before calling SD_task_schedulel or SD_task_schedulev, the
+   SD_task_distribute_comp_amdahl function has to be called with the
+   desired number of workstations. The filling of computation_amount and
+   communication_amount (actually empty) structures is then done
+   seamlessly.
+ * New function SD_workstation_dump to display various information
+
+ -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.7.1) stable; urgency=low
+
+ MSG:
+ * Restore the prototype of MSG_process_create_with_environment() to
+   the pre-3.7 situation by removing the kill_time argument.
+ * Add a MSG_process_set_kill_time() function instead.
+
+ SURF:
+ * Fix weird behaviors when dealing with parallel tasks.
+
+ WINDOWS:
+ * Simgrid is now built as a dll.
+ * Simgrid-java now works on Windows.
+ * Simgrid-Java is now included into Windows package.
+
+ MacOS:
+ * First pre-build package for MacOSX.
+
+ Build System:
+ * Fix compilation when using MSG_USE_DEPRECATED.
+ * Fix some compilation issues on Macs and Windows.
+ * Reduce the number of failing tests on exotic systems, like Debian/Hurd.
+ * Environment variables CFLAGS and LDFLAGS are now honored by cmake.
+
+ We discovered that the Lua console is broken, but we are missing the
+ manpower to fix it right now. The problem existed in 3.7 too, so we
+ are not blocking the release for that. Sorry if you depended on this
+ feature, any help would be really welcome.
+
+ -- Thu Jun 7 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.7) stable; urgency=low
+
+  The "spring cleanups (before the next Big Project kicks in)" release.
+
+  Models:
+  * We can specify the SMPI latency/bandwidth factor with command line
+    add --cfg=smpi/bw_factor:"threshold0:value0;...;thresholdN:valueN"
+    or add --cfg=smpi/lat_factor:"threshold0:value0;...;thresholdN:valueN"
+    You can also use the "config tag" from platform file by adding this line
+    <prop id="smpi/bw_factor" value="threshold0:value0;...;thresholdN:valueN"></prop>
+    (see "example/platforms/tag_config.xml" to use "config tag").
+    Note that the command line supersedes the platform file configuration.
+  * Change the correction factors used in LMM model, according to
+    the latest experiments described in INRIA RR-7821.
+    Accuracy should be improved this way.
+  * Use the partial invalidation optimization by default for the
+    network too. Should produce the exact same results, only faster.
+  * Major cleanup in surf to merge models and split some optimization
+    mechanisms from the core of the models. As a result you can now
+    specify which model to use (e.g., --cfg=network/model:LV08
+    --cfg=cpu/model:Cas01) and which optimization mode to use
+    (e.g., --cfg=network/optim:lazy --cfg=cpu/optim:TI).
+    Incompatible combinations should err at initialization. See
+    --help-models for the list of all models and optimization modes.
+  * The CLM03 workstation model was dropped for simplicity because it
+    used the deprecated CM02 network model. Use default instead.
+  * Rename the TCP_gamma configuration option to network/TCP_gamma
+  * Rename the coordinates configuration option to
+    network/coordinates, and document it
+  * Use now crosstraffic keyword instead of the terribly misleading
+    fullduplex keyword. It is activated by default now in the current
+    default model, use --cfg=network/crosstraffic:0 to turn it off.
+  * Ongoing refactoring the model parsing to make XML files optional
+    See include/simgrid/platf.h for details (still to be completed)
+
+  MSG:
+  * Major overhaul of the documentation. Almost instructive now :/
+  * Deprecate the use of m_channel_t mechanism like MSG_task_{get,put}
+    functions and friends. This interface was considered as
+    deprecated since over 2 years, it's time to inform our users that it is.
+    Switch to MSG_task_{send,recv} instead, or compile SimGrid command line
+    'cmake -Dcustom_flags="-DMSG_USE_DEPRECATED" .' if you really need to
+     use these (crappy) functions in your code.
+    These functions will be removed soon. Stop using them now.
+  * Deprecate MSG_get_host_{table,number}
+    Implement MSG_hosts_as_dynar() instead.
+  * Implement MSG_processes_as_dynar() (Closes gforge #13642)
+  * Remove the public field msg_host_t->name. Use MSG_host_get_name()
+
+  Simix:
+  * Stabilize the parallel execution mode of user contexts
+  * Introduce configuration variables to control parallel execution:
+    - contexts/synchro: Synchronization mode to use when running
+      contexts in parallel (either futex, posix or busy_wait)
+    - contexts/parallel_threshold: Minimal number of user contexts
+      that must be part of a scheduling round to switch to parallel
+      execution mode (raw contexts only)
+  * Fix bugs that prevented to use suspend/resume along with
+    synchronization structures.
+  * Fix bugs in process termination that lead to invalid memory access
+    in very specific conditions.
+
+  SURF:
+  * Introduce a parallel mode for the models (controlled by surf/nthreads
+     configuration item). In our tests, running the models in parallel
+     never lead to any speedups because they are so fast that the gain
+     of computing each model in parallel does not amortizes the
+     synchronization costs, even when ultra fast futexes are used.
+    This is released anyway because YMMV.
+
+  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.
+
+  SMPI:
+  * Enable it by default now that it is considered rather stable.
+
+  TRACE:
+  * Documentation of the tracing functions.
+  * Performance gains when tracing categorized/uncategorized resource
+    utilization by avoiding calls to get route when updating resource
+    variables. LMM constraints are being used instead.
+  * API changed to set task categories. Use MSG_task_set_category instead
+    of TRACE_msg_set_task_category, and SD_task_set_category instead
+    of TRACE_sd_set_task_category. They only work if ENABLE_TRACING is ON.
+  * Bugfix for graphicator, routes not correctly obtained, memory leaks
+  * Examples for link user variables added (see at examples/msg/tracing/)
+  * Deprecated function TRACE_msg_set_process_category completely removed
+  * Trace header updated according to the latest Paje file format
+  * Tracing network lazy updates, no longer obligate users to use full updates
+  * --cfg=tracing/platform:1 also registers power/bandwidth variables
+  * Experimental: let user code declare/set/push/pop application states for hosts
+  * API changed to allow the manual creation of graph configuration files
+    for Triva. See TRACE_get_node_types() and TRACE_get_edge_types().
+
+  Lua:
+  * Improve the API of Lua MSG bindings, using the Lua spirit.
+  * Each simulated process now lives in its own Lua world (globals are
+    automatically duplicated). It helps writing simulators. Will allow
+    to run Splay programs within SimGrid in the future.
+  * Add a Chord example in Lua, equivalent to the MSG one.
+
+  MODEL-CHECKING:
+  * Start the implementation of a solution to express temporal
+    properties, not only local assertions. This is still an
+    experimental work in progress, stay clear from it to be safe.
+
+  XBT:
+  * Logs:
+    - Add new runtime parameters --help-logs and --help-log-categories
+      to display informations about supported logging parameters and
+      categories.
+    - Old deprecated parameters --{gras,surf,msg.simix,xbt}-log=...
+      don't exists anymore.
+  * Mallocators: allow value NULL for the reset function.
+  * Dicts:
+    - New function xbt_dict_new_homogeneous(void(*)(void*)) to
+      create homogeneous dictionaries, where all the elements share the
+      same free function. Non homogeneous dictionaries will be
+      deprecated in the next release.
+    - Dicts of scalar elements (xbt_dicti_*) are deprecated.
+    - Multi-level dictionaries are deprecated.
+  * Dynars:
+    - new function xbt_dynar_search_or_negative() that is useful when
+      you have less than 2 million elements in your dynar and don't
+      want of the extra complexity of catching exceptions when the
+      element is not found.
+  * Portability layer
+    - Make xbt_os_thread module (for thread portability) public.
+      Documentation is still to come, sorry.
+  * mmalloc module:
+    - Cleanups and simplifications to make it maintainable again.
+    - Exotic features (such as memalign and valloc) were removed.
+    - The metadata were extended and improved so that the
+      model-checker becomes able to explore and inspect the heaps.
+    - This may induce a performance drop when enable_model-checking is
+      ON in cmake (even if it's not used in the simulation), but it is
+      necessary at this point to get MC working.
+
+      Turn model-checking OFF if simulation performance matters to you.
+      Not enabling it at runtime is not enough, disable it in cmake.
+
+  -- Tue May 15 11:30:19 UTC 2012 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 contexts 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 latest 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 contexts should work on Apple now
+ * Port to Windows 64 bits
+    - Sysv contexts 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
+ * Fixed contexts detection so that raw ones are used when possible
+ * On Mac, do not use Posix Ucontexts 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)
+   controllable from the user side, depends on the amount of code)
 
  XBT
  * New macro: CATCH_ANONYMOUS, which is like CATCH(e) but without argument.
@@ -16,16 +263,16 @@ SimGrid (3.6.1) unstable; urgency=low
 
 SimGrid (3.6) stable; urgency=medium
 
- The Summer Release, also known as the "Oh my god! They Killed Kenny!" version
+ The Summer Release, also known as the "OMG! They Killed Kenny!" version
 
- Java and Ruby: 
+ 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. 
+   Rationale: reduce our maintenance 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.
@@ -34,7 +281,7 @@ SimGrid (3.6) stable; urgency=medium
  * 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
+ * C: New coccinelle script to automatically locate and modify global and
    local static variables.
  * Improved SMPI network model with a sender-side gap to account for multiple
    parallel sends.
@@ -75,13 +322,15 @@ SimGrid (3.6) stable; urgency=medium
    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).
+   contexts 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).
@@ -89,7 +338,7 @@ SimGrid (3.6) stable; urgency=medium
    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 
+ * Added a check for NaN of IEEE754 infinite in the double entries of
    the smx_user.c file
 
  XBT
@@ -135,9 +384,9 @@ SimGrid (3.6) stable; urgency=medium
    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 
+   is simulated) that can lead to a huge memory utilization. It is deactivated
    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
@@ -239,7 +488,7 @@ SimGrid (3.5) stable; urgency=medium
    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
+   rename link:ctn to link_ctn and similar changes (also dealt 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
@@ -983,7 +1232,7 @@ SimGrid (3.3) stable; urgency=high
     [contributed by Sékou Diakite, many thanks]
 
  GRAS:
-  * Introduce a listener thread in charge of receiving incomming
+  * Introduce a listener thread in charge of receiving incoming
     messages from the network. It allows to overlap communication and
     computation but most notably, it removes some stupid deadlocks due
     to the fact that so far, a process could not send and receive at
@@ -1083,7 +1332,7 @@ SimGrid (3.2) stable; urgency=high
     and (2) msg_size. This was changed to (1) msg_size and (2) amount of
     messages. This was need for the fool willing to send more than MAXINT
     bytes on quite fat pipes.
-       
+
   AMOK:
   * Do really rename the hostmanagement module to peermanagement. [Mt]
     Ie, rename functions from amok_hm_* to amok_pm_*. This breaks the API,
@@ -1137,10 +1386,10 @@ SimGrid (3.2) stable; urgency=high
          . Lesson 6: Logging informations properly
          . Lesson 7: Using internal timers
          . Lesson 8: Handling errors through exceptions
-         . Lesson 9: Exchanging simple data
-        . Lesson 10: Remote Procedure Calling (RPC)
-        . Lesson 11: Explicitely waiting for messages
-        . Recapping of message passing features in GRAS
+         . Lesson 9: Exchanging simple data
+         . Lesson 10: Remote Procedure Calling (RPC)
+         . Lesson 11: Explicitely waiting for messages
+         . Recapping of message passing features in GRAS
      - A HOWTO section containing:
        o HOWTO design a GRAS application
        More are due, of course. They will come latter. In the meanwhile, you can
@@ -1161,7 +1410,7 @@ SimGrid (3.1) stable; urgency=high
     directly on top of SURF and provides an API rather close to the old
     SG. Some old codes using SG are currently under rewrite to check that
     all needful functions are provided. [Christophe Thiery]
-       
+
   SURF:
   * Complete rewrite of the KCCFLN05 workstation model. It is now an
     extension of the classical CLM03 model that gracefully handles
@@ -1275,7 +1524,7 @@ SimGrid (3.0.1) stable; urgency=low
   SURF:
   * Add additionnal checkings on communications. Assert that two
     communicating hosts are connected by a set of links... [AL]
-       
+
   MSG:
   * Add additionnal checkings on channel values in communication [AL]
   * New: MSG_task_get_source to see on which host a task was generated [HC]
@@ -1284,7 +1533,7 @@ SimGrid (3.0.1) stable; urgency=low
     by host. [AL]
   * New: MSG_error_t MSG_task_get_from_host(m_task_t * task, int channel, m_host_t host);
     waits for the first task coming from a given host.. [AL]
-       
+
   GRAS new functionnalities: [MQ]
   * Enhance the parsing macro to allow the size of multidimentional objects
     to be given thru annotations.
@@ -1347,7 +1596,7 @@ SimGrid (3.00) stable; urgency=high
   * New! Give the possibility to hijack the surf parser and thus bypass
     MSG_create_environment and MSG_launch_application. Have a look at
     examples/msg/msg_test_surfxml_bypassed.c to see how it can be done.
-       
+
  -- Arnaud Legrand <simgrid-devel@lists.gforge.inria.fr>  Sat, 20 Aug 2005 23:25:25 -0700
 
 SimGrid (2.96) unstable; urgency=low
@@ -1685,7 +1934,7 @@ SimGrid (2.90) unstable; urgency=low
   - Main loop and datastructures of SURF. A cpu resource object is
     functional. Surf can thus be used to create cpu's with variable
     performance on which you can execute some actions.
-       
+
 2004-11-15 Martin Quinson
   - Port to ARM. Simply added the alignment and size descriptions. Should
     work, but the ARM machines are so slow that I didn't had the opportunity