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.
./Christopher
_______________________________________________
Beowulf mailing list, Beowulf@beowulf.org sponsored by Penguin Computing
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf