+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.
+
+ SMPI:
+ * Implement some more MPI primitives:
+ MPI_Bcast, MPI_Waitany, MPI_Waitall, MPI_Reduce, MPI_Allreduce, MPI_Scatter, MPI_Sendrecv, MPI_Alltoall
+ -implementation: Bcast: flat or 2-ary tree (default),
+ Barrier: 4-ary tree,
+ Reduce: flat tree
+ Allreduce: Reduce then Bcast
+ Alltoall: "basic_linear" if data per proc < 3Kb, "otherwise pairwise".
+ Not yet implemented: "Bruck" for data per proc < 200b and comm size > 12
+ Alltoallv: flat tree, like ompi
+ Scatter: flat tree
+ * Add support for optimized collectives (Bcast is now binomial by default)
+ * Port smpirun and smpicc to OS X
+
+ SimDag:
+ * Kill SD_link_get_properties: hard to maintain and makes very little sense
+ Shout out if you used it.
+
+ GRAS:
+ * Display the list of still queued messages in SG mode when existing
+ the process.
+
+ XBT:
+ * Add xbt_set_get_by_name_or_null() [Silas De Munck]
+ * Add xbt_graph_node_get_outedges() [Silas De Munck]
+ * Add xbt_str_from_file(FILE*)
+ * Add xbt_dict_get_key achieving a linear reverse search
+ * Remove the context module
+
+ Portability report of this version:
+ * Main portability targets:
+ - Linux(debian)/x86/context
+ - Linux(debian)/x86/pthreads
+ - Linux(debian)/amd64/context
+ - Linux(debian)/amd64/pthreads
+ On these, we still have the eratic breakages of gras/pmm and
+ amok/saturate_sg reported in previous version. We still think
+ that the tests are the cause of the fault, not the tested code.
+
+ - Mac OSX Leopard/x86/context
+ Still false negative in tesh autotesting.
+ Smpi still fails, but this time because readlink does not accept -f
+ Everything seems to work properly beside of that.
+
+ * Exotic platforms:
+ - AIX version 5.3 (only tested contexts this time)
+ Smpi still fails there because mktemp is not installed.
+ Everything seems to work properly beside of that.
+ - OpenSolaris 11
+ I managed to compile it for the first time, but several breakages.
+ Won't delay the release for this exotic platform.
+
+ * Windows: it's still lagging behind. If you want to help, please
+ stand up.
+
+ Timing report of this version:
+ This version seem to be more than 5% faster than 3.3.1 (on linux
+ 64bits with contextes). The gain is less than expected, we are
+ investigating this for next release.
+
+ -- Da SimGrid team <simgrid-devel@lists.gforge.inria.fr> Wed, 19 Aug 2009 17:07:12 +0200
+
+SimGrid (3.3.1) stable; urgency=low