gpt4 book ai didi

scala - 为什么使用并行集合不会更快?

转载 作者:行者123 更新时间:2023-12-04 12:13:09 25 4
gpt4 key购买 nike

我只是想稍微测试一下并行集合,我使用了以下代码行(在 REPL 中):

(1 to 100000).par.filter(BigInt(_).isProbablePrime(100))

反对:
(1 to 100000).filter(BigInt(_).isProbablePrime(100))

但并行版本并不快。事实上,它甚至感觉有点慢(但我还没有真正测量过)。

有没有人对此做出解释?

编辑 1:是的,我确实有一个多核处理器

编辑 2:好的,我自己“解决”了这个问题。 isProbablePrime的实现似乎是问题而不是并行集合。我换了 isProbablePrime使用另一个函数来测试素性,现在我得到了预期的加速。

最佳答案

具有顺序和并行范围,filter将生成一个向量数据结构 - a VectorParVector , 分别。

这是从范围集合生成的并行向量的一个已知问题 - 并行向量的转换器方法(例如 filter )不会并行构造向量。

已经开发了一种允许有效并行构建向量的解决方案,但尚未实现。我建议你提交 ticket ,以便它可以在下一个版本中修复。

关于scala - 为什么使用并行集合不会更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com