Advanced search
1 file | 199.11 KB

The paralax infrastructure: automatic parallelization with a helping hand

Hans Vandierendonck (UGent) , Sean Rul (UGent) and Koen De Bosschere (UGent)
Author
Organization
Abstract
Speeding up sequential programs on multicores is a challenging problem that is in urgent need of a solution. Automatic parallelization of irregular pointer-intensive codes, exemplified by the SPECint codes, is a very hard problem. This paper shows that, with a helping hand, such auto-parallelization is possible and fruitful. This paper makes the following contributions: (i) A compiler-framework for extracting pipeline-like parallelism from outer program loops is presented. (ii) Using a light-weight programming model based on annotations, the programmer helps the compiler to find thread-level parallelism. Each of the annotations specifies only a small piece of semantic information that compiler analysis misses, e.g. stating that a variable is dead at a certain program point. The annotations are designed such that correctness is easily verified. Furthermore, we present a tool for suggesting annotations to the programmer. (iii) The methodology is applied to auto-parallelizeseveral SPECint benchmarks. For the benchmark with most parallelism (hmmer), we obtain a scalable 7-fold speedup on an AMD quad-core dual processor. The annotations constitute a parallel programming model that relies extensively on a sequential program representation. Hereby, the complexity of debugging is not increased and it does not obscure the source code. These properties could prove valuable to increase the efficiency of parallel programming.
Keywords
Programming Techniques, Concurrent Programming, Parallel Programming, Programming Languages, Processors, Compilers, Semantic Annotations, Semi-automatic Parallelization, Software

Downloads

  • (...).pdf
    • full text
    • |
    • UGent only
    • |
    • PDF
    • |
    • 199.11 KB

Citation

Please use this url to cite or link to this publication:

Chicago
Vandierendonck, Hans, Sean Rul, and Koen De Bosschere. 2010. “The Paralax Infrastructure: Automatic Parallelization with a Helping Hand.” In Parallel Architectures and Compilation Techniques, 19th International Conference, Proceedings, 389–400. New York, NY, USA: Association for Computing Machinery (ACM).
APA
Vandierendonck, H., Rul, S., & De Bosschere, K. (2010). The paralax infrastructure: automatic parallelization with a helping hand. Parallel Architectures and Compilation Techniques, 19th International Conference, Proceedings (pp. 389–400). Presented at the 19th International conference on Parallel Architectures and Compilation Techniques (PACT 2010), New York, NY, USA: Association for Computing Machinery (ACM).
Vancouver
1.
Vandierendonck H, Rul S, De Bosschere K. The paralax infrastructure: automatic parallelization with a helping hand. Parallel Architectures and Compilation Techniques, 19th International Conference, Proceedings. New York, NY, USA: Association for Computing Machinery (ACM); 2010. p. 389–400.
MLA
Vandierendonck, Hans, Sean Rul, and Koen De Bosschere. “The Paralax Infrastructure: Automatic Parallelization with a Helping Hand.” Parallel Architectures and Compilation Techniques, 19th International Conference, Proceedings. New York, NY, USA: Association for Computing Machinery (ACM), 2010. 389–400. Print.
@inproceedings{1042644,
  abstract     = {Speeding up sequential programs on multicores is a challenging problem that is in urgent need of a solution. Automatic parallelization of irregular pointer-intensive codes, exemplified by the SPECint codes, is a very hard problem. This paper shows that, with a helping hand, such auto-parallelization is possible and fruitful.
This paper makes the following contributions: (i) A compiler-framework for extracting pipeline-like parallelism from outer program loops is presented. (ii) Using a light-weight programming model based on annotations, the programmer helps the compiler to find thread-level parallelism. Each of the annotations specifies only a small piece of semantic information that compiler analysis misses, e.g. stating that a variable is dead at a certain program point. The annotations are designed such that correctness is easily verified. Furthermore, we present a tool for suggesting annotations to the programmer. (iii) The methodology is applied to auto-parallelizeseveral SPECint benchmarks. For the benchmark with most parallelism (hmmer), we obtain a scalable 7-fold speedup on an AMD quad-core dual processor.
The annotations constitute a parallel programming model that relies extensively on a sequential program representation. Hereby, the complexity of debugging is not increased and it does not obscure the source code. These properties could prove valuable to increase the efficiency of parallel programming.},
  author       = {Vandierendonck, Hans and Rul, Sean and De Bosschere, Koen},
  booktitle    = {Parallel Architectures and Compilation Techniques, 19th International Conference, Proceedings},
  isbn         = {9781450301787},
  keyword      = {Programming Techniques,Concurrent Programming,Parallel Programming,Programming Languages,Processors,Compilers,Semantic Annotations,Semi-automatic Parallelization,Software},
  language     = {eng},
  location     = {Vienna, Austria},
  pages        = {389--400},
  publisher    = {Association for Computing Machinery (ACM)},
  title        = {The paralax infrastructure: automatic parallelization with a helping hand},
  year         = {2010},
}