Relooper: refactoring for loop parallelism in Java

D Dig, M Tarce, C Radoi, M Minea… - Proceedings of the 24th …, 2009 - dl.acm.org
D Dig, M Tarce, C Radoi, M Minea, R Johnson
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented …, 2009dl.acm.org
In the multicore era, sequential programs need to be refactored for parallelism. The next
version of Java provides ParallelArray, an array datastructure that supports parallel
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
ParallelArray requires (i) analyzing whether the loop iterations are safe for parallel
execution, and (ii) replacing loops with the equivalent parallel operations. When done …
In the multicore era, sequential programs need to be refactored for parallelism. The next version of Java provides ParallelArray, an array datastructure that supports parallel 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 ParallelArray 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. This demo presents ReLooper, an Eclipse-based refactoring tool, that performs these tasks automatically. Preliminary experience with refactoring real programs shows that ReLooper is useful.
ACM Digital Library