Search code examples
multithreadinghaskellconcurrencymulticore

Is Concurrent Haskell still restricted to a single OS thread?


In a 2005 research paper it said

Concurrent Haskell is currently implemented only for a uni-processor. The runtime schedules lightweight Haskell thread within a single operating system thread. Haskell threads are only suspended at well-defined “safe points”; they cannot be pre-empted at arbitrary moments.

Has this changed or is Concurrent Haskell still restricted to a single OS thread?


Solution

  • GHC can use multi-cores for Concurrent and Parallel Haskell since 2004. Concurrent, Parallel, Nested Data Parallel Haskell all use the same multi-threaded runtime.