ReLooper offers an interactive refactoring tool for loop parallelism in Java

The much anticipated release of ReLooper is scheduled to coincide with a demonstration at OOPSLA’09 the afternoon of Wednesday, October 28th. An Eclipse-based refactoring tool, ReLooper eliminates the tediousness of parallelizing a loop in Java. Although the next version of Java provides an array data structure that supports parallel operations (ParallelArray), the tasks involved are numerous, tedious, and time consuming … and not entirely safe. ReLooper automatically performs these tasks, thus reducing the burden of analyzing and rewriting parallel loops. According to principal investigator Danny Dig, “ReLooper is fast enough to be used interactively and is much safer than applying the same parallelization by hand.” Preliminary experience refactoring two NLP applications and other medium-sized applications demonstrates that ReLooper is useful: refactoring finishes, on average, in less than 30 seconds and with correct results.

As an Eclipse-based tool, ReLooper’s two-step process offers all the convenient features of Eclipse’s refactoring engine – including previewing changes, preserving formatting, undoing changes, etc. In the first step, a programmer expresses intent to parallelize some loops by selecting an array (i.e., target array) and then the ConvertToParallelArray operation from the refactoring menu. ReLooper analyses whether the loops intended for parallelism can be safely parallelized and reports any potential problems. At that point, the programmer decides whether to ignore the warnings and proceed to the next step – or cancel the current refactoring, fix the problems, and re-run ReLooper. The second step involves confirming changes for ReLooper to apply. For each loop there are choices that leave the programmer in complete control.

More information about ReLooper is available online and in this whitepaper.