Parallelization Using Polyhedral Analysis
Multicore architectures are increasingly being used to meet the compute power required by applications. After making these architectures more readily available, the next step in meeting such performance requirements is taking full advantage of the architectures. Applications that were running in a single thread must be carefully partitioned and mapped onto an architecture. However, mapping an application written in an imperative language such as Matlab, C, or Java onto a multicore architecture is a difficult task, as it typically involves manual partitioning of the original code and memory assignments over multiple threads and memory structures.
The automatic parallelization and automatic mapping of sequential applications to multi-core architectures is an important research topic for which a general, compiler-oriented solution does not yet exist. This paper explores these automatic approaches, describing a series of experiments in semi-automatic coarse-grain parallelization of an MJPEG application and its mapping to IBM's CELL architecture.