什么是Scala中matlabpool的等价物

时间:2013-10-30 19:02:30

标签: matlab scala

我正在将一些Matlab代码转换为Scala。在Matlab中,有 matlabpool 函数,用于定义要使用的核心数,并“打开”核心​​以进行并行计算(之后使用 parfor 代替 for 并行运行循环)

matlabpool open 4

(“打开”4个核心)

matlabpool close

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

Scala中 matlabpool 的等效内容是什么?

1 个答案:

答案 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