Due to the traditional, sequential view of program execution that many programmers have, code is often written in a style that hinders effective parallelization. This is an obstacle for deploying existing software or components on the multi- and manycore hardware of the near future. By restructuring the code it might be possible to eliminate unnecessary dependencies in the control flow, and thus make the code eligible for parallelization. If we replace certain sequentially designed constructs with applications of high-level patterns, we can exploit parallelism and, at the same time, enable the flexible mapping of components to hardware elements, as offered by the approach of the ParaPhrase EU project. Program transformations for the introduction of patterns are hard to carry out manually. Software development tools can facilitate the identification of pattern candidates.
In order to create such a tool, we shall characterize the program structures that are amenable for the transformations, and design analyses that are able to find these structures in a body of program code. In this talk we present the Pattern Candidate Browser of the ParaPhrase Refactoring Tool, which improves programmability of multicore systems by facilitating parallelization of Erlang code.
Talk objectives:
Introduce the pattern discovery part of the ParaPhrase Refactoring Tool.
Target audience:
Anyone interested in tools for support program development and maintenance.
Slides