Speculative separation for privatization and reductions

Nick P. Johnson, Hanjun Kim, Prakash Prabhu, Ayal Zaks, David I. August

Research output: Contribution to journalArticle

8 Citations (Scopus)

Abstract

Automatic parallelization is a promising strategy to improve application performance in the multicore era. However, common programming practices such as the reuse of data structures introduce artificial constraints that obstruct automatic parallelization. Privatization relieves these constraints by replicating data structures, thus enabling scalable parallelization. Prior privatization schemes are limited to arrays and scalar variables because they are sensitive to the layout of dynamic data structures. This work presents Privateer, the first fully automatic privatization system to handle dynamic and recursive data structures, even in languages with unrestricted pointers. To reduce sensitivity to memory layout, Privateer speculatively separates memory objects. Privateer's lightweight runtime system validates speculative separation and speculative privatization to ensure correct parallel execution. Privateer enables automatic parallelization of general-purpose C/C++ applications, yielding a geomean whole-program speedup of 11.4× over best sequential execution on 24 cores, while non-speculative parallelization yields only 0.93×.

Original languageEnglish
Pages (from-to)359-369
Number of pages11
JournalACM SIGPLAN Notices
Volume47
Issue number6
DOIs
Publication statusPublished - 2012 Aug 1

Fingerprint

Privatization
Data structures
Data storage equipment

All Science Journal Classification (ASJC) codes

  • Computer Science(all)

Cite this

Johnson, N. P., Kim, H., Prabhu, P., Zaks, A., & August, D. I. (2012). Speculative separation for privatization and reductions. ACM SIGPLAN Notices, 47(6), 359-369. https://doi.org/10.1145/2345156.2254107
Johnson, Nick P. ; Kim, Hanjun ; Prabhu, Prakash ; Zaks, Ayal ; August, David I. / Speculative separation for privatization and reductions. In: ACM SIGPLAN Notices. 2012 ; Vol. 47, No. 6. pp. 359-369.
@article{5644d21721cd4501850cf24c72282f56,
title = "Speculative separation for privatization and reductions",
abstract = "Automatic parallelization is a promising strategy to improve application performance in the multicore era. However, common programming practices such as the reuse of data structures introduce artificial constraints that obstruct automatic parallelization. Privatization relieves these constraints by replicating data structures, thus enabling scalable parallelization. Prior privatization schemes are limited to arrays and scalar variables because they are sensitive to the layout of dynamic data structures. This work presents Privateer, the first fully automatic privatization system to handle dynamic and recursive data structures, even in languages with unrestricted pointers. To reduce sensitivity to memory layout, Privateer speculatively separates memory objects. Privateer's lightweight runtime system validates speculative separation and speculative privatization to ensure correct parallel execution. Privateer enables automatic parallelization of general-purpose C/C++ applications, yielding a geomean whole-program speedup of 11.4× over best sequential execution on 24 cores, while non-speculative parallelization yields only 0.93×.",
author = "Johnson, {Nick P.} and Hanjun Kim and Prakash Prabhu and Ayal Zaks and August, {David I.}",
year = "2012",
month = "8",
day = "1",
doi = "10.1145/2345156.2254107",
language = "English",
volume = "47",
pages = "359--369",
journal = "ACM SIGPLAN Notices",
issn = "1523-2867",
publisher = "Association for Computing Machinery (ACM)",
number = "6",

}

Johnson, NP, Kim, H, Prabhu, P, Zaks, A & August, DI 2012, 'Speculative separation for privatization and reductions', ACM SIGPLAN Notices, vol. 47, no. 6, pp. 359-369. https://doi.org/10.1145/2345156.2254107

Speculative separation for privatization and reductions. / Johnson, Nick P.; Kim, Hanjun; Prabhu, Prakash; Zaks, Ayal; August, David I.

In: ACM SIGPLAN Notices, Vol. 47, No. 6, 01.08.2012, p. 359-369.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Speculative separation for privatization and reductions

AU - Johnson, Nick P.

AU - Kim, Hanjun

AU - Prabhu, Prakash

AU - Zaks, Ayal

AU - August, David I.

PY - 2012/8/1

Y1 - 2012/8/1

N2 - Automatic parallelization is a promising strategy to improve application performance in the multicore era. However, common programming practices such as the reuse of data structures introduce artificial constraints that obstruct automatic parallelization. Privatization relieves these constraints by replicating data structures, thus enabling scalable parallelization. Prior privatization schemes are limited to arrays and scalar variables because they are sensitive to the layout of dynamic data structures. This work presents Privateer, the first fully automatic privatization system to handle dynamic and recursive data structures, even in languages with unrestricted pointers. To reduce sensitivity to memory layout, Privateer speculatively separates memory objects. Privateer's lightweight runtime system validates speculative separation and speculative privatization to ensure correct parallel execution. Privateer enables automatic parallelization of general-purpose C/C++ applications, yielding a geomean whole-program speedup of 11.4× over best sequential execution on 24 cores, while non-speculative parallelization yields only 0.93×.

AB - Automatic parallelization is a promising strategy to improve application performance in the multicore era. However, common programming practices such as the reuse of data structures introduce artificial constraints that obstruct automatic parallelization. Privatization relieves these constraints by replicating data structures, thus enabling scalable parallelization. Prior privatization schemes are limited to arrays and scalar variables because they are sensitive to the layout of dynamic data structures. This work presents Privateer, the first fully automatic privatization system to handle dynamic and recursive data structures, even in languages with unrestricted pointers. To reduce sensitivity to memory layout, Privateer speculatively separates memory objects. Privateer's lightweight runtime system validates speculative separation and speculative privatization to ensure correct parallel execution. Privateer enables automatic parallelization of general-purpose C/C++ applications, yielding a geomean whole-program speedup of 11.4× over best sequential execution on 24 cores, while non-speculative parallelization yields only 0.93×.

UR - http://www.scopus.com/inward/record.url?scp=84866360182&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84866360182&partnerID=8YFLogxK

U2 - 10.1145/2345156.2254107

DO - 10.1145/2345156.2254107

M3 - Article

AN - SCOPUS:84866360182

VL - 47

SP - 359

EP - 369

JO - ACM SIGPLAN Notices

JF - ACM SIGPLAN Notices

SN - 1523-2867

IS - 6

ER -