我想编写一个策略来并行计算数组中的项.旧策略必须parArr这样做(见这里).但是在新的Control.Parallel.Strategies模块中找不到这个.
例如并行列表评估: map f myList `using` parList rdeepseq
我希望能够执行以下操作:amap f myArr `using` parArr rdeepseq,amap来自Data.Array.Base,并将函数应用于每个元素(顺序).
以下似乎工作,但我想知道它是否正确,并想知道我如何定义自己的parArr.
这有效: amap ((+1) `using` rpar) $ Array.array (0,4) [(0,10),(1,20),(2,30),(3,40),(4,50)]
对于上一个问题,我为向量包编写了一个并行评估策略。这应该是一个很好的起点。您可以在vector-strategies包中看到 hackage 的代码。
我没有时间给出完整的答案 - 也许我稍后会编辑它。请随意评论额外的问题和方向。
| 归档时间: |
|
| 查看次数: |
398 次 |
| 最近记录: |