相关疑难解决方法(0)

如何用Haskell向量编写并行代码?

一方面,在Haskell中Vector a似乎是用作数字数组的首选类型.甚至有一个(不完整的)矢量教程.

另一方面,Control.Parallel.Strategies主要是根据而定义的Traversable.矢量库不提供这些实例.

最小的完整定义也Traversable t应该定义Foldable

traverse :: Applicative f => (a -> f b) -> t a -> f (t b)
sequenceA :: Applicative f => t (f a) -> f (t a)
Run Code Online (Sandbox Code Playgroud)

我看不出如何sequenceA定义Data.Vector.Unboxed.Vector.那么,使用未装箱的向量编写并行代码的最佳方法是什么?定义一些新的临时策略,如evalVector或使用parpseq明确或使用普通Data.Array而不是向量?

PS Plain Array可并行化,没有问题:https://gist.github.com/701888

parallel-processing haskell vector

8
推荐指数
1
解决办法
1800
查看次数

标签 统计

haskell ×1

parallel-processing ×1

vector ×1