ReLooper: Refactoring for Loop Parallelism

Danny Dig, Cosmin Radoi, Mihai Tarce, Marius Minea, Ralph E. Johnson · Illinois Digital Environment for Access to Learning and Scholarship (University of Illinois at Urbana-Champaign) · 2009

In the multicore era, sequential programs need to be refac-tored for parallelism. The next version of Java provides ParallelArray, an array data structure that supports paral-lel operations over the array elements. For example, one can apply a procedure to each element, or reduce all elements to a new element in parallel. Refactoring an array to a Paral-lelArray requires (i) analyzing whether the loop iterations are safe for parallel execution, and (ii) replacing loops with the equivalent parallel operations. When done manually, these tasks are non-trivial and time-consuming. We present ReLooper, an Eclipse-based refactoring tool, that performs these tasks automatically. Experience with refactoring real programs shows that ReLooper is useful: it reduces the bur-den of analyzing and rewriting parallel loops, and it is fast enough to be used interactively. 1.

Read the paper · More papers on PaperTik