並列/分散計算機環境での大規模科学技術計算では, プログラムの容易さ から, 共有メモリを前提としたプログラミング環境の提供が切望されている. キャッシュの一貫性制御をハードウェアで保障する分散共有メモリ型並列計算機は この要求に答える一つの解であり現在多くの商用システムが開発されている. しかしながら, このようなシステムではプロセッサの動作速度に対する 相対的な通信遅延の増大とともに, キャッシュの一貫性制御のオーバヘッドが システム性能に与える影響が無視できなくなる可能性がある.
この問題に対する解の一つとして, コンパイラ支援キャッシュ一貫性制御 (以下 CACC制御と呼ぶ)が1990年代当初提案されていたが, 当時は ハードウェアによる一貫性制御の研究がより活発で, 研究の方向はCC-NAMA へと 向かっていった. 我々は, 今後の共有メモリ環境の実現には, CACC制御を始め とするソフトウェアによる一貫性制御を行なう NUMA システム (以下 NCC-NUMA と呼ぶ)が重要な役割を担うと考え, 最近のNUMAシステムとそのネットワーク レイテンシを反映した NCC-NUMAシステム が如何にあるべきかの研究を行なった.
本研究ではまず最初に, 最近の要素プロセッサのキャッシュシステムが主に ライトバック型の更新プロトコルを採用している点(1次キャッシュを除く) に注目した. 従来提案されてきた CACC制御は主に無効化型のコヒーレ ンス制御を対象としたものであり,コヒーレンスを維持すべきプログラムの ある時点でメモリには最新のデータが存在することが前提とされている. したがって, そのままではライトバック型のメモリ更新アルゴリズムとの 親和性が悪い. そこで, 簡易なハードウェア機構を用いて実行時情報を キャッシュに反映させる Self-Cleanup 機構を提案した.
次に, この機構を装備した Self-Cleanup Cache (以下, SCCと略す)を備えた NCC-NUMAモデルに関してシミュレーションによる評価を行なった. シミュレーション に使用したアプリケーションプログラムの種類が少ないものの, それらの結果から NCC-NUMA を採用することで著しくネットワークトラフィックが軽減されることが 確認できた. また, アプリケーションプログラムに対して簡単な最適化を行ない, かつ, ソフトウェアによりキャッシュライン単位の明示的な無効化を行なうことで, CC-NUMA よりも実行時間を短縮できることも判明した.
実験結果の例