Parallelizing More Loops with Compiler Guided Refactoring

Per Larsen, Razya Ladelsky, Jacob Lidman, Sally A. McKee, Sven Karlsson, Ayal Zaks

Research output: Chapter in Book/Report/Conference proceedingArticle in proceedingsResearchpeer-review


The performance of many parallel applications relies not on instruction-level parallelism but on loop-level parallelism. Unfortunately, automatic parallelization of loops is a fragile process; many different obstacles affect or prevent it in practice. To address this predicament we developed an interactive compilation feedback system that guides programmers in iteratively modifying their application source code. This helps leverage the compiler’s ability to generate loop-parallel code. We employ our system to modify two sequential benchmarks dealing with image processing and edge detection, resulting in scalable parallelized code that runs up to 8.3 times faster on an eightcore Intel Xeon 5570 system and up to 12.5 times faster on a quad-core IBM POWER6 system. Benchmark performance varies significantly between the systems. This suggests that semi-automatic parallelization should be combined with target-specific optimizations. Furthermore, comparing the first benchmark to manually-parallelized, handoptimized pthreads and OpenMP versions, we find that code generated using our approach typically outperforms the pthreads code (within 93-339%). It also performs competitively against the OpenMP code (within 75-111%). The second benchmark outperforms manually-parallelized and optimized OpenMP code (within 109-242%).
Original languageEnglish
Title of host publication2012 41st International Conference on Parallel Processing (ICPP)
Publication date2012
ISBN (Print)978-1-4673-2508-0
Publication statusPublished - 2012
Event41st International Conference on Parallel Processing (ICPP 2012) - Pittsburgh, United States
Duration: 10 Sep 201213 Sep 2012


Conference41st International Conference on Parallel Processing (ICPP 2012)
CountryUnited States
SeriesInternational Conference on Parallel Processing. Proceedings

Fingerprint Dive into the research topics of 'Parallelizing More Loops with Compiler Guided Refactoring'. Together they form a unique fingerprint.

Cite this