Splash:随机算法并行化编程接口User-friendly
Splash: User-friendly Programming Interface for Parallelizing Stochastic Algorithms
摘要:
随机算法是解决机器学习和优化问题的有效方法。在本文中,我们提出了一个通用的框架称为飞溅的并行随机算法的多节点分布式系统。Splash由一个编程接口和一个执行引擎组成。使用编程接口,用户开发顺序随机算法,而不考虑任何细节的分布式计算。然后,该算法自动并行化的通信效率的执行引擎。我们提供了并行化随机梯度下降的最佳收敛速度的理论依据。Splash基于Apache Spark。逻辑回归,协同过滤和主题建模的真实数据实验验证了Splash比单线程随机算法和Spark上最先进的实现产生了数量级的加速。
英文摘要:
Stochastic algorithms are efficient approaches to solving machine learning and optimization problems. In this paper, we propose a general framework called Splash for parallelizing stochastic algorithms on multi-node distributed systems. Splash consists of a programming interface and an execution engine. Using the programming interface, the user develops sequential stochastic algorithms without concerning any detail about distributed computing. The algorithm is then automatically parallelized by a communication-efficient execution engine. We provide theoretical justifications on the optimal rate of convergence for parallelizing stochastic gradient descent. Splash is built on top of Apache Spark. The real-data experiments on logistic regression, collaborative filtering and topic modeling verify that Splash yields order-of-magnitude speedup over single-thread stochastic algorithms and over state-of-the-art implementations on Spark.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。