Advanced search
1 file | 187.61 KB

Parallel programming of general-purpose programs using task-based programming models

Author
Organization
Abstract
The prevalence of multicore processors is bound to drive most kinds of software development towards parallel programming. To limit the difficulty and overhead of parallel software design and maintenance, it is crucial that parallel programming models allow an easy-to-understand, concise and dense representation of parallelism. Parallel programming models such as Cilk++ and Intel TBBs attempt to offer a better, higher-level abstraction for parallel programming than threads and locking synchronization. It is not straightforward, however, to express all patterns of parallelism in these models. Pipelines are an important parallel construct, although difficult to express in Cilk and TBBs in a straightfor- ward way, not without a verbose restructuring of the code. In this paper we demonstrate that pipeline parallelism can be easily and concisely expressed in a Cilk-like language, which we extend with input, output and input/output dependency types on procedure arguments, enforced at runtime by the scheduler. We evaluate our implementation on real applications and show that our Cilk-like scheduler, extended to track and enforce these dependencies has performance comparable to Cilk++.
Keywords
Parallel programming

Downloads

  • paper.pdf
    • full text
    • |
    • open access
    • |
    • PDF
    • |
    • 187.61 KB

Citation

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

Chicago
Vandierendonck, Hans, Polyvios Pratikakis, and Dimitrios S Nikolopoulos. 2011. “Parallel Programming of General-purpose Programs Using Task-based Programming Models.” In Hot Topics in Parallelism, 3rd USENIX Workshop, Proceedings. USENIX Association.
APA
Vandierendonck, H., Pratikakis, P., & Nikolopoulos, D. S. (2011). Parallel programming of general-purpose programs using task-based programming models. Hot Topics in Parallelism, 3rd USENIX workshop, Proceedings. Presented at the 3rd USENIX workshop on Hot Topics in Parallelism (HotPar 2011), USENIX Association.
Vancouver
1.
Vandierendonck H, Pratikakis P, Nikolopoulos DS. Parallel programming of general-purpose programs using task-based programming models. Hot Topics in Parallelism, 3rd USENIX workshop, Proceedings. USENIX Association; 2011.
MLA
Vandierendonck, Hans, Polyvios Pratikakis, and Dimitrios S Nikolopoulos. “Parallel Programming of General-purpose Programs Using Task-based Programming Models.” Hot Topics in Parallelism, 3rd USENIX Workshop, Proceedings. USENIX Association, 2011. Print.
@inproceedings{1864687,
  abstract     = {The prevalence of multicore processors is bound to drive most kinds of software development towards parallel programming. To limit the difficulty and overhead of parallel software design and maintenance, it is crucial that parallel programming models allow an easy-to-understand, concise and dense representation of parallelism. Parallel programming models such as Cilk++ and Intel TBBs attempt to offer a better, higher-level abstraction for parallel programming than threads and locking synchronization. It is not straightforward, however, to express all patterns of parallelism in these models. Pipelines are an important parallel construct, although difficult to express in Cilk and TBBs in a straightfor- ward way, not without a verbose restructuring of the code. In this paper we demonstrate that pipeline parallelism can be easily and concisely expressed in a Cilk-like language, which we extend with input, output and input/output dependency types on procedure arguments, enforced at runtime by the scheduler. We evaluate our implementation on real applications and show that our Cilk-like scheduler, extended to track and enforce these dependencies has performance comparable to Cilk++.},
  author       = {Vandierendonck, Hans and Pratikakis, Polyvios and Nikolopoulos, Dimitrios S},
  booktitle    = {Hot Topics in Parallelism, 3rd USENIX workshop, Proceedings},
  keyword      = {Parallel programming},
  language     = {eng},
  location     = {Berkeley, CA, USA},
  pages        = {6},
  publisher    = {USENIX Association},
  title        = {Parallel programming of general-purpose programs using task-based programming models},
  year         = {2011},
}