Haskell 并行随机数生成

Haskell 并行随机数生成,haskell,random,Haskell,Random,我想用随机数并行地执行很长的计算 import Control.DeepSeq import Control.Parallel.Strategies import Control.Monad import System.Random.MWC import System.Random.MWC.Distributions fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2) main = do gen <- createSystem

我想用随机数并行地执行很长的计算

import Control.DeepSeq
import Control.Parallel.Strategies
import Control.Monad
import System.Random.MWC
import System.Random.MWC.Distributions

fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)

main = do
  gen <- createSystemRandom
  let params =  [30, 31 .. 34]
  rs <- forM params $ \n -> do
    xs <- replicateM n $ normal 0 1 gen
    return $ fib n `deepseq` xs
  print $ withStrategy (parList rdeepseq) $ map last rs
import Control.DeepSeq
进口管制.平行战略
进口管制
导入System.Random.MWC
导入System.Random.MWC.Distributions
fib 0=0
fib 1=1
fib n=fib(n-1)+fib(n-2)
main=do

gen从控件中尝试forkIO。并发包:

像这样:

rs <- forM params $ \n -> forkIO $ do
rs forkIO$do
除了“工作不好”之外,你还能说更多吗?你遇到了什么问题?你有试着解决这个问题吗?您是否尝试过任何其他解决方案,例如
async
包?