Return-Path: X-Original-To: apmail-spark-reviews-archive@minotaur.apache.org Delivered-To: apmail-spark-reviews-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EAA0117C92 for ; Tue, 30 Sep 2014 16:51:52 +0000 (UTC) Received: (qmail 36075 invoked by uid 500); 30 Sep 2014 16:51:52 -0000 Delivered-To: apmail-spark-reviews-archive@spark.apache.org Received: (qmail 36054 invoked by uid 500); 30 Sep 2014 16:51:52 -0000 Mailing-List: contact reviews-help@spark.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list reviews@spark.apache.org Received: (qmail 36043 invoked by uid 99); 30 Sep 2014 16:51:52 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 Sep 2014 16:51:52 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id EE5A6A04618; Tue, 30 Sep 2014 16:51:51 +0000 (UTC) From: chouqin To: reviews@spark.apache.org Reply-To: reviews@spark.apache.org Message-ID: Subject: [GitHub] spark pull request: [SPARK-3366][MLLIB]Compute best splits distrib... Content-Type: text/plain Date: Tue, 30 Sep 2014 16:51:51 +0000 (UTC) GitHub user chouqin opened a pull request: https://github.com/apache/spark/pull/2595 [SPARK-3366][MLLIB]Compute best splits distributively in decision tree Currently, all best splits are computed on the driver, which makes the driver a bottleneck for both communication and computation. This PR fix this problem by computed best splits on executors. Instead of send all aggregate stats to the driver node, we can send aggregate stats for a node to a particular executor, using `reduceByKey` operation, then we can compute best split for this node there. Implementation details: Each node now has a nodeStatsAggregator, which save aggregate stats for all features and bins. First use mapPartition to compute node aggregate stats for all nodes in each partition. Then transform node aggregate stats to (nodeIndex, nodeStatsAggregator) pairs and use to `reduceByKey` operation to combine nodeStatsAggregator for the same node. After all stats have been combined, best splits can be computed for each node based on the node aggregate stats. Best split result is collected to driver to construct the decision tree. CC: mengxr manishamde jkbradley, please help me review this, thanks. You can merge this pull request into a Git repository by running: $ git pull https://github.com/chouqin/spark dt-dist-agg Alternatively you can review and apply these changes as the patch at: https://github.com/apache/spark/pull/2595.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #2595 ---- commit 532993a8274e521795de50d348dbae2a4283f79b Author: qiping.lqp Date: 2014-09-30T07:05:37Z Compute best splits distributively in decision tree commit f00fc22594a936f1abc22ab53365223bf5071d01 Author: qiping.lqp Date: 2014-09-30T07:24:29Z fix bug commit 4f564961f699f6a453356de889a80461af8891f8 Author: qiping.lqp Date: 2014-09-30T07:29:21Z fix bug commit 5f63d6ce2f43c17bc1758bc2d067c71ef2111220 Author: qiping.lqp Date: 2014-09-30T08:10:45Z add multiclassification using One-Vs-All strategy commit 24eacd8ec2770b3ed9cba5d67ed14bc0d3809170 Author: qiping.lqp Date: 2014-09-30T08:23:15Z fix type-mismatch bug commit 748bd456809da07b60a984531e83a6b821f71934 Author: qiping.lqp Date: 2014-09-30T08:27:39Z fix type-mismatch bug commit e76414fd3fe6df19b9352ff6690f12c7d40ee803 Author: qiping.lqp Date: 2014-09-30T08:38:19Z fix testsuite commit b5b0bc2bafe37510adc79bdbda4d2664456fe738 Author: qiping.lqp Date: 2014-09-30T08:45:15Z fix style commit a75df27e015b37cd620bc2400c418495ccf9ab39 Author: qiping.lqp Date: 2014-09-30T09:40:58Z fix test suite commit bdd2a63f2b90058141e16f996984df955c5687a7 Author: qiping.lqp Date: 2014-09-30T10:22:08Z fix test suite commit 7bbb787c5eaf6652e8300c8f0fb4454b555d6d95 Author: chouqin Date: 2014-09-30T16:31:18Z add comments ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastructure@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscribe@spark.apache.org For additional commands, e-mail: reviews-help@spark.apache.org