Abstract
In writing parallel programs, programmers expose parallelism and optimize it to meet a particular performance goal on a single platform under an assumed set of workload characteristics. In the field, changing workload characteristics, new parallel platforms, and deployments with different performance goals make the programmer's development-time choices suboptimal. To address this problem, this paper presents the Degree of Parallelism Executive (DoPE), an API and run-time system that separates the concern of exposing parallelism from that of optimizing it. Using the DoPE API, the application developer expresses parallelism options. During program execution, DoPE's run-time system uses this information to dynamically optimize the parallelism options in response to the facts on the ground. We easily port several emerging parallel applications to DoPE's API and demonstrate the DoPE run-time system's effectiveness in dynamically optimizing the parallelism for a variety of performance goals.
| Original language | English (US) |
|---|---|
| Title of host publication | PLDI'11 - Proceedings of the 2011 ACM Conference on Programming Language Design and Implementation |
| Publisher | Association for Computing Machinery |
| Pages | 26-37 |
| Number of pages | 12 |
| ISBN (Print) | 9781450306638 |
| DOIs | |
| State | Published - 2011 |
| Event | 32nd ACM Conference on Programming Language Design and Implementation, PLDI 2011 - San Jose, United States Duration: Jun 4 2011 → Jun 8 2011 |
Publication series
| Name | Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) |
|---|
Conference
| Conference | 32nd ACM Conference on Programming Language Design and Implementation, PLDI 2011 |
|---|---|
| Country/Territory | United States |
| City | San Jose |
| Period | 6/4/11 → 6/8/11 |
All Science Journal Classification (ASJC) codes
- Software
Keywords
- dynamic
- loop nest
- loop-level
- nested
- optimization
- parallelism
- parallelization
- parametric
- pipeline
- run-time
- scheduling
- task