Parallel forkOS does not work on ubuntu
bulat.ziganshin at gmail.com
Wed Dec 10 10:18:48 EST 2008
Wednesday, December 10, 2008, 5:24:28 PM, you wrote:
good explanation of various shortanges on the way to multi-threading.
may be it worth a link from GHC Concurrency pages?
> Hoang Truong wrote:
>> Hi Simon,
>> I tried with forkIO and added another dowork functions but the result is
>> the same: only one core is used, three other cores are idle. Do you have
>> any other suggestions? Is there anything I should take care when
>> installing GHC?
>> I also did try the Wombat.hs from the tutorial, but only one core is
>> used and the times are almost the same.
>> seq sum: 119201850
>> seq time: 20.959932 seconds.
>> par sum: 119201850
>> par time: 20.959547 seconds.
> Your program is suffering from microbenchmarkitis, I'm afraid. There's
> only one spark, which tickles a bug in the scheduler in 6.10.1 and earlier
> (but sometimes doesn't happen due to random scheduling behaviour). Even
> with that fixed, the program uses fib which tickles another bug: when
> optimised, fib doesn't do any allocation, and GHC's scheduler relies on
> allocation happening at regular enough intervals.
> In 6.10.1 we never get to do load-balancing in this example, because fib
> doesn't ever yield control to the scheduler. In HEAD, where we have
> work-stealing and don't rely on the scheduler for load-balancing, the
> load-balancing problem goes away but reveals another problem: the second
> thread wants to GC, but in order to GC it has to synchronise with the other
> running threads, but the other thread is running fib and never yields. We
> can fix this by allowing CPUs to GC independently (which we plan to do),
> but even then you could still run into the same problem because eventually
> a global GC will be required. If you really want to see the program
> running in parallel, turn off -O.
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Glasgow-haskell-users