[論文レビュー] Collective Mind, Part II: Towards Performance- and Cost-Aware Software Engineering as a Natural Science
本稿では、実行時間、エネルギー消費、その他のコストを意識したソフトウェア工学を可能にする、パブリックで協働的なインfraストラクチャ「Collective Mind」を提案する。このインフラは、幅広いハードウェアプラットフォーム across して継続的な自動チューニングと知識共有を可能にする。軽量なラッパーと中央集権のリポジトリを用いることで、ハードウェア構成に応じた最適化を追跡し、実行時間、エネルギー、その他のコストのパレート最適解を、クラウドソーシングによる実験と機械学習によって実現する。
Nowadays, engineers have to develop software often without even knowing which hardware it will eventually run on in numerous mobile phones, tablets, desktops, laptops, data centers, supercomputers and cloud services. Unfortunately, optimizing compilers are not keeping pace with ever increasing complexity of computer systems anymore and may produce severely underperforming executable codes while wasting expensive resources and energy. We present our practical and collaborative solution to this problem via light-weight wrappers around any software piece when more than one implementation or optimization choice available. These wrappers are connected with a public Collective Mind autotuning infrastructure and repository of knowledge (c-mind.org/repo) to continuously monitor various important characteristics of these pieces (computational species) across numerous existing hardware configurations together with randomly selected optimizations. Similar to natural sciences, we can now continuously track winning solutions (optimizations for a given hardware) that minimize all costs of a computation (execution time, energy spent, code size, failures, memory and storage footprint, optimization time, faults, contentions, inaccuracy and so on) of a given species on a Pareto frontier along with any unexpected behavior. The community can then collaboratively classify solutions, prune redundant ones, and correlate them with various features of software, its inputs (data sets) and used hardware either manually or using powerful predictive analytics techniques. Our approach can then help create a large, realistic, diverse, representative, and continuously evolving benchmark with related optimization knowledge while gradually covering all possible software and hardware to be able to predict best optimizations and improve compilers and hardware depending on usage scenarios and requirements.
研究の動機と目的
- 展開先のターゲットについての事前知識がなくとも、進化し続ける異種のハードウェアプラットフォームにわたるソフトウェア最適化の増大する課題に対処すること。
- コンパイラのフラグや設定の探索空間が常に拡大する中で、現在のコンパイラが最適化の機会を十分に活用できないという限界を克服すること。
- 現実世界の環境でソフトウェア最適化、パフォーマンスメトリクス、ハードウェアの特徴を継続的に共有・追跡できる、スケーラブルでコミュニティ主導のシステムを構築すること。
- クラウドソーシング、ビッグデータ分析、機械学習技術を統合することで、継続的かつ再現可能な実験と知識発見を可能にすること。
- 実用的なソフトウェア・ハードウェア共同設計を支援するため、実世界のアプリケーション向けに成長し、代表的かつ進化を続けるベンチマークと最適化知識の蓄積を提供すること。
提案手法
- コンパイルフラグ、並列化パラメータ、アルゴリズムのバリエーションといった設定オプションを公開するため、ソフトウェアコンポONENT(「計算的種」)に軽量ラッパーを適用する。
- これらのラッパーをパブリックな Collective Mind リポジトリおよび自動チューニングインfraストラクチャと統合し、多様なハードウェアプラットフォーム across してパフォーマンスおよびコストメトリクスを収集する。
- Collective Mind ノードを介したクラウドソーシングにより、時間のかかる自動チューニングタスクを一般のAndroidデバイスやその他のシステムに分散処理する。
- 複数目的最適化技術を用いて、実行時間、エネルギー、メモリ、コードサイズなど複数のコストを同時に最小化するパレート最適な設定を同定する。
- JSONベースのAPIとウェブサービスを用いて、知識リポジトリへのプログラム的アクセスを可能にし、IDE、Docker、ベンチマークツールとの統合を支援する。
- Wikipediaのような手動分類と、アクティブラーニングや特徴選択を含む自動データ分析を併用し、最適化の成功をソフトウェア入力、ハードウェア特徴、システム構成と関連付ける。
実験結果
リサーチクエスチョン
- RQ1協働的でコミュニティ主導のインfraストラクチャは、多様なハードウェアプラットフォームにわたる最適なソフトウェア最適化の発見と共有をどのように改善できるか?
- RQ2一般のデバイスを活用したクラウドソーシングによる自動チューニングは、高性能なソフトウェア設定の特定に要する時間とコストをどの程度削減できるか?
- RQ3統一的で継続的に進化する最適化知識のリポジトリは、産業界におけるコンパイラチューニングとハードウェア検証をどのように改善できるか?
- RQ4複数目的最適化とパレートフロンティア分析の活用は、競合するパフォーマンスおよびコストメトリクスのトレードオフを特定する上でどの程度有効か?
- RQ5このようなシステムは、ソフトウェア工学およびシステムパフォーマンス分野における再現可能で持続可能かつアーティファクト評価可能な研究を、どのような形で支援できるか?
主な発見
- Collective Mind インfraストラクチャは、約300種のソフトウェア種にわたって約15,000のデータセットを収集することに成功し、スケーラビリティと現実世界への適用可能性を示した。
- 産業パートナーは、ARMおよびIntelプロセッサ向けに自社のGCCコンパイラヒューリスティクスを強化するためにこのシステムを活用し、測定可能なパフォーマンス向上を達成するとともに、ハードウェア検証中にアーキテクチャ的エラーを発見した。
- 顧客の静的コンパイル済み画像処理アプリケーションが、エネルギー消費を最小限に抑え、開発時間と市場投入までの期間を短縮しながらパフォーマンスを最大化する自己チューニングシステムに変換された。
- 本アプローチにより、多面体のソースツーソース変換やランタイム適応といった高度な最適化技術が、統合的かつ拡張可能なフレームワークに統合された。
- 本システムは、大規模で現実的かつ継続的に進化するベンチマークと最適化知識の蓄積を可能にし、クロスプラットフォーム比較やモデル学習を促進した。
- パブリックリポジトリとオープンソースインfraストラクチャのおかげで、学術界と産業界の協力が促進され、アーティファクト評価と持続可能なソフトウェア工学の実践が支援された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。