作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我第一次尝试使用 Scala 的并行性。我有大量数据(可以存储为任何集合),我想使用简单的映射操作(例如 val out = data.par.map(foo(_)
)在多核系统上并行化这些数据。我在 scala docs 看到的例子有以下片段给出了奇怪的输出。 “串行”版本似乎以隐式并行运行,而并行版本不起作用。任何指向解决方案的指针将不胜感激。
scala> val list = (1 to 1000000).toList
list: List[Int] = List(1, 2, 3, 4, 5,... // used > 1000% cpu
scala> val out = list.map(_ + 42) // again used > 1000% cpu
out: List[Int] = List(43, 44, 45, 46,
scala> val out = list.par.map(_ + 42) // process stalls, consumes no cpu!
scala> (1 to 10) map println // initially used >400% cpu
1
2
3
4
5
6
7
8
9
10
scala> (1 to 10).par map println // process stalls, consumes no cpu!
我正在使用
Scala 2.12.10 (OpenJDK 64-Bit Server VM, Java 1.8.0_275)
编辑:上面的代码在脚本中运行,但不在 Scala shell 中。可能是 shell 本身的一些限制。
最佳答案
$ scala-runners/scala --scala-version 2.12.10 -Yrepl-class-based
Welcome to Scala 2.12.10 (Java HotSpot(TM) 64-Bit Server VM, Java 10.0.2).
Type in expressions for evaluation. Or try :help.
scala> (1 to 10).par map println
6
9
8
1
10
7
2
3
4
5
res0: scala.collection.parallel.immutable.ParSeq[Unit] = ParVector((), (), (), (), (), (), (), (), (), ())
关于scala 隐式 par 没有任何进展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67591758/
我是一名优秀的程序员,十分优秀!