|START Conference Manager|
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 modular approach to extending our schedulers to support cancelation. This mechanism is essential for implementing eager and speculative parallelism. We finally evaluate our framework with an empirical analysis.
START Conference Manager (V2.54.6)