大規模科学技術計算のためのプログラムは、計算機の性能を最大限に引き出し効率的に実行されるべく、人手による職人芸的な技術を駆使した性能チューニングと呼ばれる行程を経て実行されます。このプロジェクトでは、理化学研究所計算科学研究機構と共に、専門家による性能チューニング過程の詳細をデータ化し蓄積した細粒度性能チューニング事例データベースを用いて、誰もが自身のプログラムに対して職人技に基づいた性能チューニング支援を受けられるようになることを目指し、以下のような課題に取り組んでいます。
- 細粒度チューニング事例データベースの構築
- チューニングに伴うソースコード変更パターンの自動同定※
- 機械学習による最適プログラム変更パターンの推定※
- 科学技術計算プログラム中に現れるループ構造の特性(期待実行効率など)の大規模調査※
- 機械学習によるループ構造の分類ならびにその特性の推定※
- Fortranプログラム構造理解支援ツールの開発※
- 自然言語処理に基づく科学技術計算プログラムの種別判定
※科研費(挑戦的萌芽研究)の助成を受けました。
論文
- Masatomo Hashimoto, Masaaki Terai, Toshiyuki Maeda, Kazuo Minami. An Empirical Study of Computation-Intensive Loops for Identifying and Classifying Loop Kernels. In Proceedings of the 8th ACM/SPEC International Conference on Performance Engineering (ICPE2017), pp. 361-372, 2017.
[Paper][Slides](課題4,5に関連) - Masatomo Hashimoto, Masaaki Terai, Toshiyuki Maeda, and Kazuo Minami. Extracting Facts from Performance Tuning History of Scientific Applications for Predicting Effective Optimization Patterns. In Proceedings of the 12th Working Conference on Mining Software Repositories (MSR2015), pp. 13-23, 2015. [Paper](課題2,3に関連)
ポスター
- Masatomo Hashimoto, Masaaki Terai, Toshiyuki Maeda, Kazuo Minami. CCA/EBT: Code Comprehension Assistance Tool for Evidence-Based Performance Tuning. International Conference on High Performance Computing in Asia-Pacific Region (HPCAsia2018), Tokyo, Jan. 28-31, 2018. [Poster](課題5,6,7に関連)
ソフトウェア
- CCA/EBT: Code Comprehension Assistance for Evidence-Based performance Tuning. [GitHub](課題5,6,7に関連)
共同研究
- 性能解析および性能チューニングのための解析支援ツールを用いたアプリケーションソフトウェアのプログラムソースコード解析・チューニング,ジャパンメディカルデバイス株式会社,2022-2026.
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.
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
- Masatomo Hashimoto, Masaaki Terai, Toshiyuki Maeda, Kazuo Minami. An Empirical Study of Computation-Intensive Loops for Identifying and Classifying Loop Kernels. In Proceedings of the 8th ACM/SPEC International Conference on Performance Engineering (ICPE2017), pp. 361-372, 2017.
[Paper][Slides] - Masatomo Hashimoto, Masaaki Terai, Toshiyuki Maeda, and Kazuo Minami. Extracting Facts from Performance Tuning History of Scientific Applications for Predicting Effective Optimization Patterns. In Proceedings of the 12th Working Conference on Mining Software Repositories (MSR2015), pp. 13-23, 2015. [Paper]
Poster
- Masatomo Hashimoto, Masaaki Terai, Toshiyuki Maeda, Kazuo Minami. CCA/EBT: Code Comprehension Assistance Tool for Evidence-Based Performance Tuning. International Conference on High Performance Computing in Asia-Pacific Region (HPCAsia2018), Tokyo, Jan. 28-31, 2018. [Poster]
Software
- CCA/EBT: Code Comprehension Assistance for Evidence-Based performance Tuning. [GitHub]