[Beowulf] bizarre scaling behavior on a Nehalem
codestr0m at osunix.org
Sat Aug 15 20:13:42 PDT 2009
Tom Elken wrote:
>> On Behalf Of Christian Bell
>> On Aug 12, 2009, at 11:14 AM, Bill Broadley wrote:
>>> Is it really necessary for dynamic arrays
>>> to be substantially slower than static?
>> Yes -- when pointers, the compiler assumes (by default) that the
>> pointers can alias each other, which can prevent aggressive
>> optimizations that are otherwise possible with arrays.
>> I remember stacking half a dozen pragmas over a
>> 3-line loop on a Cray C compiler years ago to ensure that accesses
>> where suitably optimized (or in this case, vectorized).
> To add some details to what Christian says, the HPC Challenge version of STREAM uses dynamic arrays and is hard to optimize. I don't know what's best with current compiler versions, but you could try some of these that were used in past HPCC submissions with your program, Bill:
> PathScale 2.2.1 on Opteron:
> Base OPT flags: -O3 -OPT:Ofast:fold_reassociate=0
> STREAMFLAGS=-O3 -OPT:Ofast:fold_reassociate=0 -OPT:alias=restrict:align_unsafe=on -CG:movnti=1
I hope people don't mind me replying specifically to this PathScale
related stuff, but last publicly released version was 3.2 (and a
follow-up 3.3-beta) If you're a PathScale customer and interested in
this update please feel free to contact me off list.
More information about the Beowulf