Understanding and Optimizing the Performance of Distributed Machine Learning Applications on Apache Spark
Celestine D\"unner, Thomas Parnell, Kubilay Atasu, Manolis Sifalakis,, Haralampos Pozidis

TL;DR
This paper analyzes the performance bottlenecks of Apache Spark for distributed machine learning, compares it with MPI, and proposes optimization techniques to significantly improve Spark's efficiency on large datasets.
Contribution
It identifies key performance bottlenecks in Spark, proposes practical optimization techniques, and demonstrates their effectiveness across multiple algorithms and datasets.
Findings
Performance gap between Spark and MPI reduced from 20x to 2x.
Optimizations improve distributed machine learning efficiency.
Trade-offs between computation and communication are crucial for performance.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
