Commutativity Analysis: A New Technique for Automatically Parallelizing Serial Programs
نویسندگان
چکیده
This paper introduces a new analysis technique, commutativity analysis, for automatically parallelizing programs written in sequential, imperative programming languages. Commutativity analysis 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. This approach differs from standard approaches based on data dependence analysis in that it generates parallel programs that may violate the data dependences of the original serial program. Commutativity analysis can therefore automatically parallelize programs that are inherently beyond the reach of any compiler that preserves the data dependences. In this paper we formally define a set of conditions that the compiler can use to automatically detect commuting operations, prove that if operations meet these conditions then their executions commute and show how to exploit the commutativity information to automatically generate parallel code.
منابع مشابه
Automatically Parallelizing Serial Programs Using Commutativity Analysis
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 prese...
متن کاملExploiting Commuting Operations in Parallelizing Serial Programs
Two operations commute if the result of their execution is independent of the order in which they execute. Commuting operations can be executed concurrently provided they execute atomically on the objects they access. Statically recognizing commuting operations is of great interest because they increase the amount of concurrency a compiler can exploit. In this document we introduce commutativit...
متن کاملSemantic Foundations of Commutativity Analysis
This paper presents the semantic foundations of commutativity analysis, an analysis technique for automatically parallelizing programs written in a sequential, imperative programming language. 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 result regar...
متن کاملCommutativity Analysis: A Technique for Automatically Parallelizing Pointer-Based Computations
This paper introduces an analysis technique, commutativity analysis, for automatically parallelizing computations that manipulate dynamic, pointer-based data structures. Commutativity analysis views computations as composed of operations on objects. It then analyzes the program to discover when operations commute, i.e. leave the objects in the same state regardless of the order in which they ex...
متن کاملAuto-CFD: Efficiently Parallelizing CFD Applications on Clusters
Computational Fluid Dynamics (CFD) applications are highly demanding for parallel computing. Many such applications have been shifted from expensive MPP boxes to cost-effective clusters. Auto-CFD is a pre-compiler which transforms Fortran CFD sequential programs to efficient message-passing parallel programs running on clusters. Our work has the following three unique contributions. First, this...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1994