PSeq是在F#3.0中使用的正确方法吗?

时间:2013-12-09 07:34:51

标签: f# parallel-processing

我已经使用F#powerpack一段时间了,它有很棒的PSeq模块,而且效果非常好。

然而它闻起来并不正确,因为这是F#库的扩展,而不是标准库。在F#中有更正确的方法来执行一般并行吗?

我知道这是一个非常普遍的问题,但我似乎无法在最近的其他任何地方找到明确的答案(例如2013年)

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,PSeq模块只是the Parallel LINQ library上的一个薄包装器。主要目的是为您提供一个很好的语法,与流水线和与Seq和其他标准模块一起使用的样式兼容。

因此,如果在您的情况下并行LINQ是正确的,那么PSeq模块是从F#使用它的最佳方式。也就是说,如果您的集合具有正确的结构,PLINQ只会提高性能 - 您需要处理相当大的集合,并且您运行的操作非常重要(否则,会产生大量开销)。

此外,使用PSeq的最简单方法可能只是将PSeq.fsPSeq.fsi复制到您的项目中(它们是F#PowerPack的一部分,但如果您只关心{ {1}},然后复制这两个文件即可。)