アドバンスト並列化コンパイラ 技術研究開発プロジェクトの概要 ·...
TRANSCRIPT
1
プロジェクトリーダ
早稲田大学理工学部電気電子情報工学科
http://www.kasahara.elec.waseda.ac.jp
アドバンスト並列化コンパイラ技術研究開発プロジェクトの概要
2
Advanced Parallelizing Compiler Technology
開発目標: 実効性能の倍増Goal: Double the effective performance
性能
1980
HPCの理論性能と実効性能の推移
年20001990
理論性能曲線(カタログ性能)
技術開発項目 Contents of Research and Development ①アドバンスト並列化技術の開発
Development of advanced parallelizing compiler ②並列化コンパイラ性能評価技術の開発Development of performance evaluation technology for parallelizing compilers
ギャップ拡大
伸びが鈍化Slow down実効性能曲線
(実際にアプリケーションを 動作させた時の性能)
IT,バイオ技術、デバイス技術開発、地球環境、次世代VLSI設計、金融,気象予測、エネルギー、宇宙航空開発、自動車開発、電子商取引Information technology, Bio-technology, Device technology, Earth environment, Next-generation VLSI design, Financial technology, Weather forecast technology, Energy technology, Space development, Automobile technology, Electric Commerce
波及効果 Ripple Effect①国際競争力の高い次世代PC、HPCの開発
Development of internationally competitive next generation PC and HPC②独創的自動並列化コンパイラ技術の実用化 Putting the innovative automatic parallelizing compiler technology
to practical use③競争力に優れた次世代プロセッサチップの開発 (シングルチップ・マルチプロセッサ開発)と市場獲得
Development and market acquisition of next generationsingle-chip multiprocessors
④下記の様々な分野での研究開発促進Boosting R&D in the following many fields:
本技術開発
背景と課題 Background and Problems ①並列処理がPCからHPCまでのコア技術として採用 Adoption of parallel processing as a core technology on PC to HPC ②ITにおけるソフトウェア技術の重要性増大
Increase of importance of software technology on IT ③価格性能比、使いやすさの達成が必須
Need for improvement of cost-performance and usabilityPerformance
Theoretical maximum performance
Effective Performance
Small “High Performance Computer” Market
Change of theoretical maximum performance and effective performance of HPC
year
Expa
nd G
ap
APC
Pro
ject
HPC市場小
①価格性能比の低下Low cost-performance
②十分な性能を出せないInsufficient performance
③使い難いLow usability
委託先:委託先:委託先:委託先:JIPDEC 研究共同体:富士通 ,日立, 産総研, 早稲田大 再委託:再委託:再委託:再委託:東工大、電通大、東邦大
(2000.10.13 –2003.3.31)
アドバンスト並列化コンパイラ技術
3
• シングルチップ・マルチプロセッサからHPC(High Performance Computer)までのマルチプロセッサアーキ
テクチャの普及
• プロセッサの増加と共に
– ハードウェア最高性能と実効性能のギャップ拡大
– 価格性能比の劣化
– 高度な専門知識を要する最適化必要
市場小
• アドバンスト並列化コンパイラ
– 実効性能・価格性能比・使い易さの向上のために必須
自動並列化コンパイラの必要性
4
• ループ自動並列化(イリノイ大、メリーランド大、スタンフォード大)
• データ依存解析
– GCD, Banerjee’s inexact / exact, Omega, シンボリック解析,IPA(手続き間解析), シンボリック解析, 実行時解析, etc
• ループリストラクチャリング(自動プログラム書き換え)– アンローリング, ストリップマイニング, ループ融合,
ユニモジューラ変換(スキューイング,リバーシング,インターチェンジ), アレイプライベタィゼーション, タイリング, etc
イリノイ大:Polaris, Parafrase2, Promise(一部カリフォルニア大アーバインと共同)
スタンフォード大: SUIF, NCI(National Compiler Infrastructure)成熟期に達し、今後の大幅な性能向上困難(アムダールの法則)
複雑なイタレーション間データ依存・制御依存による逐次ループ存在
ループ回転数がプロセッサ数より少ない場合の階層的並列化必要
並列化コンパイラ研究・開発の現状
5
マルチグレイン並列化の必要性
HPC:ループ並列化の限界技術的成熟, 並列化困難なループの存在
プロセッサ増加と共に無視していた逐次ループが性能向上に悪影響(アムダールの法則)
• マイクロプロセッサ:命令レベル並列性の限界主流のスーパースカラ/VLIWは命令レベル並列性の利用のみ
集積度向上と共にハードウェア複雑化(命令発行数増加/機能ユニット増加/投機実行/分岐予測等)しているが使用トランジスタ数に対しスケーラブルな性能向上困難 (2-3倍が上限)
プロセッサ数・トランジスタ数の増加に対しスケーラブルな性能向上を可能とするアーキテクチャ及びコンパイル技術必要
• マルチグレイン自動並列化– シングルチップ・マルチプロセッサからHPCまでの実効性能,価格性能比,
使い易さを向上
– マルチグレインコンパイラと協調して最高性能を出すアーキテクチャの開発により競争力のあるHPC,マイクロプロセッサの開発
6
マルチレベル並列処理
PROMIS compilerプロジェクト
イリノイ大Parafrase2(HTG: Hierarchical Task Graphを用いた階層的タスク並列化)
カリフォルニア大アーバイン EVE (VLIW細粒度並列化)
プロトタイプは共同研究、現在はイリノイ大にて実用レベル
コンパイラの開発 NANOS compiler (NthLIB, extended OpenMP)
Technical University of Catalunya(UPC) Parafrase2の出力するHTGに基づいてネストされたタスクの並列化を行
うランタイムライブラリの開発
OpenMPを階層的なスレッド生成ができるように拡張。
標準への導入は難航。
マルチグレイン並列化コンパイラ技術の研究動向
7
OSCAR 並列化コンパイラにおける
マルチグレイン並列化• 粗粒度タスク並列性
– サブルーティン, ループ,基本ブロック間の並列性
– コンパイル時のスタティックスケジューリングと実行時のダイナミックスケジューリングを各階層の並列性等により使い分け、タスクをプロセッサあるいはプロセッサグループへスケジューリング。
• ループ並列性– ループイタレーション間の並列性
– イタレーション集合をプロセッサへスケジューリング
• (近)細粒度並列性– 基本ブロック内代入文間並列性
– スタティックにプロセッサにスケジューリング
各並列性を階層的に組み合わせた利用
8
アドバンスト並列化コンパイラプロジェクトにおける研究開発技術
自動マルチグレイン並列化技術の開発 マルチグレイン並列性抽出技術
(ループ並列性+粗粒度タスク並列性+(近)細粒度並列性)
データ依存解析技術 (手続き間解析,実行時解析) 自動データ分散技術 (分散キャッシュ,分散共有メモリの有効利用) 投機的実行技術 (ハードウェア利用率向上)
スケジューリング技術 (データ転送最小化、処理とデータ転送のオーバーラップによるオーバーヘッド隠蔽)
並列性記述言語拡張版の作成 ( OpenMPのコンパイラモジュール間中間言語としての利用)
並列化チューニング技術の開発– プログラム可視化技術, 動的情報活用技術
性能評価技術– 個別機能評価手法の開発– 総合性能評価評価手法の開発
9
新しい機能の利用を可能とする
拡張機能を備えたOpenMPコンパイラ
実行情報収集機構
投機実行支援機構
MEMORY
CPUCPUCPUCPU
産総研のプロジェクトの開発ターゲットはこれ!
チップマルチプロセッサ(FPGAによるエミュレーション)
リコンフィギュアラブル実験装置
産総研内別プロジェクトで設計
APCプロジェクトで開発される様々なコンパイラモジュール群
APCプロジェクトで共通のOpenMP
インターフェースを採用
本プロジェクト備品として購入
周辺支援ソフトウェアも重要
OMNI OpenMPコンパイラをベースとして活用
(開発の効率化)
将来の(=存在しない)並列計算機を対象とした開発を可能とする仕掛け
動的情報収集機構および投機実行支援機構を備えたチップマルチプロセッサ向け並列化コンパイラの研究開発
産総研
10
(開発推進委員会, 技術委員会, ネットワーク会議含まず)
開発推進委員会 2回開催:2000.10.13, 2001/5/9,研究開発進め方技術委員会 3回開催 2000/12/14, 2001/1/31, 2/20目標設定目標設定目標設定目標設定, 研究計画研究計画研究計画研究計画,研究会の進め方研究会の進め方研究会の進め方研究会の進め方, 年度末報告年度末報告年度末報告年度末報告,知財権知財権知財権知財権,成果発表法成果発表法成果発表法成果発表法,予算予算予算予算インターナショナルアドバイザリコミッティインターナショナルアドバイザリコミッティインターナショナルアドバイザリコミッティインターナショナルアドバイザリコミッティ
海外との協調, 目標設定の妥当性, 成果の海外へのアピール, 評価委員会の参考として世界的権威に評価戴く
Prof. Padua (Univ. of Illinois)並列コンパイラの世界的権威Parafrase , Cedar, PolarisProf. Lam(Stanford Univ.) Suif, NCI(National Compiler Infrastructure), Suif Explorer コンパイラ、チューニングツール
Prof. Eigenmann(Purdue Univ.) Polaris, SPEC HPC コンパイラ、性能評価Prof. Irigoin(Ecole des Mines de Paris) PIPS Automatic Parallelizer手続き間解析海外研究者招聘海外研究者招聘海外研究者招聘海外研究者招聘
Purdue大Prof. Eigenmann 2000/10/18 “Polaris コンパイラと性能評価”Delaware大 Prof. Gao 2001/3./22-23 “コンパイラとアーキテクチャの協調”
PACT( IEEE ACM Int’l Conf. on ParallelArchitectures and Compilation Techniques)の設立者, 中国並列化コンパイラ研究委員会アドバイザ
平成12年度APC委員会活動概要
11
技術研究会 10回開催 2000/10/24, 10/31, 11/15, 11/22, 12/6, 12/.19, 2001/ 1/10, 1/31,2/20, 3/21(本年度報告会)
研究計画,研究報告, 議論, 海外調査報告SC2000, ASPLOS-IX, Cluster2000, MICRO33, HiPC2000, HPCA, MICRO
事務連絡会 2回開催 2000/10/23, 12/27予算,出向, 業務管理委託, 中間検査等
知的財産権検討会 1回開催 2000/10/12(技術委員会でも議論)アドバンスト並列化コンパイラ技術研究体の知的財産権取扱い規程 OpenMP検討会1回開催 2001/2/20 OpenMP拡張仕様の検討
(技術研究会, 事務連絡会, 知財権, OpenMP検討会等,ネットワーク会議含まず)
平成12年度APC委員会活動概要
12
(2001/1/31 技術委員会)
<達成目標基本計画抜粋>
(1)自動マルチグレイン並列化技術の開発,(2)並列化チューニング技術の開発
(1) 自動的にプログラム中の各階層から並列性を抽出し効果的な並列処理ができるようにするプラットフォームフリーな自動マルチ
グレイン並列化技術を確立する。
(2) 動的解析によるプロファイル情報等を用いた対話型の並列化チューニング技術を確立する。
(3) 上記2.にて開発した技術を評価するために、出力された並列性記述言語拡張版を実際のプラットフォームとなるマルチプロセッ
サコンピュータシステム上で実行する。その際、研究開発項目[2]「並列化コンパイラの性能評価技術の開発」によって指定される評
価手法を用いて、種類の異なる複数のSMP(Shared Memory Multiprocessor)システムにおいて、既存の単一粒度での並列性抽出を
行う自動並列化コンパイラの性能に比較し、おおむね2倍以上の性能向上を達成することを目標とする。
(1)個別機能評価手法の開発 , (2)総合性能評価手法の開発研究開発された手法を用いた研究開発項目[1]「アドバンスト並列化コンパイラ技術の開発」の評価の実施を通じて、SMPシステムを対象とした並列化コンパイラ のより客観的な性能評価技術を確立する。
<明確化案>
•プロジェクト開始時点の市販の単一粒度並列化コンパイラの性能に対して、SMP上での処理性能をおおむね倍増させる(処理時間をおおむね1/2とする)。 この時使用するプロセッサ台数は、使用可能なプロセッサ台数までで各コンパイラが最小の処理時間を与える台数とする。
•総合評価で使用するプログラムは客観性を保つため、本数は少なくなってもベンチマークプログラムより選ぶ。その際選択した理由を明確化する。
基本計画における目標の明確化