Default options for -threaded

Simon Marlow marlowsd at
Fri Oct 21 16:35:43 UTC 2016

On 8 October 2016 at 17:55, Ben Gamari <ben at> wrote:

> lonetiger at writes:
> > Hi All,
> >
> > A user on 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?


> Of course, this is just my two-cents.
> Cheers,
> - Ben
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list