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
包?