On 8 October 2016 at 17:55, Ben Gamari <ben@well-typed.com> wrote:
lonetiger@gmail.com writes:

> Hi All,
>
> A user on https://ghc.haskell.org/trac/ghc/ticket/11054 has asked why
> -N -qa isn’t the default for -threaded.
>
I'm not sure that scheduling on all of the cores on the user's machine by
default is a good idea, especially given that our users have
learned to expect the existing default. Enabling affinity by default
seems reasonable if we have evidence that it helps the majority of
applications, but we would first need to introduce an additional
flag to disable it.

Affinity is almost always a bad idea in my experience.
 
In general I think -N1 is a reasonable default as it acknowledges the
fact that deploying parallelism is not something that can be done
blindly in many (most?) applications. To make effective use of
parallelism the user needs to understand their hardware, their
application, and its interaction with the runtime system and configure
the RTS appropriately.


Agree on keeping -N1.

Related to this, I think it's about time we made -threaded the default.  We could add a -single-threaded option to get back the old behaviour.

There is a small overhead to using -threaded, but -threaded is also required to make a lot of things work (e.g. waitForProcess in a multithreaded program, not to mention parallelism).

Anyone interested in doing this?

Cheers
Simon

 
Of course, this is just my two-cents.

Cheers,

- Ben

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs