[Haskell-cafe] Parallel executing of actions

Juan Carlos Arevalo Baeza jcab.lists at jcabs-rumblings.com
Tue Apr 17 22:45:56 EDT 2007


    :-) Thank you for your kindness. I mean... your frankness.

    I had another issue in that code which clearly shows that I don't know  
how to use parMap or strategies in general. Maybe this is better:

weirdParMap action = sequence_ . map action . parMap rwhnf (\x -> x `seq`  
x)

    or maybe that's overkill and this is sufficient:

weirdParMap action = sequence_ . map action . parMap rwhnf id

    or this:

weirdParMap action list = sequence_ $ map action (list `using` rnf)

    (which I guess would require the appropriate NFData instanbe for the  
pixel type)

    or maybe I still don't know enough about this Parallel Haskell thingy.

    In any case... couldn't something like this be what was needed in the  
OP?

JCAB

On Tue, 17 Apr 2007 17:56:27 -0700, Stefan O'Rear <stefanor at cox.net> wrote:

> On Tue, Apr 17, 2007 at 05:49:11PM -0700, Juan Carlos Arevalo Baeza  
> wrote:
>>    I may be talking out of my other end here, but... if you want  
>> something
>> like parMap to calculate all the pixels in parallel, then... can't you  
>> use
>> parMap itself?
>>
>>    Something like:
>>
>> weirdParMap action = sequence_ . map action . parMap (id $!)
>>
>>    This evaluates all the elements of the list using parMap (the  
>> expensive
>> part, right?), and then sequentially applies the action on the current
>> thread.
>
> You are.  I'm devoting most of my brain cells to automatic deriving of
> TTypeable atm, but note that id is already strict, so (id $!) is
> equivalent to id.
>
> Stefan
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe




More information about the Haskell-Cafe mailing list