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. Regards, Nick Maclaren.