世界のスーパーコンピュータとそれを動かす人々


9月 18, 2013

マルチコアにおけるメモリ管理

HPCwire Japan

Tiffany Trader

コンピュータメモリ上にデータを動かすためには時間とエネルギーが必要だ。頻繁に使われるデータを格納するためにキャッシュはローカルメモリとして進化した。マルチコアとメニーコアの登場によるプロセッサの進歩によって、キャッシュの管理はより難しくなる。MITの研究者がMITニュースに発表したところによると、ハードウェアではなくむしろソフトウェアによって、これらのオンチップ・メモリバンクを管理させることが、有用であるかもしれない。

MITの電気工学と計算機科学の准教授であるダニエル・サンチェス氏は、この新しいソフトウェアによるアプローチを進める一人である。先週開催されたInternational Conference on Parallel Architecture and Computation Techniques会議において、サンチェス氏と彼の学生であるネーサン・ベックマン氏は、キャッシュ組織化構想「Jigsaw」について共同で発表した。そのツールは、共有キャッシュにおける分離を促進し(訳注:複数のコアが同じデータを共有することを減らすらしい)、キャッシュ・アクセスのレイテンシを減らす。

Jigsawはラストレベルのキャッシュに作用する。マルチコアチップにおいて、それぞれのコアは、そのコア自身のための小さなキャッシュを持っている。しかし、ラストレベル・キャッシュは全てのコアによって共有される。共有キャッシュは2つの基本的な限界に直面している:
・他の共有キャッシュ・アクセスによる干渉とレイテンシー
・他の研究によると、1つの問題を改善すると他の問題が悪くなる。著者によると、「NUCA技術はアクセス・レイテンシを減らすが、ホットスポットと干渉する傾向があります。キャシュ分割技術は隔離を提供するだけであって、アクセス・レイテンシを減らしません。」

物理的には、チップ全体に渡ってそれぞれのコアが最も近いバンクを利用できるように、キャッシュは分割されたメモリバンクから成っている。大部分のチップは、ランダムにデータをバンクに割り当てる。しかし、Jigsawは、キャッシュ・バンクとデータの関係が最も効果的になるように、この手順を最適化する。例えば、ひとつのコアによって必要なだけのデータがそのコアの近くに置かれ、全てのコアによって使われるデータは、チップの中心近くに置かれる。データの移動を最小にすることが、Jigsawの主要な役割である。それだでけでなく、より頻繁に利用されるデータがより多くのキャッシュを利用するように最適化する。

デュオ氏による一連の実験では、16そして64コアのチップの上で、何百ものアプリケーションを実行させた。その結果、従来の共有キャッシュと比べて、性能が18パーセント(★原文では2.2x or 18%となっているが、つじつまが合わない★)向上し、消費電力を72パーセント減らした。Jigsawは、NUCAのようなより先進の分割技術さえ上回る。

最適化キャッシュ領域割り当ては、(訳注:もし最適解を求めようとすれば)それ自身に非常に時間がかかる仕事であり得る。しかし、MITが開発した近似的な技術は効率的に動作する。さらにコアの数がスケールし、異なるデータ型が使われても、うまくいく。