PFunc: Modern Task Parallelism For Modern High Performance Computing

Prabhanjan Kambadur, Anshul Gupta, Amol Ghoting, Haim Avron, Andrew Lumsdaine

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

28 Scopus citations


HPC today faces new challenges due to paradigm shifts in both hardware and software. The ubiquity of multi-cores, many-cores, and GPGPUs is forcing traditional serial as well as distributed-memory parallel applications to be parallelized for these architectures. Emerging applications in areas such as informatics are placing unique requirements on parallel programming tools that have not yet been addressed. Although, of all the available parallel programming models, task parallelism appears to be the most promising in meeting these new challenges, current solutions for task parallelism are inadequate. In this paper, we introduce PFunc, a new library for task parallelism that extends the feature set of current solutions for task parallelism with custom task scheduling, task priorities, task affinities, multiple completion notifications and task groups. These features enable PFunc to naturally and efficiently parallelize a wide variety of modern HPC applications and to support the SPMD model of parallel programming. We present three case studies: demand-driven DAG execution, frequent pattern mining and iterative sparse solvers to demonstrate the utility of PFunc's new features.
Original languageEnglish (US)
Title of host publicationProceedings of the Conference on High Performance Computing Networking, Storage and Analysis - SC '09
PublisherACM Press
StatePublished - 2009
Externally publishedYes

Bibliographical note

KAUST Repository Item: Exported on 2021-08-19
Acknowledgements: We thank Joseph Cottam, Jeremiah Willcock, Torsten Hoefler and Nicholas Edmonds for valuable insights that improved the quality of this paper. This work was supported by IBM, King Abdullah University of Science and Technology (KAUST), National Science Foundation grants EIA-0202048 and CCF-0541335, and a grant from the Lilly Endowment.
This publication acknowledges KAUST support, but has no KAUST affiliated authors.


Dive into the research topics of 'PFunc: Modern Task Parallelism For Modern High Performance Computing'. Together they form a unique fingerprint.

Cite this