Codeplay has developed a parallelizing compiler for multicore architectures based on sieves concept. A sieve is a block of code that can be "safely" parallelized by the compiler. In a sieve any side-effects inside the block are delayed until the end of the sieve block itself. Delaying side-effects allows the compiler to use a straightforward dependency analysis to automatically partition sieve blocks into fragments that can be safely executed in parallel. Two interesting paper to understand how CodePlay compiler works are:
http://www.cs.cmu.edu/%7Edamp/finalPapers/lindley.pdf
http://www.codeplay.com/downloads_public/sievepaper-2columns-normal.pdf
Note that Codeplay compiler should be able to generate code optimized also for multicore architectures with local memories (like IBM CELL) and for GPGPU computing.
No comments:
Post a Comment