Re: [Haskell] Pugs gains SMP parallelism support.

2006-10-21 Thread Taral
On 10/21/06, Audrey Tang <[EMAIL PROTECTED]> wrote: > let proc n x = do Hmm, am I missing something here, but how does forkIO (and data parallelism) fit in into that scheme? I R DUM. let proc n x = forkIO $ do -- Taral <[EMAIL PROTECTED]> "You can't prove anything." -- Gödel's Incompetenc

Re: [Haskell] Pugs gains SMP parallelism support.

2006-10-21 Thread Audrey Tang
在 Oct 21, 2006 9:58 AM 時,Taral 寫到: On 10/21/06, Audrey Tang <[EMAIL PROTECTED]> wrote: I wonder if there is a more efficient way doing this... I would use an IOArray: let l = length xs arr <- newArray_ (0, l) count <- newQSemN 0 let proc n x = do rv <- runEvalIO env (reduce x) writeAr

Re: [Haskell] Pugs gains SMP parallelism support.

2006-10-21 Thread Taral
On 10/21/06, Audrey Tang <[EMAIL PROTECTED]> wrote: I wonder if there is a more efficient way doing this... I would use an IOArray: let l = length xs arr <- newArray_ (0, l) count <- newQSemN 0 let proc n x = do rv <- runEvalIO env (reduce x) writeArray arr n rv signalQSemN count 1 se

[Haskell] Pugs gains SMP parallelism support.

2006-10-21 Thread Audrey Tang
I hacked +RTS -N support into Pugs today; here's a short writeup: http://pugs.blogs.com/pugs/2006/10/smp_paralleliza.html Pugs's current implementation for concurrent operations on lists is very naive: chan<- newChan forM ([0..] `zip` xs) $ \(n, x) -> forkIO $