IntelのExaSacleへのアプローチ
Intelは、ExaScaleの電力ゴールに到達するには、アーキテクチャとシステムにフォーカスした改善が必要であるという。
メモリではメモリインタフェースの最適化やNon-Volatileメモリの使用などで2~5倍の電力効率、プロセサではデータ移動の低減やパワーゲートで10~20倍、インタコネクトでは、インタコネクト機能のCPUパッケージへの取り込み、光インタフェースの集積などで2~5倍、データセンターの効率改善では、より高温での動作を許容するとか480V給電で10%~20%の電力効率の改善が必要であるという。
そして、ExaScaleのマシンに必要なのはシステム的なアプローチで、巨大システムでは故障間隔が問題になることから、
- トランスペアレントなプロセスマイグレーション
- 全体を考慮した故障検出とリカバリ
- 信頼できるEnd-to-Endの通信
- メモリをストレージ階層に組み込みチェックポイント作成、復元の高速化
- 積層メモリのN+1高信頼アーキテクチャ
さらに、
- システム全体のパワーマネジメント
- システムレベルのデバッグ機能
を備える必要があると指摘した。
そして、通常のチェックポイント作成(左側の図)ではシステム全体を同期した状態で停めて、状態をストレージに書き込む必要があり、短時間の書き込みには高いバンド幅が必要となるが、これを非同期に小さな塊で書き込むようにすれば、右側のように計算処理(緑)とチェックポイントの書き込み(赤)が並列に行われ、赤の面積(データ量)は同じでも必要となるピークバンド幅を下げることができると指摘した。
![]() |
![]() |
通常のチェックポイントはシステム全体を同期した状態にして、短時間で状態をストレージに書き込む(赤色の部分)ので、高いバンド幅が必要面 |
非同期に小さな塊で書き込めば、長い時間が使えるので、赤色の部分の面積は同じだが低いバンド幅で済む |
また、消費電力が大きな問題であり、大きなエネルギーを必要とするデータの移動をできるだけ減らす、DRAMの内部アーキテクチャも必要な部分だけ動かすようにするなどの改善が必要である。結果として、メモリアーキテクチャとしては、新しい動作原理のメモリテクノロジの有効利用、メモリ階層の見直し、データ移動の最小化、そして、パッケージングの革新が必要という。
革新的パッケージの実現例として、DRAMダイをスタックした上に数100コアを集積したCPUチップを載せてTSVで接続し、これをパッケージ基板に複数個搭載するというイメージを示した。
この構造では、CPUが自分のチップの下の積層されたDRAMチップのデータを使う場合はデータ移動に必要なエネルギーが小さく、かつ、消費電力を減らして、バンド幅やアクセスタイムを改善できる。
そして、ExaScaleでは、すべての部品が現在のままではダメで、変わってくるとして次のスライドを示した。
そして、
- プロセサコアは大きなダイナミックレンジを持つようになる
- メモリ階層は新しいテクノロジの採用でバランスが変わる
- ネットワークはCPUチップへの集積が進み、光インタフェースが不可欠になる
- ストレージも新しいテクノロジが使われる
- プログラミングモデルは新しいものと古いものが両方サポートされる
と述べた。
そして、ハードウェア単独の努力ではExaScale実現に必要とされる性能やエネルギー効率の達成は困難であり、ハードウェアとソフトウェアのコデザインが重要であるという。
プログラム言語(図の左上の箱)は、メモリアクセスのローカリティの情報を出すようにすべきであり、コンパイラ(上段中央)はデータアクセスパターンやメモリフットプリント、チェックポイントするメモリ領域などの情報をランタイムライブラリに提供し、ランタイムライブラリ(下段右端)はコンパイラからの情報に基づいてキャッシュやプリフェッチの利用法や電力制御が最適になるようにハードウェアを導く。
ハードウェアはメモリアクセスパターンなどのパフォーマンスカウンタの情報を生成し、パフォーマンスツール(中央)はそれを分析してコンパイラやランタイムライブラリにフィードバックを行う。また、パフォーマンスツールからの情報は、データ移動を最小化するアルゴリズムの設計にも利用される。
そして、ExaScaleの実現には、このようなハード、ソフト一体となって性能やエネルギー消費を最適化する設計が必要となると結んだ。