アーキテクチャパラメータを利用した並列 gc の性能予測
DESCRIPTION
アーキテクチャパラメータを利用した並列 GC の性能予測. 東京大学 米澤研究室 遠藤 敏夫/田浦 健次朗/米澤 明憲. 様々な並列アーキテクチャ. 分散メモリマシン MPP クラスタ 共有メモリマシン(本研究の対象) SMP (symmetric multiprocessor) DSM (distributed shared memory) ソフトウェア DSM プログラムの記述移植性があっても性能移植性があるとは限らない. プログラム性能予測の必要性. 同一プログラムの速度がマシン毎に違うことも 理由はレイテンシの違い?メモリ構造の違い? - PowerPoint PPT PresentationTRANSCRIPT
アーキテクチャパラメータを利用した並列 GC の性能予測
東京大学 米澤研究室遠藤 敏夫 / 田浦 健次朗 / 米澤 明
憲
様々な並列アーキテクチャ
分散メモリマシン MPP クラスタ
共有メモリマシン ( 本研究の対象 ) SMP (symmetric multiprocessor) DSM (distributed shared memory) ソフトウェア DSM
プログラムの記述移植性があっても性能移植性があるとは限らない
プログラム性能予測の必要性
同一プログラムの速度がマシン毎に違うことも 理由はレイテンシの違い?メモリ構造の違い?
未知の計算機での速度を知りたい 今よりプロセッサ数が増えたら?通信が速くなったら?
性能の理由を定量的に議論できるモデルが欲しい
1マシン 2マシン
プロセッサ数
実行速度
性能予測研究の動向 ( 非常にいい加減 )
本研究の対象 : 共有メモリマシン (SMP, DSM) 不規則的プログラム ( 並列 GC)
不規則的プログラムの研究
分散メモリの研究 > 共有メモリの研究
マイクロベンチマークの研究規則的プログラムの研究 >
明示的な通信 キャッシュミスによる通信
本研究の対象ハードウェア (1):Sun Enterprise 10000
64PE SMP ・・・ メモリレイテンシは場所によらない レイテンシ : 約 600ns(contention なしの時 ) メモリ配置は自動的に均等に
一つの大きなメモリモジュールと考えて問題ない アクセス時のメモリ占有は約 20ns ( 一つの大きなメモリモ
ジュールと仮定した場合の計算上の値 )
CPU
cache
CPU
cache
CPU
cache
memory memory memory
CPU
cache
memory実際はメモリモジュールは16個
本研究の対象ハードウェア (2):SGI Origin 2000
DSM ・・・ ローカル / リモートでレイテンシに差 レイテンシ : ローカル約 400ns, リモート 600ns 以上 メモリの配置は、最初にアクセスした CPU により決定
メモリモジュール毎の使用メモリの差がアクセス不均衡をひきおこし、メモリコンテンションをひきおこす
アクセス時のメモリ占有は約 200ns
CPU
cache
memory
CPU
cache
memory
CPU
cache
memory
CPU
cache
memory 実際は CPU2 個 + メモリモジュール1 個で 1 ノード
本研究の対象ソフトウェア :並列マークスイープ GC[ 遠藤 et al. 97]
ユーザプログラムを止め、全プロセッサが協調してマーク・スイープ ( 以下、マークフェーズに話を絞る )
ユーザプログラムのオブジェクトグラフ= 並列 GC のタスクグラフ オブジェクトグラフの幅 = GC の並列度
動的負荷分散によるスケーラビリティの達成
sweep
PEsTime
ユーザプログラム
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: 並列プログラム言語 細粒度スレッド、動的負荷分散により、不規
則的で効率的なプログラムを容易に記述可能 仕事量とクリティカルパスに基づいた性能モ
デルにより平均実行時間を保証しかし、アーキテクチャの差異を考慮に入れてい
ない
Cilk の性能モデル (2)
T1: 全タスク量 (1プロセッサでの実行時間 )T∞: クリティカルパス長 のとき、Pプロセッサでの平均実行時間 TP = O(T1/P + T∞)ただし実用上は、 TP = T1/P + c∞T∞(c∞は負荷分散のコストなどに依存する定数 )
タスク
クリティカルパス中のタスク
依存関係
本研究のモデルの概念図 (1)
仕事量 T1
C.P.長 T∞
CPU 数 P
定数 c∞
予測実行時間 (1)
メモリアクセスパターン
キャッシュ構造
( オブジェクト、マークビットに対する ) 予測キャッシュミス数
キャッシュミスコストを含まない値
プログラムの挙動からのデータ
アーキテクチャパラメータ
定数
Cilk モデル
DSM の場合、メモリモジュールごとのミスの統計をとる
本研究のモデルの概念図 (2)
予測実行時間 (1)
予測キャッシュミス数
メモリレイテンシ
予測実行時間 (2)
キャッシュミスを含むが、contention なしと仮定した値
メモリ占有時間
LoPC モデル
予測実行時間 (3)
Contention も含む最終結果
注 : 現在のモデルは LoPC モデルと同様、バンド幅を含まない
実験に使用したユーザプログラム
N-Body(Barnes-Hut N 体問題プログラム ) オブジェクトグラフは木構造 (GC の C.P.短し ) 現在の実装ではメモリ配置の偏りが大きい
CKY( 自然言語パーザ ) オブジェクトグラフは配列 +リスト (GC の C.P.長め ) メモリ配置は均等に近い
以上のプログラムを Enteprise 10000(E10K) Origin 2000(O2K)で走らせ、 GC のマークフェーズ速度の実測値と予測値を比較
0
1000
2000
3000
4000
5000
6000
0 10 20 30 40 50 600
2000
4000
6000
8000
10000
0 10 20 30 40 50 60
実験結果 (1): 予測と実測の比較
1 ~ 48プロセッサの GC 速度の予測値と実測値を比較 クリティカルパス長定数 c∞=1として予測
0
1000
2000
3000
4000
5000
6000
0 10 20 30 40 50 600
2000
4000
6000
8000
10000
0 10 20 30 40 50 60
N-Body CKY
予測
実測E10K
O2K
CPU 数
GC 速度
実験結果 (2): 予測結果の考察
N-Body O2K での性能頭打ちを予測できている。 モデル上の考察から、頭打ちの最大の原因はメモリア
クセス不均衡によるコンテンションのためと分かった。 ただし予測のずれは 1.3 倍程度ある ( 本発表では未解
決 ) 。CKY
頭打ちが予測できていない。 CKY での GC は C.P.長が長いので、定数 c∞の影響が大きいと考えられる。
0
1000
2000
3000
4000
5000
6000
0 10 20 30 40 50 600
2000
4000
6000
8000
10000
0 10 20 30 40 50 60
実験結果 (3):クリティカルパス定数の影響
N-Body では C.P. が短いので c∞の影響はほとんどない CKY での実測値との比較から、 c∞は 4~8程度らしい
同時に、 CKY では C.P. の長さが頭打ちの最大の原因だと分かった
0
1000
2000
3000
4000
5000
6000
0 10 20 30 40 50 60
0
2000
4000
6000
8000
10000
0 10 20 30 40 50 60
N-Body CKY
E10K
O2K
C∞=1C∞=2C∞=4C∞=8C∞=16
実測
0
1000
2000
3000
4000
5000
6000
7000
0 50 100 150 200 250 3000
2000
4000
6000
8000
10000
0 50 100 150 200 250 300
実験結果 (4):未知のプロセッサ台数での予測
32台時のオブジェクトグラフを基に、 256台までの性能を予測 c∞=8として予測
N-Body/E10K ですら、頭打ちになるだろうと予測された台数が多いと、 SMP でもコンテンションが問題になりそう
0
1000
2000
3000
4000
5000
6000
7000
0 50 100 150 200 250 3000
2000
4000
6000
8000
10000
0 50 100 150 200 250 300
N-Body CKY
E10K
O2K
まとめ
共有メモリマシン上の不規則的プログラム ( 並列GC) の性能予測モデルを提案 アーキテクチャパラメータを考慮に入れるために LoPC
モデルを利用 不規則なタスクグラフをとらえるために Cilk モデルを利
用予測値と実測値との比較性能の頭打ちの原因を考察
N-Body (O2K) ではメモリコンテンションが最大の原因 CKY ではクリティカルパスの長さが最大の原因
今後の課題
モデルの改良 予測精度の向上
バンド幅、 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/