Skip to main content
QUICK REVIEW

[論文レビュー] Improving Spark Application Throughput Via Memory Aware Task Co-location: A Mixture of Experts Approach

Vicent Sanz Marco, Ben Taylor|arXiv (Cornell University)|Oct 2, 2017
Cloud Computing and Resource Management参考文献 58被引用数 14
ひとこと要約

本稿では、実行時における複数の事前学習済みメモリモデルから最適なモデルを選択することで、Sparkアプリケーションのメモリ使用量を予測するmixture-of-expertsアプローチを提案する。これにより、共有ホスト上でのタスクの効果的共配置が可能となり、隔離実行と比較して8.69倍高いシステムスループットと49%短いターンアラウンド時間を達成する。また、最先端の共配置方式と比較して、それぞれ1.28倍および1.68倍の性能向上を達成する。

ABSTRACT

Data analytic applications built upon big data processing frameworks such as Apache Spark are an important class of applications. Many of these applications are not latency-sensitive and thus can run as batch jobs in data centers. By running multiple applications on a computing host, task co-location can significantly improve the server utilization and system throughput. However, effective task co-location is a non-trivial task, as it requires an understanding of the computing resource requirement of the co-running applications, in order to determine what tasks, and how many of them, can be co-located. In this paper, we present a mixture-of-experts approach to model the memory behavior of Spark applications. We achieve this by learning, off-line, a range of specialized memory models on a range of typical applications; we then determine at runtime which of the memory models, or experts, best describes the memory behavior of the target application. We show that by accurately estimating the resource level that is needed, a co-location scheme can effectively determine how many applications can be co-located on the same host to improve the system throughput, by taking into consideration the memory and CPU requirements of co-running application tasks. Our technique is applied to a set of representative data analytic applications built upon the Apache Spark framework. We evaluated our approach for system throughput and average normalized turnaround time on a multi-core cluster. Our approach achieves over 83.9% of the performance delivered using an ideal memory predictor. We obtain, on average, 8.69x improvement on system throughput and a 49% reduction on turnaround time over executing application tasks in isolation, which translates to a 1.28x and 1.68x improvement over a state-of-the-art co-location scheme for system throughput and turnaround time respectively.

研究の動機と目的

  • 共有ホスト上で遅延に敏感でないSparkアプリケーションを共配置することで、大規模データワークロードにおけるリソース利用効率の悪さに対処すること。
  • ユーザーが提供する推定値を必要とするか、一様な関数を用いる固定リソース予測モデルの限界を克服すること。
  • Sparkアプリケーションのメモリフットプリントを正確に実行時予測することで、システムスループットの向上とアプリケーションのターンアラウンド時間の短縮を図ること。
  • 実行時におけるアプリケーションおよびデータの特性に基づき、専用のメモリモデルを動的に適応的に選択すること。
  • 手動チューニングを必要とせず、多様なSparkアプリケーションのメモリ動作をモデル化するスケーラブルで拡張可能なフレームワークを提供すること。

提案手法

  • 代表的なSparkアプリケーションを用いて、履歴データを用いて事前に複数の専用メモリモデル(線形および非線形)を学習する。
  • 実行時において、機械学習分類器を用いて、特定のアプリケーションおよびデータセットに最も適したモデル(エキスパート)を選択する。
  • 選択されたエキスパートからの予測を動的に組み合わせ、ターゲットSparkアプリケーションのメモリフットプリントを推定する。
  • 予測フレームワークを実行時タスクスケジューラと統合し、互換性のあるタスクを同じホスト上に共配置する。
  • 正確なメモリ予測を用いて物理メモリ制限を超えないようにし、メモリ不足エラーを防止することで、共配置の制限を確保する。
  • 新しいモデルを追加可能であり、適切な状況でのみ選択されることを保証することで、拡張性を実現し、長期的な適応性を可能にする。

実験結果

リサーチクエスチョン

  • RQ1モノリシックモデルと比較して、mixture-of-expertsフレームワークは、多様なSparkアプリケーションのメモリフットプリント予測の正確性を向上させることができるか?
  • RQ2実行時における専用メモリモデルの選択は、共配置環境におけるシステムスループットとアプリケーションのターンアラウンド時間にどのような影響を与えるか?
  • RQ3メモリに配慮したタスク共配置は、Sparkベースのデータセンターにおけるリソースの未利用をどの程度削減できるか?
  • RQ4本手法は、最先端の共配置方式と比較して、スループットおよび遅延の面で優れているか?
  • RQ5本フレームワークは、全モデルセットの再学習を伴わずに、新しいアプリケーションをサポートするために拡張可能か?

主な発見

  • 提案手法は、システムスループットにおいて、理想のメモリ予測器の83.9%の性能を達成する。
  • 平均して、本手法は、Sparkタスクを隔離して実行する場合と比較して、8.69倍高いシステムスループットを達成する。
  • 隔離実行と比較して、平均的な正規化ターンアラウンド時間を49%短縮する。
  • 最先端の共配置方式と比較して、システムスループットを1.28倍、ターンアラウンド時間を1.68倍向上する。
  • mixture-of-expertsフレームワークにより、40ノードのクラスタ上で44の代表的Sparkアプリケーションにおいて、正確で適応的なメモリ予測が可能となる。
  • 本システムは、モデルの段階的追加をサポートしており、フレームワークが時間経過とともに進化し、新しいアプリケーションタイプをサポート可能となる。

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

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

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

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