通信機構合わせた最適化をお こなう並列化ンパイラ 横田大輔† 千葉滋† ‡ 板野肯三† †筑波大学電子・情報工学系 ‡科学技術振興事業団さきがけ研究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を用いることができた • エグゼキュータ部を最適化し、さらに高速化で きた 今後の課題 • 通信+コードの最適化Ⅱによるコンパイラの実 装
© Copyright 2025 ExpyDoc