MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Algorithmic skeletons: structured management of parallel computation
Algorithmic skeletons: structured management of parallel computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
CHARM++: a portable concurrent object oriented system based on C++
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
CC++: a declarative concurrent object-oriented programming notation
Research directions in concurrent object-oriented programming
Mining association rules between sets of items in large databases
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Parallel skeletons for structured composition
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
Compositional parallel programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
The implementation of the Cilk-5 multithreaded language
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Compositional verification of concurrent systems using Petri-net-based condensation rules
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs
SIAM Journal on Scientific Computing
Multidimensional binary search trees used for associative searching
Communications of the ACM
Improved Symbolic and Numerical Factorization Algorithms for Unsymmetric Sparse Matrices
SIAM Journal on Matrix Analysis and Applications
Task Parallelism in a High Performance Fortran Framework
IEEE Parallel & Distributed Technology: Systems & Technology
Fast Algorithms for Mining Association Rules in Large Databases
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
Parallel Programming Using Skeleton Functions
PARLE '93 Proceedings of the 5th International PARLE Conference on Parallel Architectures and Languages Europe
TPascal - A Language for Task Parallel Programming
Euro-Par '96 Proceedings of the Second International Euro-Par Conference on Parallel Processing - Volume I
Iterative Methods for Sparse Linear Systems
Iterative Methods for Sparse Linear Systems
New Algorithms for Fast Discovery of Association Rules
New Algorithms for Fast Discovery of Association Rules
Δ-stepping: a parallelizable shortest path algorithm
Journal of Algorithms
X10: an object-oriented approach to non-uniform cluster computing
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Cache-conscious frequent pattern mining on modern and emerging processors
The VLDB Journal — The International Journal on Very Large Data Bases
Parallel Programmability and the Chapel Language
International Journal of High Performance Computing Applications
Larrabee: a many-core x86 architecture for visual computing
ACM SIGGRAPH 2008 papers
Scheduling multithreaded computations by work stealing
SFCS '94 Proceedings of the 35th Annual Symposium on Foundations of Computer Science
Solving Large, Irregular Graph Problems Using Adaptive Work-Stealing
ICPP '08 Proceedings of the 2008 37th International Conference on Parallel Processing
Intel threading building blocks
Intel threading building blocks
Work-first and help-first scheduling policies for async-finish task parallelism
IPDPS '09 Proceedings of the 2009 IEEE International Symposium on Parallel&Distributed Processing
STAPL: an adaptive, generic parallel C++ library
LCPC'01 Proceedings of the 14th international conference on Languages and compilers for parallel computing
A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers
Software—Practice & Experience - Focus on Selected PhD Literature Reviews in the Practical Aspects of Software Technology
Lifeline-based global load balancing
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Extensible PGAS semantics for C++
Proceedings of the Fourth Conference on Partitioned Global Address Space Programming Model
Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining
A runtime implementation of OpenMP tasks
IWOMP'11 Proceedings of the 7th international conference on OpenMP in the Petascale era
Design of a Multicore Sparse Cholesky Factorization Using DAGs
SIAM Journal on Scientific Computing
Function flow: making synchronization easier in task parallelism
Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores
Shared work list: hacking amorphous data parallelism in UPC
Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores
A work-stealing scheduler for X10's task parallelism with suspension
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Work-stealing without the baggage
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hybrid parallel task placement in X10
Proceedings of the third ACM SIGPLAN X10 Workshop
Hi-index | 0.00 |
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.