Compilation Techniques for High Level Parallel Code

Benedict R. Gaster, Tim Bainbridge, David Lacey, and David Gardner

International Journal of Parallel Programming, 2010, Volume 38, Number 1, Pages 4-18


This paper describes methods to adapt existing optimizing compilers for
sequential languages to produce code for parallel processors. In particular it looks
at targeting data-parallel processors using SIMD (single instruction multiple data) or
vector processors where users need features similar to high-level control flow across
the data-parallelism. The premise of the paper is that we do not want to write an optimizing compiler from scratch. Rather, a method is described that allows a developer
to take an existing compiler for a sequential language and modify it to handle SIMD
extensions. As well as modifying the front-end, the intermediate representation and
the code generation to handle the parallelism, specific optimizations are described to
target the architecture efficiently.