+SimGrid (3.3.4) unstable; urgency=low
+
+ The "Desktop Grid needs love too" release.
+
+ * Allow major speedup in the maxmin system solving by using lazy evaluation
+ This feature allows to not solve the maxmin system completely at each iteration, but only invalidate (and recompute) the modified parts.
+ This new feature is enabled by default since we changed the default CPU model.
+ Use "--cfg:maxmin-selective-update=1" to enable it.
+ * Cas01 IMproved as default CPU model
+ This CPU model is the same Cas01 model, but it uses the maxmin-selective-update flag
+ and a heap structure to manage actions on SURF kernel. It reduces the complexity to
+ find the next action to finish and, consequently, it's faster than the old Cas01.
+ This is the new default CPU model (Cas01).
+ **************************************
+ *DO NOT MIX 3.3.3 RESULTS WITH 3.3.4 ONES* The new CPU model may changes simulations!
+ **************************************
+ The point is that events occurring at the exact same timestamp are
+ not scheduled in the same order with the old and new version. This
+ may be enough to completely change the execution of simulations in
+ some cases. Sorry for the inconvenience.
+ * Rename the old Cas01 model to Cas01_fullupdate
+ Keep the old cpu model Cas01 with the new name of Cas01_fullupdate.
+ Use "--cfg=cpu_model:Cas01_fullupdate" to use the old default CPU model.
+ * CpuTI (CPU Trace Integration)
+ A new CPU model whose objective is simulate faster when using availability trace files.
+ Instead of using a full featured, over engineered maxmin system for CPU modeling, this model does the pre-integration of traces files to calculate the amount of CPU power available, and so, executes faster than the old CPU models.
+ Use "--cfg=cpu_model:CpuTI" to change to this CPU model.
+ * Use LV08 as default network model since it gives better accuracy
+ for small messages and shouldn't change things for big ones.
+ Use --cfg=network_model:CM02 to get the previous behavior.
+ * Fix a major regression from 3.2 where the timeout provided to
+ MSG_task_put_with_timeout() was used as absolute time before which
+ the comm should be done.
+ * Fix a source-level compatibility glitch from 3.2: after defining
+ MSG_USE_DEPRECATED, you can use the old name
+ MSG_task_put_with_time_out() for MSG_task_put_with_timeout()
+ * Allow to compile from the SVN with automake 1.11
+ * Fix some problems when using the "start_time" tag in deployment XMLs.
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+
+SimGrid (3.3.3) stable; urgency=low
+
+ The "Need for Speed" release.
+
+ The timings done to validate the 3.3.2 were faulty.
+ Instead of being 5% faster, it was 15% slower (compared to 3.3.1).
+
+ The problem was a conversion from a manually handled vector to
+ xbt_dynar_t on the critical path.
+ xbt_dynar_foreach calls functions, inducing stack management crap.
+
+ We inlined these functions and xbt_dynar_foreach is now breath taking.
+ We also inlined xbt_swag_belong on the way.
+
+ Here are some approximate speedup measurements (on master/slaves
+ simulations lasting between 10s and 20s each):
+ 3.3.1 -> 3.3.2: about same performance
+ 3.3.2 -> 3.3.3: 40% speedup
+ 3.3.1 -> 3.3.3: 40% speedup
+ 3.3.1 with inline patch -> 3.3.3: 30% speedup
+
+ Our reading is that the refactoring which occurred in 3.3.2 made us
+ suffer much more from the xbt_dynar_foreach low performance, but
+ once we solved this, this refactoring proved to be very performance
+ effective. From the 40% speedup, somehow, 10% are due to the
+ inlining and 30% to the refactoring.
+
+ That's a pitty that gcc cannot inline functions placed in other files
+ alone. We have to choose between:
+ - break the encapsulation (by putting private data structures and
+ accessors in headers files to help gcc)
+ - live with low performance
+ - switch to a decent compiler such as icc (not quite possible).
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Thu, 20 Aug 2009 21:21:33 +0200
+
+SimGrid (3.3.2) stable; urgency=low
+
+ The "Simplicity does not preceed complexity, but follows it" release.
+
+ The main contributors of this release were (lexical order):
+ Silas De Munck, Stéphane Genaud, Martin Quinson, Cristian Rosa.
+
+ SURF:
+ * Extract the routing logic into its own object.
+ (was dupplicated in network.c and workstation_LV07.c;
+ Allows to implement other ways of storing that info)
+ => kill now useless network_card concept
+ - Use dynar to represent routes (instead of void** + int*)
+ - kill link_set (use surf_network_model->resource_set instead)
+ - Add a command-line option to choose the routing schema to use
+ - Add three new models:
+ * Floyd (shortest path computed at initialization)
+ * Dijikstra (shortest path recomputed all the time)
+ * Cached Dijikstra (shortest path computed on need)
+ All these models where contributed by Silas De Munck, and are
+ described in his ICCS09 paper.
+
+ * Simplify model declaration
+ (less redirections, less function to write when defining a model)
+ - Factorize stuff between models:
+ - model_init/exit
+ - Set of resources:
+ surf_model_resource_set(model)
+ surf_model_resource_by_name(model, name)
+ - Unify the types of models in s_surf_model_t (using an union)
+ - Embeed fields of common_public directly into s_surf_model_t
+ - Rename model methods:
+ action_free ~> action_unref
+ action_change_state ~> action_state_set
+ action_get_state ~> action_state_get
+ - Change model methods into functions :
+ (model)->common_public->action_use ~> surf_action_ref
+
+ * Implement a generic resource; use it as ancestor to specific ones
+ (allows to kill duplicated code in models)
+ Drawback: timer command don't need no name nor properties;
+ workstation_CLM03 don't need no properties
+ (but I guess we can live with those few bytes wasted)
+
+ * Improve the action object model
+ - implement a constructor avoiding dupplicated code about field
+ initialization in generic_action part.
+
+ * Kill the SDP model: it has an external dependency, is deprecated
+ in flavor of modern lmm models, and didn't compile since a while
+
+ SIMIX:
+ * Relocation of the context module from XBT to SIMIX.
+ (the context were decoupled from the simix processes, duplicating a lot of code)
+ => a lot of code was factorized
+ - less overhead is introduced during scheduling
+ - simpler API for the context factory
+ - the logic for process creation,destruction and manipulation was simplified
+ * Simplification of the s_smx_process_t data structure.
+ => accesing the simix level data associated to a process is faster now,
+ and the code is a lot more readable.
+