Skip to main content
QUICK REVIEW

[論文レビュー] A Zero-Positive Learning Approach for Diagnosing Software Performance Regressions

Mejbah Alam, Justin Gottschlich|arXiv (Cornell University)|Sep 21, 2017
Software System Performance and Reliability参考文献 68被引用数 8
ひとこと要約

本稿では、ハードウェアパフォーマンスカウンタ(HWPCs)、オートエンコーダ、k-meansクラスタリングを用いて、最小限のプロファイリングオーバーヘッドでソフトウェアパフォーマンスの回帰を検出するゼロポジティブ学習フレームワークAutoPerfを提案する。4%の平均プロファイリングオーバーヘッドを達成し、先行手法よりも高い精度でパフォーマンスバグを診断しており、10件の実世界のパフォーマンス回帰においても偽陰性を発生させない。

ABSTRACT

The field of machine programming (MP), the automation of the development of software, is making notable research advances. This is, in part, due to the emergence of a wide range of novel techniques in machine learning. In this paper, we apply MP to the automation of software performance regression testing. A performance regression is a software performance degradation caused by a code change. We present AutoPerf - a novel approach to automate regression testing that utilizes three core techniques: (i) zero-positive learning, (ii) autoencoders, and (iii) hardware telemetry. We demonstrate AutoPerf's generality and efficacy against 3 types of performance regressions across 10 real performance bugs in 7 benchmark and open-source programs. On average, AutoPerf exhibits 4% profiling overhead and accurately diagnoses more performance bugs than prior state-of-the-art approaches. Thus far, AutoPerf has produced no false negatives.

研究の動機と目的

  • 進化するソフトウェアシステム、特に並列プログラムにおけるパフォーマンス回帰の診断という課題に対処すること。
  • ラベル付き学習データや事前の欠陻例が必要なルールベースおよび教師あり学習手法の制限を克服すること。
  • ラベル付き異常例に依存せずに、多様なパフォーマンス回帰パターンを検出可能なスケーラブルで汎用的なソリューションを開発すること。
  • 実世界のシステムで高い診断精度を維持しながら、プロファイリングオーバーヘッドを最小限に抑えること。
  • 生産環境向けソフトウェアにおけるフェイクシェアイング、トゥルーシェアイング、NUMAレイテンシなどのパフォーマンス欠陻の自動検出を可能にすること。

提案手法

  • 軽量なインストルメンテーションを用いて、ベースラインバージョン(Pi)および変更済みバージョン(Pi+1)の両方のプログラムからハードウェアパフォーマンスカウンタ(HWPC)プロファイルを収集する。
  • ベースラインバージョン(Pi)のHWPCプロファイルを用いてオートエンコーダモデルを学習させ、正常なプログラム動作を学習する。
  • ゼロポジティブ学習(ZPL)を適用し、オートエンコーダの再構成誤差(RE)を測定することでPi+1における異常を検出する;高いREは潜在的な回帰を示唆する。
  • 類似した関数をグループ化することでトレーニングオーバーヘッドを削減し、多数の変更された関数にわたるスケーラブルなモデルトレーニングを可能にするk-meansクラスタリングを用いる。
  • 再構成誤差に基づく統計的しきい値ヒューリスティックγ(t)を適用し、正常な変動と真の回帰を区別する。これにより、検出精度が向上する。
  • 関数レベルの再構成誤差とクラスタリング結果を分析することで、検出された回帰を分類および局所化する。

実験結果

リサーチクエスチョン

  • RQ1ラベル付き欠陻例を必要としないゼロポジティブ学習アプローチは、パフォーマンス回帰を効果的に検出可能か?
  • RQ2オートエンコーダとハードウェアパフォーマンスカウンタの統合は、従来の手法と比較して検出精度をどのように向上させるか?
  • RQ3k-meansクラスタリングは、診断精度を保持したまま、トレーニングオーバーヘッドをどの程度削減できるか?
  • RQ4提案されたしきい値戦略γ(t)は、偽陽性を最小限に抑えつつ、高い真正陽性検出率を維持できるか?
  • RQ5提案されたシステムのプロファイリングオーバーヘッドは実世界のアプリケーションでどの程度か?また、コード変更の規模に応じてどのようにスケーリングするか?

主な発見

  • AutoPerfは、全評価プログラムで平均4%のプロファイリングオーバーヘッドを達成しており、MySQLでは最大7%に達する。
  • 7つのベンチマークおよびオープンソースプログラムを対象に、10件の実世界のパフォーマンスバグをすべて検出しており、偽陰性はゼロである。
  • しきい値戦略γ(t)を用いることで、t=2における真正陽性率は1.0、偽陽性率は0.05に達し、UBLおよび任意のしきい値ベースラインを上回る性能を示した。
  • k-meansクラスタリングにより、トレーニング時間が2.5倍から5倍短縮されたが、高い精度を維持した。Memcachedでは、関数ごとのオートエンコーダと同等のF1スコアを達成した。
  • クラスタ数(k=2からk=4)が増加するにつれてF1スコアが向上し、k=4でピークに達した。これにより、クラスタリングのスケーラビリティと有効性が示された。
  • AutoPerfは、精度と一般化性能の両面で2つの最先端手法を上回り、フェイクシェアイングやNUMAレイテンシのような複雑な回帰を効果的に検出できた。

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

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

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

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