Title
A scheduling framework for general-purpose parallel languages
Abstract
The trend in microprocessor design toward multicore and manycore processors means that future performance gains in software will largely come from harnessing parallelism. To realize such gains, we need languages and implementations that can enable parallelism at many different levels. For example, an application might use both explicit threads to implement course-grain parallelism for independent tasks and implicit threads for fine-grain data-parallel computation over a large array. An important aspect of this requirement is supporting a wide range of different scheduling mechanisms for parallel computation. In this paper, we describe the scheduling framework that we have designed and implemented for Manticore, a strict parallel functional language. We take a micro-kernel approach in our design: the compiler and runtime support a small collection of scheduling primitives upon which complex scheduling policies can be implemented. This framework is extremely flexible and can support a wide range of different scheduling policies. It also supports the nesting of schedulers, which is key to both supporting multiple scheduling policies in the same application and to hierarchies of speculative parallel computations. In addition to describing our framework, we also illustrate its expressiveness with several popular scheduling techniques. We present a (mostly) modular approach to extending our schedulers to support cancellation. This mechanism is essential for implementing eager and speculative parallelism. We finally evaluate our framework with a series of benchmarks and an analysis.
Year
DOI
Venue
2008
10.1145/1411204.1411239
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Keywords
Field
DocType
scheduling,languages,parallel computer,compilers,functional language
Programming language,Implicit parallelism,Fair-share scheduling,Task parallelism,Scheduling (computing),Computer science,Parallel computing,Gang scheduling,Two-level scheduling,Theoretical computer science,Data parallelism,Dynamic priority scheduling
Conference
Volume
Issue
ISSN
43
9
0362-1340
Citations 
PageRank 
References 
17
0.72
28
Authors
3
Name
Order
Citations
PageRank
Matthew Fluet129620.32
Mike Rainey218310.69
John H. Reppy389984.36