事例に基づくプログラム性能チューニング支援 Evidence-Based Performance Tuning

thumb image
大規模科学技術計算のためのプログラムは、計算機の性能を最大限に引き出し効率的に実行されるべく、人手による職人芸的な技術を駆使した性能チューニングと呼ばれる行程を経て実行されます。このプロジェクトでは、理化学研究所計算科学研究機構と共に、専門家による性能チューニング過程の詳細をデータ化し蓄積した細粒度性能チューニング事例データベースを用いて、誰もが自身のプログラムに対して職人技に基づいた性能チューニング支援を受けられるようになることを目指し、以下のような課題に取り組んでいます。

  1. 細粒度チューニング事例データベースの構築
  2. チューニングに伴うソースコード変更パターンの自動同定※
  3. 機械学習による最適プログラム変更パターンの推定※
  4. 科学技術計算プログラム中に現れるループ構造の特性(期待実行効率など)の大規模調査※
  5. 機械学習によるループ構造の分類ならびにその特性の推定※
  6. Fortranプログラム構造理解支援ツールの開発※
  7. 自然言語処理に基づく科学技術計算プログラムの種別判定

科研費(挑戦的萌芽研究)の助成を受けました。

論文

ポスター

ソフトウェア

  • CCA/EBT: Code Comprehension Assistance for Evidence-Based performance Tuning. [GitHub](課題5,6,7に関連)
The process of performance tuning still remains more or less manual and requires a great deal of time and effort, although a number of studies on auto-tuning systems are conducted. Auto-tuning systems rely on empirical techniques, which evaluate possible implementations of a computation to spot the best one in an automated manner. However, it suffers from combinatorial explosion of the search space. For example, approximately a hundred of flags for performance tuning are available in the GNU compiler collection (GCC), which forces us to explore an extremely large search space of possible candidates.
Accordingly, scientists and/or tuning experts have a tendency to make decisions on what to be explored just based on their intuition or good sense of tuning. It is almost impossible to teach others about the intuition or the sense unlike knowledge of numerical algorithms, compiler optimizations, or computer architectures.
We advocate evidence-based performance tuning (EBT) after evidence-based medicine (EBM). While the original EBM emphasizes teaching the practice of medicine and improving decisions by individual physicians, EBT stresses teaching the practice of performance tuning and improving decisions by individual tuners. Just as EBM, EBT deprecates intuition, unsystematic experience, and computer scientific rationale as sufficient grounds for decision making in performance tuning. It facilitates the use of database of facts extracted from tuning histories of applications to navigate the search space.

Papers

Poster

Software

  • CCA/EBT: Code Comprehension Assistance for Evidence-Based performance Tuning. [GitHub]

2017.07.10

Members