arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1612.01437cs.DCcs.LG
收藏

了解和优化Apache Spark上分布式机器学习应用程序的性能

Understanding and Optimizing the Performance of Distributed Machine Learning Applications on Apache Spark

IBM Research Zürich(IBM苏黎世研究院)

Celestine Dünner, Thomas Parnell, Kubilay Atasu, Manolis Sifalakis, Haralampos Pozidis

摘要:

在本文中,我们将探讨Apache Spark在机器学习应用中的性能限制。我们首先分析了Spark中实现的最先进的分布式机器学习算法的特性,并将其与使用高性能计算框架MPI的等效参考实现进行了比较。我们确定了Spark框架的关键瓶颈,并仔细研究了它们对算法性能的影响。为了提高Spark的性能,我们提出了一些实用的技术来减轻它的一些开销。然而,优化计算效率和框架相关的开销并不是性能的唯一关键-我们证明,为了获得最佳性能的任何实现,有必要仔细调整算法的计算时间和通信延迟之间的相应权衡。最佳的权衡取决于分布式算法的属性以及基础设施和框架相关的特性。最后,我们将这些技术和算法优化应用于Spark中实现的三种不同的分布式线性机器学习算法。我们使用五个大型数据集展示了结果,并证明通过使用所提出的优化,我们可以将Spark和MPI之间的性能差异从20倍减少到2倍。

英文摘要:

In this paper we explore the performance limits of Apache Spark for machine learning applications. We begin by analyzing the characteristics of a state-of-the-art distributed machine learning algorithm implemented in Spark and compare it to an equivalent reference implementation using the high performance computing framework MPI. We identify critical bottlenecks of the Spark framework and carefully study their implications on the performance of the algorithm. In order to improve Spark performance we then propose a number of practical techniques to alleviate some of its overheads. However, optimizing computational efficiency and framework related overheads is not the only key to performance -- we demonstrate that in order to get the best performance out of any implementation it is necessary to carefully tune the algorithm to the respective trade-off between computation time and communication latency. The optimal trade-off depends on both the properties of the distributed algorithm as well as infrastructure and framework-related characteristics. Finally, we apply these technical and algorithmic optimizations to three different distributed linear machine learning algorithms that have been implemented in Spark. We present results using five large datasets and demonstrate that by using the proposed optimizations, we can achieve a reduction in the performance difference between Spark and MPI from 20x to 2x.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑