Program Slicing of Explicitly Parallel Programs [abstract] (PDF)
Senior Thesis, Department of Computer Science,
University of Delaware, May 2002.
The main contribution of this thesis is the development of a
technique for static interprocedural slicing of shared memory
parallel programs. While static interprocedural slicing for
sequential codes is well understood and used in a variety of
applications, there are no algorithms yet developed for static
interprocedural slicing of shared memory parallel programs. To
facilitate the static slicing of parallel programs, a new
intermediate program representation, the threaded System Dependence
Graph (tSDG), is developed to encompass the parallel and worksharing
constructs utilized in OpenMP. The concept of transitive dependence
is redefined to include dependences caused by conflict edges in
shared memory parallel programs, thus enabling interprocedural
slicing of the new program representation. An algorithm for
interprocedural slicing over the tSDG representation is presented.
The slicing algorithm builds on the algorithms already developed for
interprocedural slicing of sequential programs and the algorithms
developed for intraprocedural slicing of parallel programs.