0

200KサンプルのトレーニングセットでMLlibランダムフォレスト(org.apache.spark.mllib.tree.RandomForest)を訓練するJavaアプリケーションがあります。私は、訓練中にCPUコアが1つしか使用されていないことに気付きました。ランダムフォレストがNデシジョンツリーのアンサンブルであることを考えれば、ツリーを並行して訓練し、すべての使用可能なコアを利用することができると考えるだろう。意思決定ツリーの並列訓練を可能にする構成オプションまたはAPIコール、または他に何かがありますか?Apache MLlibランダムフォレストの並列トレーニング

+1

アクティブなスレッドが1つだけ表示された場合は、コードまたはコンフィグレーションで、org.apache.spark.mllib.tree.RandomForestではなく、 –

+0

@LostInOverflow wikiの回答ですか? – eliasah

+1

@eliasah Morten Jorgensenにこの質問を更新する時間を与えましょう。 –

答えて

0

私はこれに対する答えを見つけました。この問題は、SparkConf.setMaster( "local")を使用してSparkの設定をどのようにセットアップするかで問題になりました。今、私たちは、はるかに高速ランニング、トレーニング、およびバージニア州のアマゾンのデータセンターはわずかである

http://spark.apache.org/docs/latest/api/java/org/apache/spark/SparkConf.html#setMaster(java.lang.String)

を:私は、javadocのあたりとして、16個のスレッドを使用する(「[16]ローカル」)SparkConf.setMasterにこれを変更しますhotter :)

RTFMの典型的なケースですが、私の防衛では、このsetMaster()の使用は私にとってはちょっとハッキリです。より良い設計は、使用するローカルスレッド/コアの数を設定するための別個のメソッドを追加することです。

関連する問題