Transparent Gif

Department of Computer Science

University of California, Santa Barbara

Abstract

Commutativity Analysis: A New Technique for AutomaticallyParallelizing Serial Programs

by: Martin C. Rinard and Pedro Diniz

Abstract:

This paper introduces a new analysis technique, commutativity analysis, forautomatically parallelizing programs written in sequential, imperativeprogramming languages. Commutativity analysis aggregates both data andcomputation into larger grain units. It then analyzes the computation at thisgranularity to discover when pieces of the computation commute (i.e. generatethe same result regardless of the order in which they execute). If all of theoperations required to perform a given computation commute, the compiler canautomatically generate parallel code. This approach differs from standardapproaches based on data dependence analysis in that it generates parallelprograms that may violate the data dependences of the original serial program.Commutativity analysis can therefore automatically parallelize programs thatare inherently beyond the reach of any compiler that preserves the datadependences. In this paper we formally define a set of conditions that thecompiler can use to automatically detect commuting operations, prove that ifoperations meet these conditions then their executions commute and show how toexploit the commutativity information to automatically generate parallel code.

Keywords:

parallelizing compilers, parallel computation, program analysis

Date:

September 1994

Document: 1994-16

XHTML Validation | CSS Validation
Updated 14-Nov-2005
Questions should be directed to: webmaster@cs.ucsb.edu