Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques (1996)
Oct. 20, 1996 to Oct. 23, 1996
Lorenz Huelsbergen , Bell Laboratories Lucent Technologies
We describe a higher-order interprocedural technique, called dynamic resolution, for the automatic parallelization of procedures that destructively manipulate dynamic DAGs. Dynamic resolution detects shared data and correctly coordinates access to this data at run time. In pointer-unsafe languages such as C, dynamic resolution requires programmer identification of acyclic data structures and use of dynamic resolution's macros for pointer manipulations. In pointer-safe languages such as ML, cyclicity can often be inferred by the compiler and parallelization via dynamic resolution can be completely automatic. This paper empirically studies the performance of dynamic resolution. Our study reveals that dynamic resolution applied to statically unparallelizable programs can outperform the optimized sequential versions on fast shared-memory multiprocessors. In particular, dynamic-resolution implementations of two problems (DAG rewrite and in-place list quicksort) using three processors already outperform their sequential counterparts. For both problems, the absolute performance of dynamic resolution steadily improves as processors are added. We also observe that dynamic resolution can offset its run-time overheads in the presence of some shared structure. Dynamic resolution is the first technique that can automatically and effectively parallelize DAG rewrite and destructive list quicksort.
L. Huelsbergen, "Dynamic Parallelization of Modifications to Directed Acyclic Graphs," Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques(PACT), Boston, MA, 1996, pp. 0186.