• Simon Marlow's avatar
    Use work-stealing for load-balancing in the GC · 4e354226
    Simon Marlow authored
    New flag: "+RTS -qb" disables load-balancing in the parallel GC
    (though this is subject to change, I think we will probably want to do
    something more automatic before releasing this).
    To get the "PARGC3" configuration described in the "Runtime support
    for Multicore Haskell" paper, use "+RTS -qg0 -qb -RTS".
    The main advantage of this is that it allows us to easily disable
    load-balancing altogether, which turns out to be important in parallel
    programs.  Maintaining locality is sometimes more important that
    spreading the work out in parallel GC.  There is a side benefit in
    that the parallel GC should have improved locality even when
    load-balancing, because each processor prefers to take work from its
    own queue before stealing from others.
RtsFlags.c 78.3 KB