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.
© Copyright 2024 ExpyDoc