Automatic Parallelization With Statistical Accuracy Bounds

Traditional parallelizing compilers are designed to generate parallel programs that produce identical outputs as the original sequential program. The difficulty of performing the program analysis required to satisfy this goal and the restricted space of possible target parallel programs have both po...

Full description

Bibliographic Details
Main Authors: Kim, Deokhwan, Misailovic, Sasa, Rinard, Martin
Other Authors: Martin Rinard
Published: 2010
Online Access:http://hdl.handle.net/1721.1/51680
_version_ 1826191158280192000
author Kim, Deokhwan
Misailovic, Sasa
Rinard, Martin
author2 Martin Rinard
author_facet Martin Rinard
Kim, Deokhwan
Misailovic, Sasa
Rinard, Martin
author_sort Kim, Deokhwan
collection MIT
description Traditional parallelizing compilers are designed to generate parallel programs that produce identical outputs as the original sequential program. The difficulty of performing the program analysis required to satisfy this goal and the restricted space of possible target parallel programs have both posed significant obstacles to the development of effective parallelizing compilers. The QuickStep compiler is instead designed to generate parallel programs that satisfy statistical accuracy guarantees. The freedom to generate parallel programs whose output may differ (within statistical accuracy bounds) from the output of the sequential program enables a dramatic simplification of the compiler and a significant expansion in the range of parallel programs that it can legally generate. QuickStep exploits this flexibility to take a fundamentally different approach from traditional parallelizing compilers. It applies a collection of transformations (loop parallelization, loop scheduling, synchronization introduction, and replication introduction) to generate a search space of parallel versions of the original sequential program. It then searches this space (prioritizing the parallelization of the most time-consuming loops in the application) to find a final parallelization that exhibits good parallel performance and satisfies the statistical accuracy guarantee. At each step in the search it performs a sequence of trial runs on representative inputs to examine the performance, accuracy, and memory accessing characteristics of the current generated parallel program. An analysis of these characteristics guides the steps the compiler takes as it explores the search space of parallel programs. Results from our benchmark set of applications show that QuickStep can automatically generate parallel programs with good performance and statistically accurate outputs. For two of the applications, the parallelization introduces noise into the output, but the noise remains within acceptable statistical bounds. The simplicity of the compilation strategy and the performance and statistical acceptability of the generated parallel programs demonstrate the advantages of the QuickStep approach.
first_indexed 2024-09-23T08:51:43Z
id mit-1721.1/51680
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T08:51:43Z
publishDate 2010
record_format dspace
spelling mit-1721.1/516802019-04-10T17:06:35Z Automatic Parallelization With Statistical Accuracy Bounds Kim, Deokhwan Misailovic, Sasa Rinard, Martin Martin Rinard Computer Architecture Traditional parallelizing compilers are designed to generate parallel programs that produce identical outputs as the original sequential program. The difficulty of performing the program analysis required to satisfy this goal and the restricted space of possible target parallel programs have both posed significant obstacles to the development of effective parallelizing compilers. The QuickStep compiler is instead designed to generate parallel programs that satisfy statistical accuracy guarantees. The freedom to generate parallel programs whose output may differ (within statistical accuracy bounds) from the output of the sequential program enables a dramatic simplification of the compiler and a significant expansion in the range of parallel programs that it can legally generate. QuickStep exploits this flexibility to take a fundamentally different approach from traditional parallelizing compilers. It applies a collection of transformations (loop parallelization, loop scheduling, synchronization introduction, and replication introduction) to generate a search space of parallel versions of the original sequential program. It then searches this space (prioritizing the parallelization of the most time-consuming loops in the application) to find a final parallelization that exhibits good parallel performance and satisfies the statistical accuracy guarantee. At each step in the search it performs a sequence of trial runs on representative inputs to examine the performance, accuracy, and memory accessing characteristics of the current generated parallel program. An analysis of these characteristics guides the steps the compiler takes as it explores the search space of parallel programs. Results from our benchmark set of applications show that QuickStep can automatically generate parallel programs with good performance and statistically accurate outputs. For two of the applications, the parallelization introduces noise into the output, but the noise remains within acceptable statistical bounds. The simplicity of the compilation strategy and the performance and statistical acceptability of the generated parallel programs demonstrate the advantages of the QuickStep approach. 2010-02-10T18:15:03Z 2010-02-10T18:15:03Z 2010-02-10 http://hdl.handle.net/1721.1/51680 MIT-CSAIL-TR-2010-007 Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported http://creativecommons.org/licenses/by-nc-nd/3.0/ 12 p. application/pdf
spellingShingle Kim, Deokhwan
Misailovic, Sasa
Rinard, Martin
Automatic Parallelization With Statistical Accuracy Bounds
title Automatic Parallelization With Statistical Accuracy Bounds
title_full Automatic Parallelization With Statistical Accuracy Bounds
title_fullStr Automatic Parallelization With Statistical Accuracy Bounds
title_full_unstemmed Automatic Parallelization With Statistical Accuracy Bounds
title_short Automatic Parallelization With Statistical Accuracy Bounds
title_sort automatic parallelization with statistical accuracy bounds
url http://hdl.handle.net/1721.1/51680
work_keys_str_mv AT kimdeokhwan automaticparallelizationwithstatisticalaccuracybounds
AT misailovicsasa automaticparallelizationwithstatisticalaccuracybounds
AT rinardmartin automaticparallelizationwithstatisticalaccuracybounds