Hostname: page-component-77c78cf97d-9dm9z Total loading time: 0 Render date: 2026-04-27T05:45:16.443Z Has data issue: false hasContentIssue false

Composable scheduler activations for Haskell

Published online by Cambridge University Press:  27 June 2016

K. C. SIVARAMAKRISHNAN
Affiliation:
Computer Laboratory, University of Cambridge, Cambridge, United Kingdom (e-mail: sk826@cl.cam.ac.uk)
TIM HARRIS
Affiliation:
Oracle Labs, Cambridge, Cambridge, United Kingdom (e-mail: timothy.l.harris@oracle.com)
SIMON MARLOW
Affiliation:
Facebook UK Ltd., London, United Kingdom (e-mail: smarlow@fb.com)
SIMON PEYTON JONES
Affiliation:
Microsoft Research, Cambridge, Cambridge, United Kingdom (e-mail: simonpj@microsoft.com)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

The runtime for a modern, concurrent, garbage collected language like Java or Haskell is like an operating system: sophisticated, complex, performant, but alas very hard to change. If more of the runtime system were in the high-level language, it would be far more modular and malleable. In this paper, we describe a novel concurrency substrate design for the Glasgow Haskell Compiler that allows multicore schedulers for concurrent and parallel Haskell programs to be safely and modularly described as libraries in Haskell. The approach relies on abstracting the interface to the user-implemented schedulers through scheduler activations, together with the use of Software Transactional Memory to promote safety in a multicore context.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2016 
Submit a response

Discussions

No Discussions have been published for this article.