アーキテクチャパラメータを利用した並列GCの性能予測

Slides:



Advertisements
Similar presentations
1 広島大学 理学研究科 尾崎 裕介 石川 健一. 1. Graphic Processing Unit (GPU) とは? 2. Nvidia CUDA programming model 3. GPU の高速化 4. QCD with CUDA 5. 結果 6. まとめ 2.
Advertisements

G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
共有メモリ並列計算機上の スケーラブルな動的メモリ管理 モジュール
第3回 並列計算機のアーキテクチャと 並列処理の実際
第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
情報理工学系研究科 コンピュータ科学専攻 上嶋裕樹
CPUとGPUの 性能比較 -行列計算およびN体問題を用いて-
キャッシュ付PRAM上の 並列クィックソートと 並列マージソート
メモリコンシステンシモデル memory consistency model
クラスタの構成技術と クラスタによる並列処理
ヘテロジニアスマルチコアプロセッサ 環境を対象としたキャッシュシステム 自動生成ツールの開発
Chapter11-4(前半) 加藤健.
最新ファイルの提供を保証する代理FTPサーバの開発
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
全体ミーティング (4/25) 村田雅之.
分散コンピューティング環境上の Webリンク収集システムの実装
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
報告 (2006/9/6) 高橋 慧.
AllReduce アルゴリズムによる QR 分解の精度について
神奈川大学大学院工学研究科 電気電子情報工学専攻
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
多数の遊休PC上での 分散ゲーム木探索 導入 ゲーム木探索 ⇒遊休PCを利用して高速化 例)コンピュータ将棋における次手の計算
2007/1/18 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
理学部情報科学科 金田研究室 指導教官 金田 康正 工藤 誠
CSP記述によるモデル設計と ツールによる検証
ネットワーク性能に合わせた 分散遺伝的アルゴリズムにおける 最適な移住についての検討
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
速報: Boehm GC version 6.0α1 遠藤 敏夫.
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
型付きアセンブリ言語を用いた安全なカーネル拡張
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
オペレーティングシステムJ/K (実時間処理システム)
MPIによるwavからmp3圧縮の検証 情報論理工学研究室 04‐1‐47‐200 木村 惇一.
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
梅澤威志 隣の芝は茶色いか 梅澤威志
12/14 全体ミーティング 米澤研究室卒論生 山崎孝裕
オペレーティングシステム イントロダクション
Internet広域分散協調サーチロボット の研究開発
「コアの数なんて どうでもいい」 五島 正裕(東大).
私の立場 OSカーネルを手がけるエンジニア 大阪市立大学 創造都市研究科の学生
通信機構合わせた最適化をおこなう並列化ンパイラ
実行時情報を用いて通信を最適化するPCクラスタ上の並列化コンパイラ
VMMのソフトウェア若化を考慮した クラスタ性能の比較
目的:高速QR分解ルーチンのGPUクラスタ実装
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
Virtualizing a Multiprocessor Machine on a Network of Computers
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
「マイグレーションを支援する分散集合オブジェクト」
マイグレーションを支援する分散集合オブジェクト
Handel-Cを用いた パックマンの設計
高精細計算を実現するAMR法フレームワークの高度化 研究背景と研究目的 複数GPU間での袖領域の交換と効率化
社会の情報インフラストラクチャとして、高性能コンピュータおよびネットワークの重要性はますます増大しています。本研究室では、コンピュータおよびネットワークの高速化を狙いとする並列・分散情報処理の科学と技術に関する研究に取り組んでいます。効率のよいシステムの実現を目指して、下記の項目を追求しています。 ◇コンピュータアーキテクチャ.
「マイグレーションを支援する分散集合オブジェクト」
BSPモデルを用いた 並列計算の有用性の検証
理工学部情報学科 情報論理工学研究室 延山 周平
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
SMP/マルチコアに対応した 型付きアセンブリ言語
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
情報論理工学 研究室 第1回:並列とは.
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
分散メモリ型並列計算機上での行列演算の並列化
全体ミーティング (9/12) 村田 雅之.
局所性を考慮した共有メモリ並列計算機上の並列BIBOPアロケータ
Presentation transcript:

アーキテクチャパラメータを利用した並列GCの性能予測 東京大学 米澤研究室 遠藤 敏夫/田浦 健次朗/米澤 明憲

様々な並列アーキテクチャ 分散メモリマシン 共有メモリマシン(本研究の対象) プログラムの記述移植性があっても性能移植性があるとは限らない MPP クラスタ 共有メモリマシン(本研究の対象) SMP (symmetric multiprocessor) DSM (distributed shared memory) ソフトウェアDSM プログラムの記述移植性があっても性能移植性があるとは限らない

プログラム性能予測の必要性 性能の理由を定量的に議論できるモデルが欲しい 同一プログラムの速度がマシン毎に違うことも 実行速度 プロセッサ数 同一プログラムの速度がマシン毎に違うことも 理由はレイテンシの違い?メモリ構造の違い? 未知の計算機での速度を知りたい 今よりプロセッサ数が増えたら?通信が速くなったら? 性能の理由を定量的に議論できるモデルが欲しい

性能予測研究の動向(非常にいい加減) 本研究の対象: 分散メモリの研究 > 共有メモリの研究 共有メモリマシン(SMP, DSM) 分散メモリの研究 > 共有メモリの研究 明示的な通信 キャッシュミスによる通信 マイクロベンチマークの研究 規則的プログラムの研究 不規則的プログラムの 研究 > 本研究の対象: 共有メモリマシン(SMP, DSM) 不規則的プログラム(並列GC)

本研究の対象ハードウェア(1): Sun Enterprise 10000 CPU CPU CPU CPU cache cache cache cache 実際はメモリモジュールは16個 memory memory memory memory 64PE SMP・・・ メモリレイテンシは場所によらない レイテンシ: 約600ns(contentionなしの時) メモリ配置は自動的に均等に 一つの大きなメモリモジュールと考えて問題ない アクセス時のメモリ占有は約20ns (一つの大きなメモリモジュールと仮定した場合の計算上の値)

本研究の対象ハードウェア(2): SGI Origin 2000 CPU CPU CPU CPU cache cache cache cache memory memory memory memory 実際はCPU2個+メモリモジュール 1個で1ノード DSM・・・ ローカル/リモートでレイテンシに差 レイテンシ: ローカル約400ns, リモート600ns以上 メモリの配置は、最初にアクセスしたCPUにより決定 メモリモジュール毎の使用メモリの差がアクセス不均衡をひきおこし、メモリコンテンションをひきおこす アクセス時のメモリ占有は約200ns

本研究の対象ソフトウェア: 並列マークスイープGC[遠藤 et al. 97] sweep PEs Time ユーザプログラム GC ユーザプログラムを止め、全プロセッサが協調してマーク・スイープ(以下、マークフェーズに話を絞る) ユーザプログラムのオブジェクトグラフ = 並列GCのタスクグラフ オブジェクトグラフの幅 = GCの並列度 動的負荷分散によるスケーラビリティの達成

並列マークフェーズの詳細 処理概要 メモリアクセス内容 各CPUは自分のルートからオブジェクトを再帰的にマーク(マークビットON) マークスタックによる仕事管理 仕事のなくなったCPUは、他のCPUのマークスタックから仕事を盗む メモリアクセス内容 オブジェクトread キャッシュミスが性能に大きく影響 マークビットtest&set モデルに入れる(後述) 自分のマークスタックread/write ほとんどキャッシュにのる 他人のマークスタックread 回数は少ない

研究方針 簡単な性能予測モデルを提案 モデルによる予測値と実測値を比較 アーキテクチャの差異による性能差をとらえる (特に不規則的プログラムでは)正確な予測精度を達成するのは難しい。 精度を上げることよりも、以下の項目を重視する。 アーキテクチャの差異による性能差をとらえる 性能頭打ちの原因をとらえる プログラムの性質が原因?ハードウェアが原因? 最近のハードでは、メモリコンテンションに注目すべき LoPCモデルと、Cilk性能モデルを合わせたモデルを提案 モデルによる予測値と実測値を比較

LoPCモデル[M. Frank et al. 97] LoPC: 分散メモリマシンの性能モデルの一つ LogPモデル - バンド幅 + message contention contentionのコストを待ち行列理論により議論 本研究では共有メモリ(DSM/SMP)用にモデルを変更 共有メモリのキャッシュミス=分散メモリの通信

Cilkの性能モデル(1)[Blumofe et al. 94] 細粒度スレッド、動的負荷分散により、不規則的で効率的なプログラムを容易に記述可能 仕事量とクリティカルパスに基づいた性能モデルにより平均実行時間を保証 しかし、アーキテクチャの差異を考慮に入れていない

Cilkの性能モデル(2) T1: 全タスク量(1プロセッサでの実行時間) T∞: クリティカルパス長 のとき、 クリティカルパス中 のタスク 依存関係 T1: 全タスク量(1プロセッサでの実行時間) T∞: クリティカルパス長 のとき、 Pプロセッサでの平均実行時間 TP = O(T1/P + T∞) ただし実用上は、 TP = T1/P + c∞T∞ (c∞は負荷分散のコストなどに依存する定数)

本研究のモデルの概念図(1) Cilkモデル 仕事量T1 プログラムの挙動 からのデータ C.P.長 T∞ 予測実行時間(1) アーキテクチャ パラメータ CPU数 P キャッシュミスコストを 含まない値 定数 定数c∞ メモリアクセスパターン (オブジェクト、マークビットに対する)予測キャッシュミス数 キャッシュ構造 DSMの場合、メモリモジュール ごとのミスの統計をとる

本研究のモデルの概念図(2) LoPCモデル 予測実行時間(1) メモリ占有時間 予測キャッシュミス数 予測実行時間(2) 予測実行時間(3) メモリレイテンシ Contentionも含む 最終結果 キャッシュミスを含むが、 contentionなしと仮定した値 注: 現在のモデルはLoPCモデルと同様、バンド幅を含まない

実験に使用したユーザプログラム N-Body(Barnes-Hut N体問題プログラム) CKY(自然言語パーザ) オブジェクトグラフは木構造(GCのC.P.短し) 現在の実装ではメモリ配置の偏りが大きい CKY(自然言語パーザ) オブジェクトグラフは配列+リスト(GCのC.P.長め) メモリ配置は均等に近い 以上のプログラムを Enteprise 10000(E10K) Origin 2000(O2K) で走らせ、GCのマークフェーズ速度の実測値と予測値を比較

実験結果(1): 予測と実測の比較 E10K O2K 1~48プロセッサのGC速度の予測値と実測値を比較 N-Body CKY 予測 GC速度 E10K 実測 CPU数 O2K 1~48プロセッサのGC速度の予測値と実測値を比較 クリティカルパス長定数c∞=1として予測

実験結果(2): 予測結果の考察 N-Body CKY O2Kでの性能頭打ちを予測できている。 モデル上の考察から、頭打ちの最大の原因はメモリアクセス不均衡によるコンテンションのためと分かった。 ただし予測のずれは1.3倍程度ある(本発表では未解決)。 CKY 頭打ちが予測できていない。CKYでのGCはC.P.長が長いので、定数c∞の影響が大きいと考えられる。

実験結果(3): クリティカルパス定数の影響 N-Body CKY C∞=1 実測 C∞=2 C∞=4 E10K C∞=8 C∞=16 O2K N-BodyではC.P.が短いのでc∞の影響はほとんどない CKYでの実測値との比較から、 c∞は4~8程度らしい 同時に、CKYではC.P.の長さが頭打ちの最大の原因だと分かった

実験結果(4): 未知のプロセッサ台数での予測 N-Body CKY E10K O2K 32台時のオブジェクトグラフを基に、256台までの性能を予測 c∞=8として予測 N-Body/E10Kですら、頭打ちになるだろうと予測された 台数が多いと、SMPでもコンテンションが問題になりそう

まとめ 共有メモリマシン上の不規則的プログラム(並列GC)の性能予測モデルを提案 予測値と実測値との比較 性能の頭打ちの原因を考察 アーキテクチャパラメータを考慮に入れるためにLoPCモデルを利用 不規則なタスクグラフをとらえるためにCilkモデルを利用 予測値と実測値との比較 性能の頭打ちの原因を考察 N-Body (O2K)ではメモリコンテンションが最大の原因 CKYではクリティカルパスの長さが最大の原因

今後の課題 モデルの改良 予測結果のアルゴリズム自動選択への利用 モデルの適用範囲の拡張 予測精度の向上 定数c∞の詳細な考察 バンド幅、cache write backなどの導入 定数c∞の詳細な考察 動的負荷分散コストとの関連の調査 予測結果のアルゴリズム自動選択への利用 モデルの適用範囲の拡張 ソフトウェアDSMへの拡張 一般の不規則的並列プログラムへの拡張

コードネームSGC C/C++プログラムのための並列マークスイープGC Boehm GC ベース Boehm GC APIとほぼcompatible 任意のC/C++コンパイラ使用可 多種のマルチプロセッサマシンで動作 Linux/Intel processor Solaris/SPARC processor, Solaris/Intel processor IRIX/MIPS processor http://www.yl.is.s.u-tokyo.ac.jp/gc/