ICFP 2023
Mon 4 - Sat 9 September 2023 Seattle, Washington, United States
Mon 4 Sep 2023 17:00 - 17:15 at Grand Crescent - HIW: Session 3 Chair(s): Iavor Diatchki

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 Sep

Displayed time zone: Pacific Time (US & Canada) change