Skip to main content
QUICK REVIEW

[論文レビュー] A Benchmarking Study to Evaluate Apache Spark on Large-Scale Supercomputers

George K. Thiruvathukal, Cameron Christensen|arXiv (Cornell University)|Apr 26, 2019
Cloud Computing and Resource Management参考文献 18被引用数 4
ひとこと要約

この論文は、アーガン国立研究所のThetaスパコン(65,536コア)で、標準化されたデータフローベンチマークを用いてApache Sparkのスケーリング性能を大規模スーパーコンピュータ上で評価し、強化スケーリングおよび弱化スケーリングの両方において、伝統的なMPI/Cワークロードと比較している。SparkはJVMおよびネットワーキングのオーバーヘッドのためMPI/Cと比べて約30倍遅いが、適切にチューニングすれば、特に混合環境における共同処理や後処理において、HPCワークロードへの適用が可能であることが示された。

ABSTRACT

As dataset sizes increase, data analysis tasks in high performance computing (HPC) are increasingly dependent on sophisticated dataflows and out-of-core methods for efficient system utilization. In addition, as HPC systems grow, memory access and data sharing are becoming performance bottlenecks. Cloud computing employs a data processing paradigm typically built on a loosely connected group of low-cost computing nodes without relying upon shared storage and/or memory. Apache Spark is a popular engine for large-scale data analysis in the cloud, which we have successfully deployed via job submission scripts on production clusters. In this paper, we describe common parallel analysis dataflows for both Message Passing Interface (MPI) and cloud based applications. We developed an effective benchmark to measure the performance characteristics of these tasks using both types of systems, specifically comparing MPI/C-based analyses with Spark. The benchmark is a data processing pipeline representative of a typical analytics framework implemented using map-reduce. In the case of Spark, we also consider whether language plays a role by writing tests using both Python and Scala, a language built on the Java Virtual Machine (JVM). We include performance results from two large systems at Argonne National Laboratory including Theta, a Cray XC40 supercomputer on which our experiments run with 65,536 cores (1024 nodes with 64 cores each). The results of our experiments are discussed in the context of their applicability to future HPC architectures. Beyond understanding performance, our work demonstrates that technologies such as Spark, while typically aimed at multi-tenant cloud-based environments, show promise for data analysis needs in a traditional clustering/supercomputing environment.

研究の動機と目的

  • MPIが主に使われる高性エネルギー計算(HPC)環境にApache Sparkを導入する可能性を評価すること。
  • 標準化されたベンチマークを用いて、大規模スーパーコンピュータ上でのSparkとMPI/Cの性能を比較すること。
  • プログラミング言語(Python対Scala)がHPC環境におけるSparkの性能に与える影響を評価すること。
  • 特にネットワーキングおよびJVMのオーバーヘッドに起因する、Sparkのリーダーシップクラスのシステム上での主な性能ボトルネックを同定すること。
  • 混合MPI/Spark HPCワークフローにおける共同処理および後処理に、Sparkを効果的に使用できるかどうかを実証すること。

提案手法

  • 実世界のアナリティクスワークロードを反映するマップ・リダスパターンに基づいたデータ処理パイプラインベンチマークを開発した。
  • MPI/C、Spark(Python版)、Spark(Scala版)の3つのフレームワークでベンチマークを実装し、フレームワーク間比較を可能にした。
  • アーガン国立研究所のThetaスパコン(65,536コア)で強化スケーリングおよび弱化スケーリングの実験を実施した。
  • 理想性能と実際のスケーリング行動を比較するため、対数スケールのスケーリングプロットを用いて性能を測定した。
  • Sparkの設定を最小限にチューニングし、Sparkランタイム自体を変更せずにHPC互換性を確保するためのキーパラメータのみを調整した。
  • ジョブ送信スクリプトおよびカスタム起動フレームワークを用いて、本番のスーパーコンピューティングクラスタへのベンチマーク展開を実施した。

実験結果

リサーチクエスチョン

  • RQ1Apache Sparkは、大規模スーパーコンピュータ上で、データ集約型HPCワークロードについて、受け入れ可能な性能を達成できるか?
  • RQ2強化スケーリングおよび弱化スケーリングの観点から、Sparkの性能は伝統的なMPI/Cと比べてどの程度か?
  • RQ3プログラミング言語の選択(Python対Scala)が、HPC環境におけるSparkの性能に顕著な影響を与えるか?
  • RQ4HPCシステム上でSparkを実行する際の主な性能ボトルネックは何か、特にネットワーキングおよびJVMのオーバーヘッドに起因するものか?
  • RQ5混合MPI/Spark実行モデルにおいて、Sparkは既存のHPCワークフローにどの程度統合可能か、特に共同処理や後処理用途において?

主な発見

  • Thetaスパコン上での強化スケーリングおよび弱化スケーリングの両実験において、SparkベースのワークロードはMPI/Cと比べて約30倍遅かった。
  • 弱化スケーリングでは、3つのフレームワークすべてで類似した傾向が見られ、理論的にはSparkのスケーリングが比較的うまくいくことが示唆されたが、絶対実行時間は非常に高かった。
  • 強化スケーリングの結果も、理想の逆割合プロポーションから大きく逸脱しており、すべてのフレームワークが著しいスケーリング劣化を示した。
  • Spark PythonとSpark Scalaの間で顕著な性能差は観測されず、本研究では言語選択が性能に影響しなかった。
  • 主な性能劣化要因は、ネットワークを圧倒するSparkのハートビートトラフィックに起因しており、実験でハートビートを無効化することでこれを緩和できた。
  • 性能オーバーヘッドが存在するものの、Sparkは特に共同処理および後処理タスクにおいて、スパコン上での大規模データ処理に実用的であることが示された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。