Changes between Version 11 and Version 12 of LightweightConcurrency


Ignore:
Timestamp:
May 7, 2012 9:04:11 AM (2 years ago)
Author:
kc
Comment:

edits

Legend:

Unmodified
Added
Removed
Modified
  • LightweightConcurrency

    v11 v12  
    1919For the high-level design principle for the current scheduler, see [http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Scheduler Scheduler]. 
    2020 
    21 == Controlling Parallelism == 
    22  
    23 Whatever be the concurrency model, we would like to retain the non-programmatic control over parallelism (using , just like in the current system.  
    24  
    2521== Concurrency Substrate == 
    2622 
    2723The 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.  
     24 
     25== Controlling Parallelism == 
     26 
     27Whatever 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.  
    2828 
    2929