我正在将一些Matlab代码转换为Scala。在Matlab中,有 matlabpool 函数,用于定义要使用的核心数,并“打开”核心以进行并行计算(之后使用 parfor 代替 for 并行运行循环)
matlabpool open 4
(“打开”4个核心)
matlabpool close
(“关闭”并行处理的核心)
Scala中 matlabpool 的等效内容是什么?
答案 0 :(得分:0)
Scala编译器生成常规JVM字节码,因此在运行时Scala代码具有与Java代码相同的功能。 JVM通过轻量级线程提供并行性(请参阅Thread类和Runnable接口),它将使用尽可能多的内核(每个线程不超过一个,当然)。请参阅:Is Multi-Threaded algorithm required to make use of Multi-core processors?
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