Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
clean user guide
[simgrid.git] / ChangeLog
index 444c12f..9f0dfe4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,132 @@
-SimGrid (3.7) NOT RELEASED; urgency=low
+SimGrid (3.8) NOT RELEASED; urgency=low
 
-  The "sprint cleanups (before spring)" release.
+ The "SimGrid makes psssshiiiit and jumps into the cloud" release.
+
+ 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.
+ * New function: MSG_host_set_property_value()
+ * Deprecate functions MSG_global_init() / MSG_global_init_args()
+   Please use MSG_init() instead. (reducing the amount of entry
+   points in the library helps us).
+ * Make it impossible to link against the wrong version of the lib
+ * Bug fixes that made the host (and link) failures unusable.
+ * Add a way to auto-restart process when the host in which they are
+   executing comes back (ON_FAILURE="RESTART" on deployment file,
+   MSG_process_auto_restart_set).
+ * Use the "msg_" prefix for all datatypes (instead of m_, msg_ and MSG_),
+   please stop using the old ones, they are DEPRECATED.
+ * Deprecate MSG_clean(). No need to call it anymore.
+ * Function MSG_get_host_number() is not deprecated anymore.
+
+ Documentation:
+ * Split the doc into a user guide and a reference guide.
+
+ Cmake:
+ * Remove option custom_flags. Now use environment variables CFLAGS
+   and LDFLAGS.
+ * Enable tracing by default. This modules rocks you should use it.
+ * Use default cmake things to detect lua instead of home grown ones.
+ * New option "enable_mallocators" to disable mallocators, for debugging
+   purpose ("on" by default).
+
+ Simix:
+ * Bug fixes around the resource failures: don't let the processes
+   survive the host they are running onto.
+ * Add an interface to execute cleanup functions when a process is killed,
+   to avoid memory leaks.
+ * Add an interface to auto-restart processes when the host in which they are
+   executing comes back.
+ * Ensures that SIMIX_clean is called automatically. It's not part of
+   the public interface anymore (bindings should be updated).
+
+ SimDag:
+ * Bug fix for when SD_Simulate is called with a positive value: be careful
+   when comparing doubles. Sometimes they are different for non significant
+   digits only.
+ * New types of typed tasks. SD_TASK_COMP_PAR_AMDAHL 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.
+   SD_TASK_COMM_PAR_MXN_1D_BLOCK represents a complex data redistribution
+   between two sets of workstations assuming a 1D block distribution (each
+   workstation owns a similar share of data) on both sides.
+
+   These tasks can be scheduled with SD_task_schedulel or SD_task_schedulev.
+   Data redistribution will be automatically scheduled once parent and child
+   are both scheduled. The filling of computation_amount and
+   communication_amount structures is now done seamlessly thanks to the chosen
+   assumptions.
+ * New function SD_workstation_dump to display various information
+ * New function SD_task_set_rate to throttle the bandwidth allowed to be used
+   by a SD_TASK_COMM_E2E typed task. This rate depends on both the nominal
+   bandwidth on the route onto which the task is  scheduled and the amount of
+   data to transfer.
+   To divide the nominal bandwidth by 2, the rate then has to be :
+                     rate = bandwidth/(2*amount)
+ * Compute tasks that have failed can now be rescheduled and executed again
+   (from their beginning)
+ * Increasing source code coverage (src/simdag is now covered at 95.8%
+   on average)
+
+ SMPI:
+ * Re-implement time-independent trace replay using SMPI (at the
+   smpi_smp_* level) instead of MSG. This should replace
+   examples/msg/actions/actions.c
+ * Implement the exchange of non-contiguous data.
+   [Khalid Hasanov & Jean-Noel Quintin] Thanks for the patch, guys.
+
+ SimGrid:
+ * Export a sg_cmdline dynar containing all the arguments we got from
+   the command line.
+
+ XBT:
+ * Functions xbt_dict_hash() and xbt_dict_hash_ext() are made public,
+   and renamed to xbt_str_hash() and xbt_str_hash_ext().
+ * New function: xbt_os_timer_resume() to restart a timer w/o resetting it.
+ * Greatly improve the robustness of mmalloc to user errors (such as
+   using an area after freeing it, or freeing it twice)
+
+ -- $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
+  * 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
@@ -13,7 +136,6 @@ SimGrid (3.7) NOT RELEASED; urgency=low
   * Change the correction factors used in LMM model, according to
     the latest experiments described in INRIA RR-7821.
     Accuracy should be improved this way.
-    (TODO: this is not true in the code, yet)
   * 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
@@ -23,7 +145,7 @@ SimGrid (3.7) NOT RELEASED; urgency=low
     (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 were dropped for simplicity because it
+  * 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
@@ -31,19 +153,22 @@ SimGrid (3.7) NOT RELEASED; urgency=low
   * 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.
-  * Experimental: new configuration option --cfg=surf/nthreads:N to run
-    analytical models in parallel with N threads (default is 1).
   * Ongoing refactoring the model parsing to make XML files optional
-    (more work is needed here to fully achieve this goal)
+    See include/simgrid/platf.h for details (still to be completed)
 
   MSG:
-  * Deprecate the MSG_task_{get,put} functions and friends.
-    This interface were 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 declare
-     SIMGRID_DEPRECATED before loading the msg.h if you really need to
+  * 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 at some point. Stop using them now.
+    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
@@ -51,10 +176,15 @@ SimGrid (3.7) NOT RELEASED; urgency=low
     - 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
-      to be run in parallel (raw contexts only)
+      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 (see surf/nthreads
+  * 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
@@ -69,7 +199,43 @@ SimGrid (3.7) NOT RELEASED; urgency=low
   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
@@ -78,9 +244,17 @@ SimGrid (3.7) NOT RELEASED; urgency=low
       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
+    - 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
@@ -88,8 +262,9 @@ SimGrid (3.7) NOT RELEASED; urgency=low
       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.
 
-  -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+  -- Tue May 15 11:30:19 UTC 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.6.2) stable; urgency=low
 
@@ -130,7 +305,6 @@ SimGrid (3.6.2) stable; urgency=low
 
  -- 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
@@ -1118,7 +1292,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