Thesis Abstract

Parallelizing irregular, dynamic data structures can be a very difficult problem. An efficient solution often demands that work on the data structure be divided up among processors, yet despite the large and growing number of such applications there has been little work done on general approaches to such situations. In part this is due to the extreme difficulty of ensuring enough generality to be useful, while still efficiently addressing each individual problem; irregular and dynamic problems can vary dramatically, and direct, efficient solutions simply do not exist. Most attempts have therefore either concentrated on problem-specific areas, where good results can be obtained at the expense of generality, or have defaulted to heuristic methods applicable to almost any possible situation.

In this thesis we present a hybrid method, combining a direct and problem-specific approach with a system general enough to be applicable to the majority of applications. Our method is based on local graph transformations; if the data structure does not change dramatically, then the parallelization should not need to either. By reflecting data structure manipulations in a particular graph grammar formalism, we can show deterministic bounds on the quality of the resulting division of work. Thus, since our formalism is reasonably general and accommodates many of the more common data structures (and also allows for considerable variation), we have a general strategy for dealing with problems requiring dynamic, pointer-based structures.

The utility of our technique is then established by a non-trivial application of it to a realistic problem: grid generation for irregular domains in the Control Volume Finite Element Method used in computational fluid dynamics. We first illustrate an algorithm solving the problem, and then show the use of our approach. Theoretical bounds on the partitioning issues pertinent to parallelization are then given, and supported by experimental measurements. We also compare our method to existing heuristic methods to ensure our results are competitive. Our method turns out to produce good quality results, with a number of distinct advantages over other techniques, particularly when applied to dynamic situations.