加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 19:13:22 所属栏目:安全 来源:网络整理
导读:我只是想稍微测试一下并行集合,我使用了以下代码行(在REPL中): (1 to 100000).par.filter(BigInt(_).isProbablePrime(100)) 反对: (1 to 100000).filter(BigInt(_).isProbablePrime(100)) 但并行版本并不快.实际上它甚至感觉有点慢(但我还没有真正测量过).
我只是想稍微测试一下并行集合,我使用了以下代码行(在REPL中):

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

反对:

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

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

有人对此有解释吗?

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

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

解决方法

具有顺序和并行范围的滤波器将分别生成矢量数据结构 – Vector或ParVector.

这是从范围集合生成的并行向量的已知问题 – 并行向量的变换器方法(例如滤波器)不并行构造向量.

已经开发出一种允许有效并行构建载体的解决方案,但尚未实施.我建议您提交一个ticket,以便它可以在下一个版本中修复.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读