On Aug 17 2009, Ralph Castain wrote:
>At issue for us is that other MPIs -do- bind by default, thus creating an
>apparent performance advantage for themselves compared to us on standard
>benchmarks run "out-of-the-box". We repeatedly get beat-up in papers and
>elsewhere over our performance, when many times the major difference is in
>the default binding. If we bind the same way they do, then the performance
>gap disappears or is minimal.
The two obvious gratuitous hacks that I can see to tackle this are:
1) To have a mandatory configuration option setting the default, which
would have a name like 'performance' for the binding option. YOU could then
beat up anyone who benchmarkets without it for being biassed. This is a
better solution, but the "I shouldn't need to have to think just because I
am doing something complicated" brigade would object.
2) To use a heuristic to choose which algorithm to select, based on
the core count, number of users, load averages, number of active non-root
processes and similar unreliable indicators of the purpose for which the
system is being used. It should be chosen so that it doesn't behave TOO
badly when it gets it wrong, as it will, but that it gets the case of a
dedicated benchmarketing system right most of the time.