MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A new approach to the maximum-flow problem
Journal of the ACM (JACM)
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Applications of random sampling in computational geometry, II
Discrete & Computational Geometry - Selected papers from the fourth ACM symposium on computational geometry, Univ. of Illinois, Urbana-Champaign, June 6 8, 1988
Guaranteed-quality mesh generation for curved surfaces
SCG '93 Proceedings of the ninth annual symposium on Computational geometry
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
A Delaunay refinement algorithm for quality 2-dimensional mesh generation
SODA '93 Selected papers from the fourth annual ACM SIAM symposium on Discrete algorithms
Cilk: an efficient multithreaded runtime system
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
Proceedings of the ACM 2000 conference on Java Grande
Principles of Program Analysis
Principles of Program Analysis
Introduction to Algorithms
OpenMP: An Industry-Standard API for Shared-Memory Programming
IEEE Computational Science & Engineering
Distributed Memory Compiler Design For Sparse Problems
IEEE Transactions on Computers
On Implementing Push-Relabel Method for the Maximum Flow Problem
Proceedings of the 4th International IPCO Conference on Integer Programming and Combinatorial Optimization
Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator
FCRC '96/WACG '96 Selected papers from the Workshop on Applied Computational Geormetry, Towards Geometric Engineering
Delta-Stepping: A Parallel Single Source Shortest Path Algorithm
ESA '98 Proceedings of the 6th Annual European Symposium on Algorithms
Incremental constructions con BRIO
Proceedings of the nineteenth annual symposium on Computational geometry
A time efficient Delaunay refinement algorithm
SODA '04 Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms
Optimistic parallelism requires abstractions
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
CGCExplorer: a semi-automated search procedure for provably correct concurrent collectors
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Sketching concurrent data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Scheduling strategies for optimistic parallel execution of irregular programs
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
The design of a task parallel library
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Evaluation of OpenMP task scheduling strategies
IWOMP'08 Proceedings of the 4th international conference on OpenMP in a new era of parallelism
Parallel inclusion-based points-to analysis
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
The tao of parallelism in algorithms
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
A GPU implementation of inclusion-based points-to analysis
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Elixir: a system for synthesizing concurrent graph programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Betweenness centrality: algorithms and implementations
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
A lightweight infrastructure for graph analytics
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Hi-index | 0.00 |
Scheduling is the assignment of tasks or activities to processors for execution, and it is an important concern in parallel programming. Most prior work on scheduling has focused either on static scheduling of applications in which the dependence graph is known at compile-time or on dynamic scheduling of independent loop iterations such as in OpenMP. In irregular algorithms, dependences between activities are complex functions of runtime values so these algorithms are not amenable to compile-time analysis nor do they consist of independent activities. Moreover, the amount of work can vary dramatically with the scheduling policy. To handle these complexities, implementations of irregular algorithms employ carefully handcrafted, algorithm-specific schedulers but these schedulers are themselves parallel programs, complicating the parallel programming problem further. In this paper, we present a flexible and efficient approach for specifying and synthesizing scheduling policies for irregular algorithms. We develop a simple compositional specification language and show how it can concisely encode scheduling policies in the literature. Then, we show how to synthesize efficient parallel schedulers from these specifications. We evaluate our approach for five irregular algorithms on three multicore architectures and show that (1) the performance of some algorithms can improve by orders of magnitude with the right scheduling policy, and (2) for the same policy, the overheads of our synthesized schedulers are comparable to those of fixed-function schedulers.