Automatically Parallelizing Serial Programs Using Commutativity Analysis

نویسندگان

  • Martin C. Rinard
  • Pedro Diniz
چکیده

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.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

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 regardl...

متن کامل

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...

متن کامل

AESOP: The Autoparallelizing Compiler for Shared Memory Computers

An automatic parallelizer is a tool that converts serial code in C, C++ and Fortran to parallel code. This is an important problem because most hardware today is parallel and manually rewriting the vast repository of serial code is tedious and error prone. We have developed an automatic parallelizing compiler for source code, AESOP targeting shared memory machines. AESOP leverages the LLVM infr...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995