通信機構合わせた最適化をおこなう並列化ンパイラ

通信機構合わせた最適化をお
こなう並列化ンパイラ
横田大輔† 千葉滋† ‡ 板野肯三†
†筑波大学電子・情報工学系
‡科学技術振興事業団さきがけ研究21
高速な並列コードを得たい

ハードウェアの活用
• ハードウェアが持つ特殊な通信機能
• RDMA(CP-PACS/Pilot-3:日立SR2201)

ソフトウェアの解析
• 通信を自動最適化したい
• 通信の最適化には通信パターンの把握が必要
• 現在のところ静的な解析では限界がある
本研究の目的

動的な解析による通信パターンの把握
• インスペクタ・エグゼキュータの応用

コンパイラによるRDMAの活用
• HPFコード→RDMAを利用したSPMDコード
CP-PACS/Pilot3



2048PE(CP-PACS)/128PE(Pilot3)
分散メモリ機
特殊な通信機構(RDMA)
•
•
•
•
片側通信
送信先のメモリに直接書き込む
通信を事前にセッティングできる
ブロックストライドによる送信が可能
RDMA
送信側メモリ
通信
受信側メモリ
4~
65532
byte
4~
1020byte
RDMAによる通信
インスペクタ・エグゼキュータ

通信の解析が静的にできない場合に有効
• 通信パターンの解析を実行時に行う

インスペクタ処理は比較的重たい
• 同じ通信パターンが繰り返されると有効

定型的なコードの挿入で並列化できる
インスペクタ・エグゼキュータ
インスペクタ ・通信パターンの解析
通信
・目的データの交換
処理
エグゼキュータ
本研究が提案する手法(1/2)

HPF命令+実行時の情報による通信の
最適化
• 通信をブロックストライドにまとめ、通信回数を
減らす
• INDEPENDENT命令が許す範囲で通信を移動

解析の高速化
• 通信パターンに影響しないコードを実行しない
• 追加した命令でユーザが指示可能
本研究が提案する手法(2/2)

通信の最適化
• RDMAの活用
• インスペクタ・エグゼキュータの応用

通信+コードの最適化Ⅰ
• インスペクタ部を実行した後、エグゼキュータ部を最
適化コンパイル(1CPU)

通信+コードの最適化Ⅱ(実装中)
• インスペクタ部を実行した後、エグゼキュータ部を最
適化コンパイル(多CPU)
通信の最適化(1/2)
インスペクタ ・通信パターンの解析
通信の最適化
通信
・目的データの交換
処理
エグゼキュータ
通信の最適化(2/2)

実行速度が速い
• 実行時情報を用いて通信関連のコードを最適
化

全てのプロセッサが同じパターンで通信し
てなければならない
• 1プロセッサ分しか通信パターンを解析しない
通信+コードの最適化Ⅰ(1/2)
ソースコード
インスペクタ用
コード生成
インスペクタ実行
通信履歴
テーブル
1CPUの計算機
コード生成
並列コード
通信+コードの最適化Ⅰ(2/2)

実行速度が速い
• 実行時情報を用いて通信関連のコードをさら
に最適化

全てのプロセッサが同じパターンで通信し
てなければならない
• 1プロセッサ分しか通信パターンを解析しない

コンパイル時間の増加
• コンパイル中にソースコードの一部分を実行
通信+コードの最適化Ⅱ(1/2)
ソースコード
インスペクタ用
コード生成
インスペクタ実行
コード生成
多CPUの
計算機
並列コード
通信履歴
テーブル
通信+コードの最適化Ⅱ(2/2)

実行速度が速い
• 実行時情報を用いて通信関連のコードをさら
に最適化

各プロセッサは通信パターンが異なっても
コンパイル可能
• 全プロセッサ分の通信パターンを解析

コンパイル時間の増加
• コンパイル中にソースコードの一部分を実行
実装



FreeBSD4.2
HPF(サブセット)を入力としCPPACS/Pilot3用の並列なFortran90を
出力
出力されるコードはRDMAによるブロック
ストライド通信を用いたSPMDコード
実験(1/2)

コンパイル時間と実行時間の測定
• コンパイル環境は
FreeBSD4.2,PentiumII300Mhz,メモリ
128M
• 実行環境はPilot3上の4~64PE

ベンチマーク
• pde1(GENESIS Distributed Memory
Benchmarks)
• shallow(Shallow Water Benchmark)
実験(2/2)

他方式との比較
• 通信の最適化
• 通信+コードの最適化Ⅰ
• 商用並列化コンパイラ (日立製98年バージョン0205)
• 素朴なインスペクタ・エグゼキュータ
結果(pde1:実行時間)
方式
商用並列化コンパイラ
素朴なインスペクタ・
エグゼキュータ
通信の最適化
通信+コードの最適化Ⅰ
実行時間(sec)
138400
9720
538
512
実行時間(pde1: N = 7, プロセッサ数= 64)
結果(pde1:速度向上比)
結果(pde1:通信+コードの最適
化Ⅰコンパイル時間)
結果(shallow:実行時間)
方式
商用並列化コンパイラ
素朴なインスペクタ・
エグゼキュータ
通信の最適化
通信+コードの最適化Ⅰ
実行時間(sec)
11355
1021
201
191
実行時間 (shallow: N = 1024, プロセッサ数= 64)
結果(shallow:速度向上比)
結果(shallow:通信+コードの
最適化Ⅰコンパイル時間)
結論

コンパイラによるエグゼキュータ部の最適化は
効果があった
• 最大6%の速度改善

コンパイル時間は容認できる
• コンパイル時間はプロセッサ数が増加すると減少
おわりに

実行時の情報を用いた通信の最適化
• 効果的にRDMAを用いることができた
• エグゼキュータ部を最適化し、さらに高速化で
きた

今後の課題
• 通信+コードの最適化Ⅱによるコンパイラの実
装