Parallel Programming of General-Purpose Programs Using Task-Based Programming Models

Research output: Chapter in Book/Report/Conference proceedingConference contribution

21 Citations (Scopus)
83 Downloads (Pure)


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++.
Original languageEnglish
Title of host publication3rd USENIX Workshop on Hot Topics on Parallelism
Place of PublicationBerkeley, CA, USA
Number of pages6
Publication statusPublished - May 2011

Fingerprint Dive into the research topics of 'Parallel Programming of General-Purpose Programs Using Task-Based Programming Models'. Together they form a unique fingerprint.

Cite this