Execution domains in GHC/Haskell (Lightning Talk)
While GHC’s offers a wide array of primitives for building concurrent and parallel programs, reasoning about the runtime performance of such programs can be challenging due to complex runtime system interactions between threads. A common approach to mitigate such effects is to move to a multi-process distributed programming model. However, the loss of shared memory that such a model implies can incur a significant cost in memory and time for many, single-machine applications.
We introduce the notion of “domains”, a simple yet powerful extension to GHC’s execution model which allows isolation of threads from each others’ garbage collection and scheduling effects while allowing explicit sharing of heap data across domains. This idea is far from novel and draws heavily from similar approaches seen in the OCaml and Erlang communities. We describe how such an concept might be exposed in Haskell and sketch a plausible, surprisingly simple implementation strategy.
Mon 4 SepDisplayed time zone: Pacific Time (US & Canada) change
16:00 - 17:30 | |||
16:00 30mTalk | Severing ties: the need for non-updateable thunks HIW Edsko de Vries Well-Typed LLP | ||
16:30 30mTalk | ghc-specter: a GHC plugin that inspects the GHC state on live HIW Ian-Woo Kim Mercury Technologies, Inc | ||
17:00 15mTalk | Execution domains in GHC/Haskell (Lightning Talk) HIW Ben Gamari Well-Typed LLP | ||
17:15 15mTalk | Kudzu (Lightning Talk) HIW |