Automatically Parallelizing Serial Programs Using Commutativity Analysis

  • Authors:
  • Martin Rinard;Pedro Diniz

  • Affiliations:
  • -;-

  • Venue:
  • Automatically Parallelizing Serial Programs Using Commutativity Analysis
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper introduces a new analysis technique, commutativity analysis, for automatically parallelizing programs written in a sequential, imperative programming language. Existing parallelizing compilers preserve the data dependences of the original serial program. They analyze the program at the level of individual reads and writes to single words of memory to generate parallel code that preserves the relative order of reads and writes to the same word. Commutativity analysis, on the other hand, aggregates both data and computation into larger grain units. It then analyzes the computation at this granularity to discover when pieces of the computation commute (i.e. generate the same 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. While the resulting parallel program may violate the data dependences of the original serial program, it is still guaranteed to generate the same result. This paper presents commutativity analysis and shows how to exploit the extracted information to automatically generate parallel code.