一部の Matlab コードを Scala に変換しています。Matlab には、使用するコアの数を定義し、並列計算のためにコアを「開く」ために使用されるmatlabpool関数があります (その後、 forの代わりにparforを使用して、ループを並列に実行します)。
matlabpool open 4
(「開く」4 コア)
matlabpool close
(並列処理のためにコアを「閉じます」)
Scalaのmatlabpoolに相当するものは何ですか?
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