Pivot: a program parallelization and visualization environment
Chyi‐Ren Dow · 1994
The objective of PIVOT, a program ParallelizatIon and VisualizatiOn environmenT, described in this dissertation is to provide a programming environment that integrates program parallelization and program visualization techniques to facilitate restructuring of programs for parallelization. The environment supports a range of facilities, including visual and textual forms of specifications for code transformations, automatic generation of transformers from specifications, interactive and undo facilities for code transformations, multi-paradigm program visualization, and multi-level browsing functions. VOSpeL, a PDG-based visual transformation specification language, eases the task of specifying transformations and provides the user with a uniform model to visually specify and perform code transformations. Instead of (or in addition to) performing direct transformations on the source program, the user has the option of visualizing the source program, performing transformations specified in VOSpeL, and then transforming the resulting visual structure into the target program. A transformation applied to optimize or parallelize a program may be found to be ineffective, or may be made invalid by code changes. Two techniques are developed for undoing transformations. One is undoing code transformations in the reverse application order. The other is undoing transformations in an order independent of application order. The techniques employ inverse primitive actions and transformation independent annotations, making the techniques transformation independent. A PIVOT prototype has been implemented under the X window environment. The collection of tools implemented and integrated include (1) a transformer generator (PDG-Genesis), (2) a visual transformation specification editor (VOSpeL editor), (3) a visual to textual specification translator (VOSpeL to PDG-GOSpeL translator), (4) a multi-level browser for various program representations, and (5) an undo facility to support the removal of transformations in reverse application order. A variety of experiments have been performed and numerous results are reported. Experimentation indicates that the automatically generated transformations are correct and effective. The experiments also indicate that little overhead in the execution time and the memory demand for the support of undoing transformations is needed.