Loop Parallelization using the 3D Iteration Space Visualizer
A 3D-iteration space visualizer (ISV) is presented to analyze the
parallelism in loops and to find loop transformations which enhance
the parallelism. Using automatic program instrumentation, the
iteration space dependency graph (ISDG) is constructed, which shows
the exact data dependencies of arbitrarily nested loops. Various
graphical operations such as rotation, zooming, clipping, coloring
and filtering, permit a detailed examination of the dependence
relations. Furthermore an animated dataflow execution shows the
maximal parallelism and the parallel loops are indicated
automatically by an embedded data dependence analysis. In addition,
the user may discover and indicate additional parallelism for which a suitable unimodular loop transformation is
calculated and verified.
The ISV has been applied to parallelize algorithmic kernel programs, a CFD (Computational
Fluid Dynamics) simulation application, the detection of statement level
parallelism and loop variable privatization.The applications show that the
visualizer is a versatile and easy to use tool for the high performance
application programmer.
The work has been published in the Journal of Visual Languages and Computing..
A shorter paper has been presented at the Visual Languages 2001 conference.
A longer tutorial has been given to the ELIS colleagues.
The applet tool can
be demonstrated online, while a standalone application can be downloaded, which has been
applied in the course TW06-1661
Parallelle en gedistribueerde systemen (Parallel and Distributed Systems)
given by Prof. Erik H. D'Hollander in Ghent University, Belgium.
Resources
Packaged as a feature for Eclipse 3.0.1,
which is kept up-to-date in Eclipse update site from
http://www.cs.toronto.edu/~yijun/isv/update
Packaged with the Eclipse product Photran 2.1.0
Run ISV as a standalone application for Windows
Run ISV as an applet demo
Example data