<div dir="ltr">Oops, sorry, only just now seen this. It seems my overly aggressive filters couldn't decide where to put the email :)<div><br></div><div>I do agree to some extend with this. I'd prefer if I made a mistake for my system not to hang. The one downside to this default though is that you can't just hand a program over to user and have it run at full capabilities.</div><div><br></div><div>If it possible to set this from inside a program? My guess is no, since by the time you get to main the rts is already initialized?</div><div><br></div><div>Would a useful alternative be to provide a compile flag that would change the default? e.g. opt-in? Since now there is a small burden on the end user.</div><div><br></div><div>Cheers,</div><div>Tamar</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Oct 8, 2016 at 5:55 PM, Ben Gamari <span dir="ltr"><<a href="mailto:ben@well-typed.com" target="_blank">ben@well-typed.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><a href="mailto:lonetiger@gmail.com">lonetiger@gmail.com</a> writes:<br>
<br>
> Hi All,<br>
><br>
> A user on <a href="https://ghc.haskell.org/trac/ghc/ticket/11054" rel="noreferrer" target="_blank">https://ghc.haskell.org/trac/<wbr>ghc/ticket/11054</a> has asked why<br>
> -N -qa isn’t the default for -threaded.<br>
><br>
</span>I'm not sure that scheduling on all of the cores on the user's machine by<br>
default is a good idea, especially given that our users have<br>
learned to expect the existing default. Enabling affinity by default<br>
seems reasonable if we have evidence that it helps the majority of<br>
applications, but we would first need to introduce an additional<br>
flag to disable it.<br>
<br>
In general I think -N1 is a reasonable default as it acknowledges the<br>
fact that deploying parallelism is not something that can be done<br>
blindly in many (most?) applications. To make effective use of<br>
parallelism the user needs to understand their hardware, their<br>
application, and its interaction with the runtime system and configure<br>
the RTS appropriately.<br>
<br>
Of course, this is just my two-cents.<br>
<br>
Cheers,<br>
<br>
- Ben<br>
</blockquote></div><br></div>