Changes between Version 12 and Version 13 of LightweightConcurrency
- Timestamp:
- 05/08/12 04:35:05 (13 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
LightweightConcurrency
v12 v13 19 19 For the high-level design principle for the current scheduler, see [http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Scheduler Scheduler]. 20 20 21 == Concurrency Substrate==21 == Design == 22 22 23 The idea of the concurrency substrate is to provide a minimal set of primitives over which a variety of user-level concurrency libraries can be implemented. As such, the concurrency substrate must provide a way to create threads, a way to schedule them, and a synchronization mechanism in a multiprocessor context. 23 === Concurrency Substrate === 24 24 25 == Controlling Parallelism == 25 The idea of the concurrency substrate is to provide a minimal set of primitives over which a variety of user-level concurrency libraries can be implemented. As such, the concurrency substrate must provide a way to create threads, a way to schedule them, and a synchronization mechanism in a multiprocessor context. Creation and maintenance of schedulers and concurrent data structures is the task of the concurrency library. 26 27 === Controlling Parallelism === 26 28 27 29 Whatever be the concurrency model, we would like to retain the non-programmatic control over parallelism (using +RTS -N), just like in the current system. Cores are system resources and hence, the control over their allocation to different processes should be a property of the context under which the programs are run. For example, in a multi-programmed environment, it might be wiser to run the programs on a fewer cores than available to avoid thrashing. At the very least, this will avoid the cases where a poorly written concurrency library would not bring down the performance of the entire system. … … 29 31 30 32 == Related Work == 33 31 34 * [#GhcConcurrency Concurrent Programming in GHC] 32 35 * [http://community.haskell.org/~simonmar/papers/conc-substrate.pdf Lightweight Concurrent Primitives for GHC]
