0

我正在将一些 Matlab 代码转换为 Scala。在 Matlab 中,有一个matlabpool函数用于定义要使用的内核数量并“打开”内核以进行并行计算(然后使用例如parfor而不是for来并行运行循环)。

matlabpool open 4

(“打开”4 个核心)

matlabpool close

(“关闭”并行处理的核心)

Scala中的matlabpool等价物是什么?

4

1 回答 1

0

Scala 编译器生成常规 JVM 字节码,因此在运行时 Scala 代码具有与 Java 代码相同的功能。JVM 通过轻量级线程(参见 Thread 类和 Runnable 接口)提供并行性,它将使用尽可能多的内核(当然,每个线程不超过一个)。请参阅:使用多核处理器是否需要多线程算法?

Twitter 的 Scala School 有一个并发页面 ( http://twitter.github.io/scala_school/concurrency.html ),它确实展示了如何使用来自 Scala 的 Java 并发原语。

也就是说,Scala 中有一些用于并行集合的工具,它们利用了从 JVM 6 开始的 fork/join Java 功能。请参阅:http ://docs.scala-lang.org/overviews/parallel-collections/overview.html

于 2013-10-31T01:22:07.153 回答