0

一部の Matlab コードを Scala に変換しています。Matlab には、使用するコアの数を定義し、並列計算のためにコアを「開く」ために使用されるmatlabpool関数があります (その後、 forの代わりにparforを使用して、ループを並列に実行します)。

matlabpool open 4

(「開く」4 コア)

matlabpool close

(並列処理のためにコアを「閉じます」)

Scalaのmatlabpoolに相当するものは何ですか?

4

1 に答える 1

0

Scala コンパイラは通常の JVM バイトコードを生成するため、実行時に Scala コードは Java コードと同じ機能を備えています。JVM は軽量スレッド (Thread クラスと Runnable インターフェースを参照) を介して並列処理を提供し、可能な限り多くのコアを使用します (もちろん、スレッドごとに 1 つまで)。参照:マルチコア プロセッサを利用するには、マルチスレッド アルゴリズムが必要ですか?

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 に答える