Document

Exploring the Benefits of
Multiple Hardware Contexts in
a Multiprocessor Architecture:
Preliminary Results
情報理工学系研究科
コンピュータ科学専攻
上嶋裕樹
[email protected]
概要



multiple hardware contextsにより,
メモリー操作の高いlatencyの悪影響を抑
えることが出来るかの探求。
効果はアプリケーションの性質,context
switch overhead,latencyに依存する。
context switch overheadが小さいとき,2,
4 contextsで1 contextより効果があった。
アーキテクチャ(1/2)
アーキテクチャ(2/2)


direct-map方式でline size 16 bytesの
キャッシュ・メモリーは64 Kbytes。
context switchの基準



キャッシュ・ミスの発生
共有読み込みデータへの書き込みの発生
contextはround-robin schedulingで選択。
アプリケーション



LocusRoute (standard cellのglobal router): 荒
い粒度のタスク,細かい粒度のデータ構造共有。
MP3D (3次元の粒子シミュレーション): 並列の
ための分散ループを使った,典型的な科学計算。
P-Thor (並列論理シミュレーション): ChandyMisraの分散シミュレーションアルゴリズム。
予備実験の結果
Application Run
Length
MP3D
16 (16)
Read
Latency
32 (44)
Write
Latency
42 (57)
P-Thor
50 (50)
25 (33)
55 (72)
Locus
Route
156 (154)
22 (29)
99 (128)
4プロセッサで,各プロセッサに1 context
ネットワーク遅延が1の場合(5の場合)
いくつかの論点






contextはいくつがいいか?
context switch overheadの影響は?
ネットワーク遅延の影響は?
キャッシュ干渉の影響は?
いつcontext switchをするべきか?
アプリケーションによってパフォーマンスは
どう変わるか?
Contextの数




contextを増やすことによって得られる利益は,
contextの数が大きくなると少なくなる。
contextが少ない方がハードウェアを簡単化でき,
overheadも小さくできる。
overheadが大きい場合にcontextを増やすと,か
えってパフォーマンスが落ちる。(キャッシュ干渉
のため)
数contextで十分効果をあげることができる。
Context switch overhead



保持しているcontextの数による。
overheadが大きくなるとmultiple contexts
による効果が少なくなる。
overheadは数cycleのオーダーにしておく
ことが望ましい。
ネットワークのlatency


複数のcontextを設けることにより,ネット
ワークのlatencyの悪影響を少なくすること
ができる。
ネットワークのlatencyはアーキテクチャ
(crossbar switch, grid network)や
プロセッサの数に依存する。
キャッシュの干渉


複数のcontextが1つのキャッシュを使うこ
とによる正の干渉,負の干渉。
複数contextを持つプロセッサのキャッシュ
が少なすぎると,極端にパフォーマンスが
落ちることがある。(P-Thor, 4 contexts,
cache size 16Kbytes)
Context switchのタイミング




switchのoverheadがlatencyより小さいと
きにswitchするのが理想。
しかし,latencyを予想するのは困難。
簡単なswitchの基準: 主記憶装置へのア
クセスがあったとき。
watchdog counterによるswitch
アプリケーションによる違い



MP3D (Global traffic 大):
contextを増やすことによる効果が大きい。ただし
キャッシュ干渉も大きいのでネットワーク遅延の
悪影響を受けやすい。
P-Thor (Global traffic 中):
複数contextによる効果があり,latencyの増加に
よる影響も受けにくくなる。
LocusRoute (Global traffic 小):
キャッシュも効いているのでcontextを増やすこと
による効果が小さい。
他のプロセッサの
multiple hardware contexts




Alto: time criticalな入出力処理を行えるように。
HEP: latencyを克服できているが,最低8プロセ
スでパイプラインを満たす必要がある。
Hybrid data-flow/von Neumann machine:
registerがcontext switchの際に保存されない。
多くのcontextを保持する。次にどのcontextを実
行するかの決定が複雑。
MASA: 1つのプロセスについて,前の命令が完
了しない限り次の命令を発行できない。
議論

multiple contextsの意義は?


multiple contextsをどう実装すべきか?


高価なプロセッサとlatencyの大きいネットワー
クを複数のcontextで共有する。
1つのchipにするより複数chipにした方がいい。
ある1つのプロセッサに対してどのプロセ
スを割り当てるか?

重要な問題である。
結論(1/2)


1 contextのプロセッサと比べると,一定の少数
のcontextでも十分大きな効果を上げることがで
る。
以下の状況で最良の効果をあげる。



読み書きのlatencyが大きい。(大規模な
multiprocessor)
context switch overheadが小さい。(contextの数が
固定で少なく,context switchの基準が単純)
multiple contextsによるキャッシュ干渉が少ない。(大
きなキャッシュ)
結論(2/2)

context switchの仕組みがsubtask管理の
仕組みと分離している。


単純で高速なハードウェアを実現。
高い柔軟性を持ち,アプリケーションに依存し
たパフォーマンスのチューニングが可能。
参考文献

W.-D. Weber and A. Gupta,
“Exploring the Benefits of Multiple
Hardware Contexts in a Multiprocessor
Architecture: Preliminary Results,”
Proc. 16th Int. Symp. on Computer
Architecture, pp. 273-280, 1989.