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