[Haskell-cafe] Control.Parallel seemingly randomly behaviour

David Feuer david.feuer at gmail.com
Tue Jan 17 00:02:47 UTC 2017


Oh, and you should probably be passing your program an explicit +RTS option
to tell it how many OS threads to use.

On Jan 16, 2017 7:01 PM, "David Feuer" <david.feuer at gmail.com> wrote:

> Just to remove one variable: what happens if you run the same executable
> multiple times, rather than rebuilding it each time?
>
> On Jan 15, 2017 6:34 PM, "Juan Luis Martty" <jmartty at hotmail.com> wrote:
>
> Hello everyone,
>
> I'm having a consistency issue with the following piece of code:
>
> heavyAm = 500
> lightAm = 1000
>
> heavyCalc :: Int -> Int
> heavyCalc s = sum [1..1000000*s]
>
> parallel = (heavyCalc lightAm, heavyCalc heavyAm) `using` (parTuple2 rseq
> rseq)
>
> For some reason, during runtime the RTS sometimes parallelizes the
> evaluation and sometimes it doesn't. I'm running with all the RTS/compile
> time options correctly afaik. Here is the output from a couple of runs of
> the program:
>
> jmartty at walrus:~/hs/parallel$ stack build && time stack exec par-exe
> Warning: File listed in par.cabal file does not exist: README.md
> (500000000500000000,125000000250000000)
> Computation time: 1.557007s
>
> real    0m1.732s
> user    0m2.528s
> sys 0m0.464s
> jmartty at walrus:~/hs/parallel$ stack build && time stack exec par-exe
> Warning: File listed in par.cabal file does not exist: README.md
> (500000000500000000,125000000250000000)
> Computation time: 1.544837s
>
> real    0m1.720s
> user    0m2.544s
> sys 0m0.712s
> jmartty at walrus:~/hs/parallel$ stack build && time stack exec par-exe
> Warning: File listed in par.cabal file does not exist: README.md
> (500000000500000000,125000000250000000)
> Computation time: 2.316537s
>
> real    0m2.484s
> user    0m2.592s
> sys 0m0.680s
> jmartty at walrus:~/hs/parallel$ stack build && time stack exec par-exe
> Warning: File listed in par.cabal file does not exist: README.md
> (500000000500000000,125000000250000000)
> Computation time: 2.318514s
>
> real    0m2.489s
> user    0m2.612s
> sys 0m0.688s
> jmartty at walrus:~/hs/parallel$ stack build && time stack exec par-exe
> Warning: File listed in par.cabal file does not exist: README.md
> (500000000500000000,125000000250000000)
> Computation time: 1.544975s
>
> real    0m1.718s
> user    0m2.512s
> sys 0m0.456s
>
> As you can see, sometimes wall time roughly equals userspace time,
> sometimes it doesn't (meaning it parallelized at least some amount). I'm
> running on a dual core machine under Ubuntu using stack with lts-7.14 (GHC
> 8.0.1) and parallel-3.2.1.0.
>
> Regards,
> Juan
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170116/27378da1/attachment.html>


More information about the Haskell-Cafe mailing list