Commutativity analysis
- 1 May 1996
- proceedings article
- Published by Association for Computing Machinery (ACM)
Abstract
This paper presents a new analysis technique, commutativity analysis, for automatically parallelizing computations that manipulate dynamic, pointer-based data structures. Commutativity analysis views the computation as composed of operations on objects. It then analyzes the program at this granularity to discover when operations commute (i.e. generate the same final result regardless of the order in which they execute). If all of the operations required to perform a given computation commute, the compiler can automatically generate parallel code.We have implemented a prototype compilation system that uses commutativity analysis as its primary analysis framework. We have used this system to automatically parallelize two complete scientific computations: the Barnes-Hut N-body solver and the Water code. This paper presents performance results for the generated parallel code running on the Stanford DASH machine. These results provide encouraging evidence that commutativity analysis can serve as the basis for a successful parallelizing compiler.This publication has 24 references indexed in Scilit:
- Flattening and parallelizing irregular, recurrent loop nestsPublished by Association for Computing Machinery (ACM) ,1995
- Software caching and computation migration in OldenPublished by Association for Computing Machinery (ACM) ,1995
- Context-sensitive interprocedural points-to analysis in the presence of function pointersPublished by Association for Computing Machinery (ACM) ,1994
- Automatic program parallelizationProceedings of the IEEE, 1993
- Performance analysis pf parallelizing compilers on the Perfect Benchmarks programsIEEE Transactions on Parallel and Distributed Systems, 1992
- Compiling Fortran D for MIMD distributed-memory machinesCommunications of the ACM, 1992
- SPLASHACM SIGARCH Computer Architecture News, 1992
- Commutativity-based concurrency control for abstract data typesIEEE Transactions on Computers, 1988
- Unisex: A unix-based symbolic executor for pascalSoftware: Practice and Experience, 1985
- Experience with processes and monitors in MesaCommunications of the ACM, 1980