我想平行地执行随机数生成的非常长的计算。
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.4/jquery.inputmask.bundle.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.4/css/inputmask.css" rel="stylesheet" />
<input type="text" class="form-control credit-card-number" placeholder="Ex: 0000 0000 0000 0000" />
如何平行执行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
?
monad-parallel包裹效果不佳。
答案 0 :(得分:0)
从Control.Concurrent包中尝试forkIO:
https://hackage.haskell.org/package/base-4.10.1.0/docs/Control-Concurrent.html
像这样:
rs <- forM params $ \n -> forkIO $ do