実行時情報を用いて通信を最適化するPCクラスタ上の並列化コンパイラ

Slides:



Advertisements
Similar presentations
G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
Advertisements

HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
コンピュータプラクティ スⅠ 比較実験 水野嘉明. 本日の予定 計算量について 「比較実験」  パラメータを変化させての比較 ⇒ 実験1  二つのプログラムの比較 ⇒ 実験2  実験レポート R3として提出 2.
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
Webプロキシサーバにおける 動的資源管理方式の提案と実装
キャッシュヒント自動付加を用いたソフトウェア高速化
コンピュータプラクティス I 再現性 水野嘉明
Chapter11-4(前半) 加藤健.
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Capter9 Creating an Embedded Test Bench ( )
クラスタコンピューティングの 並列環境と性能
PCクラスタにおける2個体分散遺伝的アルゴリズムの高速化
DNASシステム上のアプリケーション起動シーケンスのための基盤であるdsh部分の性能評価
神奈川大学大学院工学研究科 電気電子情報工学専攻
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
分散遺伝的アルゴリズムによる各種クラスタのベンチマーク
各種PC クラスタの性能評価 同志社大学 工学部 廣安 知之 三木 光範 谷村 勇輔.
プログラムの動作を理解するための技術として
Copyright Yumiko OHTAKE
ネットワーク性能に合わせた 分散遺伝的アルゴリズムにおける 最適な移住についての検討
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
ノードの情報を動的に反映したオーバレイネットワークの構築
ノードの情報を動的に反映したオーバレイネットワークの構築
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
メッシュネットワークに関する研究 ーチャネル割り当ての一手法ー
Flyingware : バイトコード変換による 安全なエージェントの実行
京都大学大学院医学研究科 画像応用治療学・放射線腫瘍学 石原 佳知
過負荷時のWebアプリケーションの 性能劣化を改善する Page-level Queue Scheduling
プログラム実行履歴を用いたトランザクションファンクション抽出手法
Occam言語による マルチプリエンプティブシステムの 実装と検証
OpenMPハードウェア動作合成システムの検証(Ⅰ)
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
高速剰余算アルゴリズムとそのハードウェア実装についての研究
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
視点移動カメラにおけるカメラキャリブレーション
動的依存グラフの3-gramを用いた 実行トレースの比較手法
最適化の方法 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第11章.
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
実行時情報に基づく OSカーネルのコンフィグ最小化
各種ルータに対応する P2P通信環境に関する研究
通信機構合わせた最適化をおこなう並列化ンパイラ
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
実行時の情報を用いてプロセッサ間の通信を最適化するコンパイラ
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
バイトコードを単位とするJavaスライスシステムの試作
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
岩澤全規 理化学研究所 計算科学研究機構 粒子系シミュレータ研究チーム 2015年7月22日 AICS/FOCUS共催 FDPS講習会
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
実行時の情報を用いて通信を最適化するコンパイラ
設計情報の再利用を目的とした UML図の自動推薦ツール
「マイグレーションを支援する分散集合オブジェクト」
オープンソースソフトウェアに対する コーディングパターン分析の適用
A-17 検索履歴のプライバシーを秘匿した ユーザクラスタリング
Cソースコード解析による ハード/ソフト最適分割システムの構築
表紙 分散遺伝的アルゴリズムのための 新しい交叉法.
理工学部情報学科 情報論理工学研究室 延山 周平
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
Webページタイプによるクラスタ リングを用いた検索支援システム
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
アーキテクチャパラメータを利用した並列GCの性能予測
並列処理プロセッサへの 実数演算機構の開発
まさ 2003/06/12 卒論その後の進捗 まさ 2003/06/12.
Presentation transcript:

実行時情報を用いて通信を最適化するPCクラスタ上の並列化コンパイラ 横田 大輔(筑波大学) 千葉 滋(東京工業大学) 板野 肯三(筑波大学)

背景と目的

計算物理のプログラム =ある特定の計算パターンの 莫大な繰り返し 精度(反復解法) シミュレーション時間 (× NAS Para. BT:200,FT:6,IS:10….)

計算物理の最適化 最適化に時間をかけられる 実行時間そのものが長い(数週間~数ヶ月) コードの核になる部分は繰り返される 特定の部分はわずかな時間短縮でも劇的な効果

計算物理のための自動並列化Fortranコンパイラ コンパイル中にソースコードの一部をプレ実行して最適化に使おう ソースコードに依存しない解析力 通信パターンが直接わかる 解析時間は延びる

動的な手法を用いたコンパイラ 動的な手法で通信を解析 コンパイル時にコードの一部を実行 ハードウェアに依存した通信の最適化 プレ実行=PCクラスタ 本実行=並列計算機 (まどろっこしい?) ハードウェアに依存した通信の最適化 通信をブロックストライドにまとめる TCW再利用型の通信を利用する 通信が少なくなるようにループを区切る

プレ実行と本実行 プレ実行をPCでやる理由 本実行を並列計算機でやる理由 コンパイラを実機で動かせない バッチ方式だと不利 餅は餅屋(CP-PACS/Pilot3(SR2201): 300MB/secの転送速度、実測値も遜色なし。)

開発したFortranコンパイラ 入力はHPFのサブセット 出力はCP-PACS/Pilot3用プログラム BLOCK,INDEPENDENT,PROCESSOR,… 出力はCP-PACS/Pilot3用プログラム RDMA(ブロックストライド+TCW再利用型通信)を駆使したコード SPMDなFortran

これまでの我々の研究との比較 今回:プレ実行=PCクラスタ SWoPP00,IPSJ並列処理特集号00: プレ実行=1台のPC 各プロセッサの通信パターンが異なってもよい 通信面以外はつりあう 通信は実際にはおこなわない (通信パターンが通信によって決まるのは×) コンパイラも並列アプリケーションの一つ SWoPP00,IPSJ並列処理特集号00: プレ実行=1台のPC 並列機とはつりあわない→制限→問題 (プレ実行するソースコードは1PE分、全てのプロセッサは同じパターンで通信するソースしかコンパイルできない。)

技術的な話

CP-PACS/Pilot3 ブロックストライド (ハードウェアサポート) TCW再利用型通信 (ハードウェアサポート) 片側通信 クロスバーによる接続 2048PE(CP-PACS),128PE(Pilot3)

ブロックストライド ブロックストライド 1 2 3 4 通常の通信

TCW再利用型通信 レイテンシの少ない通信 事前にセッティング 同じパターンの通信が繰り返される場合に有効 IDで送信元と受信先を選択 セッティング自体は比較的重い 同じパターンの通信が繰り返される場合に有効 IDで送信元と受信先を選択

本方式の処理の流れ

本コンパイラが行う最適化 通信量が少なくなるようにループを分割する 通信をブロックストライドにまとめる 通信のパラメータがループに依存しない場合、TCW再利用型の通信を使う

最適なループの分割 通信量が少なくなるようにループを分割する すべてのプロセッサに関して、ループの反復あたりの通信量を調べる 通信量が少ない反復を優先的にプロセッサに分ける

ブロックストライドの利用(1/2) 通信をブロックストライドにまとめる 実行時の情報をヒントにする INDEPENDENT命令をヒントに通信を融合 INDEPENDENT命令があるループは反復の順番を無視していい 同時に発行できる通信の塊からブロックストライドを切り出す

ブロックストライドの利用(2/2)

実験的な話

実装 OS:Linux Red Hat7.1 HW:PIII733hz,128MbytesのPCクラスタ バックエンド:日立製Fortran90コンパイラ(02-06-/C+02-06-XF+02-06-XJ)

予備実験 FT class-A (NAS Para.:HPF版) 繰り返し数=6 pde1 (Genesis Distribute Benchmarks) 規模=7,繰り返し数=1000 Pilot3上の1,4,8プロセッサ コンパイル環境はPCクラスタの4+(1),8+(1)ノード

実行結果(FT:class-A) (sec) ※ 反復回数が足りない!!

実行結果(pde1:N=7,iter=1000) (sec) ※ 反復回数が十分!!

まとめ ソースコードのうち、実行時間の支配的な部分を最適化した 最適化のための解析は動的に行った 前回の実装と違い、プロセッサの通信パターンが異なっても並列化可能(PCクラスタ) 計算物理に近いpde1では良好な結果が得られた NAS Para. BTは通信履歴があふれて並列化できなかった

関連研究 コードを書き換える パラメータを調整する 自動適応並列プログラム性能最適化ツールTEA Expert 佐藤三久,建部修見,関口智嗣,朴泰祐 パラメータを調整する ループ並列化の可否、tilling、serializing Voss, Eigenmann,

今後の課題 スケーラビリティの改善 SHADOW領域の対応 より物理シミュレーションに近い実験 通信パターンが変るプログラムは? 通信履歴の爆発(NAS Para.×BT) ソースコードの膨張 SHADOW領域の対応 より物理シミュレーションに近い実験 通信パターンが変るプログラムは?

まとめ2 ソースコードのうち、実行時間の支配的な部分を最適化した 最適化のための解析は動的に行った FTとpde1の実効時間を測定した 対象はブロックストライドとTCW再利用型通信、ループの分割である 最適化のための解析は動的に行った 重いがソースコードの影響を受けにくい FTとpde1の実効時間を測定した 計算物理に近いpde1では良好な結果が得られた