Home My Page Projects SimGrid
Summary Activity Forums Tracker Lists Docs News SCM Files

Project Filelist for SimGrid

File Release Notes and Changelog

Release Name: 3.3.3

Release Notes
 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: -15%
   3.3.2                   -> 3.3.3: +40%
   3.3.1                   -> 3.3.3: +40%
   3.3.1 with inline patch -> 3.3.3: +30%
   
 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.

 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).