並列コンピュータのメモ http://www.am.ics.keio.ac.jp/pbook/pbook.html http://www.shoko-do.co.jp/infobooks/ISBN4-7856-2045-5.html
- は本に書いてあること。
- はiwagによるメモと感想。
- 並列計算機の概観
- なぜ並列計算機を作るのか
- 並列計算機はなぜ普及しなかったのか
- 小規模並列計算機と単一CPU
- 大規模並列計算機の問題点
- 並列計算機の分類と概観
- Flynnの分類
- SISD, SIMD, MISD, MIMD
- 共有メモリシステムに関する分類
- UMA + バス結合型UMA
- スイッチ結合型UMA
- NUMA
- NORA
- また
+ マルチプロセッサ
- UMAとNUMA + マルチコンピュータ
- NORA
- 文献紹介
- バス結合型マルチプロセッサ
- 共有バスの構成法
- バスの概観
- 基本転送機能
- アービトレーション
- スプリットトランザクション
- バスの構成例:FutureBus+
- トピックスと参考文献
- スループキャッシュ
- スヌープキャッシュは共有バスを監視することで、内容の一致を保証するキャッシュ
- 単一CPU用キャッシュの構成
- 一般的なキャッシュの話
- スヌープキャッシュの構造
- キャッシュ、タグはデュアルポートにしてバス側とプロセッサ側を同時にアクセスするようにする
- ライトスルーキャッシュの一致プロトコル
- 分類 + 一致させる時期で、(1)ライトスルーと(2)ライトバックがあり + それぞれに、(1)無効化型と(2)更新型に分かれる
- 無効型 + あるプロセサが書き込みを行ったら、他のプロセサにあるラインのタグに無効Iをセットする
- 更新型 + あるプロセサが書き込みを行ったら、他のプロセサにあるラインごと更新する
- 制御が簡単だが、バスの混雑が激しくライトバックキャッシュに比べて数10%性能低下す
- 無効化型ライトバックキャッシュ
- ライトバックなので書き込んでもラインはダーティになるだけ。どこかのプロセサが読み込んだとき主記憶に戻す、で他のプロセサのラインは無効にする
- 更新型スループキャッシュ
- 更新型は無効化型と違って、ラインも更新される
- MOESIプロトコルクラス
- MOESIで様々のプロトコルの分類をはかる
- M (moddified) コピーが他に存在しないオーナー
- O (Owned) コピーが他に存在するかもしれないオーナー
- E (Exclusive) コピーが1つしか存在せず、オーナーではない
- S (shared) コピーが他に存在するかもしれないが、オーナーではない
- 無効化型と更新型の利点・欠点
- 無効化型、ピンポン効果よくない。プロセサでラインが互いを無効化しあいデータが行ったり来たりする
- 更新型、false sharingよくない。ラインの前半分と後ろ半分のデータを共用している、
- このへん深さが変ですぞ
- キャッシュについての参考文献とトピックス
- 同期基本操作
- 不可分命令
- Test&Add, Fetch&Add, ...
- 同期変数のキャッシング
- 共有メモリ上での待ち合わせ
- メモリロック
- バリア同期法
- バス結合型マルチプロセッサの実現例と最近の情勢
- 「このような点からいよいよ90年代後半は、マルチプロセッサの時代になるのではないかと、という予想がかなり一般的になっている(とはいえ80年代にも80年代後半はマルチプロセッサの時代になるという予想があったので予断は許さない)。」
- NUMAのシステム 3.1 NUMAとは?
- PUをなんらかの方法で接続し同一のメモリ空間にしたもの
- 他のPUのメモリにアクセスする場合が問題
- アクセス遅延の削減
- アクセス時間の隠蔽:prefetch、投機実行
- 分類
- キャッシュを持たないもの
- CC(cache coherent)-NUMA + 他のPUのメモリをキャッシュすることのできるNUMA。例、アドレス空間をPUごとに静的に決めておく(このブロックはこのPUが持つというように)。一貫性を保持するのが複雑。
- COMA (cache only memory arch.) + ホームメモリを静的に割り当てず、すべてのPUの共有メモリがキャッシュのように振る舞う。 3.2
- ディレクトリ法
- どのキャッシュがラインを持ってるか共有メモリのコントローラが管理する 3.3 一貫性の保持
- 基本プロトコル 3.4 メモリコンシステンシモデル
- シーケンシャルコンシステンシ
- 1プロセッサ上のマルチプログラムで実行した時と同じ結果になるように要求する
- ウィークコンシステンシ
- 同期変数と共有変数で振る舞いを変える。同期変数はストロングコンシステンシー、共有変数は 3.5 ウィークコンシステンシーのバリエーション 3.6 CC-NUMAの同期 3.7 COMAの構成 3.8 NUMAの実現例と最近の話題