Personal tools

Concurrent Haskell over a Multikernel

Concurrent Haskell over a Multikernel

Summary:

Mapping the concurrency model of Haskell to the distributed OS architecture of a Multikernel.

Motivation:

Haskell presents an interesting model of concurrency to programmers: lazy evaluation, strict functional semantics, monads, lightweight threads, and software transactions. Barrelfish presents an interesting model of concurrency to language runtimes: a distributed system of cores communicating via message passing, upcall-based dispatch of tasks, and user-level threads.

A key motivation of the Barrelfish OS project (a collaboration between the Systems Group at ETH and Microsoft Research in Cambridge, UK) is to examine OS APIs that better support modern concurrent languages (with rather different threading models to, say, POSIX or Java threads). The project will investigate what happens when the Concurrent Transactional Haskell and Barrelfish Multikernel models meet in a language runtime. In particular, what are the advantages and challenges of implementing a threading model like that of Haskell over the interface provided by a multikernel like Barrelfish?

Goals:

Build a Haskell runtime supporting threads, monadic IO, and software transactions over the Barrelfish API, and explore opportunities for optimization not available over Linux or Windows. Perform measurements of speed and overhead.

Technologies:

Haskell, C, OS kernels, software transactional memory.

Background:

Contact:

Timothy Roscoe

Document Actions