0

200K 샘플의 트레이닝 세트에서 MLlib Random Forest (org.apache.spark.mllib.tree.RandomForest)를 교육하는 Java 애플리케이션이 있습니다. 나는 단 하나의 CPU 코어가 훈련 중에 활용된다는 것을 알아 차렸다. 랜덤 포레스트가 N 개의 의사 결정 트리의 앙상블이라는 점을 감안할 때, 트리를 병렬로 트레이닝 할 수 있으므로 모든 사용 가능한 코어를 활용할 수 있다고 생각할 것입니다. 의사 결정 트리의 병렬 학습을 가능하게하는 구성 옵션 또는 API 호출 또는 다른 것이 있습니까?Apache MLlib 랜덤 포레스트에 대한 병렬 교육

+1

활성 스레드가 하나만 표시되면'org.apache.spark.mllib.tree.RandomForest'가 아닌 코드 또는 구성입니다 –

+0

@LostInOverflow wiki answer? – eliasah

+1

@eliasah Morten Jorgensen에게이 질문을 업데이트 할 시간을 주자. –

답변

0

나는 이것에 대한 답을 찾았습니다. SparkConf.setMaster ("local")를 사용하여 Spark 구성을 설정하는 방법에 문제가있었습니다. 나는 javadoc에 따라, ("[16] 지역") 16 개 스레드를 사용하는 SparkConf.setMaster이 변경 : 이제

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

내 훨씬 빨리 실행 우리를 훈련, 버지니아에있는 아마존 데이터 센터가 약간있다 hotter :)

RTFM의 전형적인 경우지만, 내 방어에 setMaster()의 사용은 나에게 조금 해킹 것 같습니다. 더 나은 디자인은 사용할 로컬 스레드/코어의 수를 설정하는 별도의 메소드를 추가하는 것입니다.