[Beowulf] Roadrunner shutdown

Max R. Dechantsreiter max at performancejones.com
Fri Apr 5 14:53:56 PDT 2013


Brian,

>  Yes, if we're talking about developing entirely new methods.  But there's a
> /ton/ of low-hanging fruit that exists in the mix of systems tuning, compiler
> options, /basic/ code changes (not anything deep or time-consuming), etc.,
> that takes hours or, at most, a few days, and can have massive impacts.  The
> serial I/O -> parallel I/O example way (way, way) above being one example,
> and as another, I can't tell you the number of times I've seen people running
> production runs with '-O0 -g' as their compilation flags.  Or, not using
> tuned BLAS / LAPACK libraries.  Or running an OpenMP-enabled code with 1
> process per node but having OMP_NUM_THREADS set to 1 instead of 8.  Or
> countless other things.

Hours would be optimistic, unless you exclude the initial
profiling and other analysis.  In days one can often find
significant gains, at least in single-threaded performance.
As a general rule, I allow one week per application for
single-threaded optimization, and two weeks for parallel
optimization.

Of course, the more time one spends, the more one finds.
I am invariably limited by deadlines and/or budgets; but I
have never run out of ideas, even after months!

But I am usually given applications for which some attempts
at optimization have been made, so I take your point about
those really dumb mistakes.  They bring me joy. :)

(By the way, use of '-O0' can have another unintended
consequence: because '-O2' is often the most tested level,
there may be more errors at '-O0', so it is NOT the safest
optimization setting.)

Benchmarkers do not need to be on staff; so modulate their
cost by project term, and reevaluate the cost equation.

Cheers,

Max


More information about the Beowulf mailing list