[LLVMdev] Benchmarking for automatic parallelization project

Preston Briggs preston.briggs at gmail.com
Thu Dec 8 11:32:12 PST 2011


I think auto-parallelization (for C and many other languages) is quite
practical, but perhaps not in a way that's easily benchmarked. I don't
believe it's effective for "dusty decks", especially with C or C++. On
the other hand, I think it can be an excellent tool to help write new
code.

When I write code for the Cray XMT, I very much rely on their C
compiler to parallelize loops, recognize and rewrite reductions and
recurrences, insert synchronization to enable additional parallelism,
etc. I also rely on feedback from the compiler (in the form of an
annotated listing) to show me when the compiler has done what I
wanted, or been somehow flummoxed.  That is, when I write code for
this parallel machine, I have in mind which loops should be
parallelized and I code them in such a way that I hope the compiler
will notice. Then I compile and check.  If the compiler failed, I
rewrite and try again, sometimes falling back on pragmas when
necessary (e.g., to assert that I'm confident that a loop can be
safely run in parallel).

Preston



More information about the llvm-dev mailing list