Saturday, March 24, 2007

Sieves - CodePlay MultiCore Compiler

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: