高い並列性の実現のための実行モデル

現在のHPCはシーケンシャルな実行モデルに基づくプログラムを使っているので、並列性をうまく引き出すことができない。高い並列性を引き出すには、新たな実行モデルを開発する必要があるとしている。ここで言う実行モデルは、コンピューティングシステムのすべての階層で、どのように計算を処理していくかのパラダイムであり、システムの各要素を整合の取れた設計とするための概念的な土台となるものである。また、実行モデルは各階層をコデザイン(全体的に最適化する設計)や整合の取れた動作をさせるための抽象的な枠組みであると書かれている。

そして、実行モデルは、単なる並列プログラミング言語や、通常のコンピュータアーキテクチャ、仮想化などを指すのではないと書かれており、より高次の設計指針や枠組みを指すものと思われる。

システムの管理に関しては、アプリケーションが達成しようとする目標を理解し、使用可能なシステム資源を最大限活用して目的の達成を助け、また、故障を避けて自己修復して処理を続けられるような有機的な処理を行うOSが必要となる。

有機的なSelf Aware Operating Systemの概念図(出典:DARPA RFI)

そして、性能/電力の目標としては50GFlops/Wという数字が挙げられている。現在のTop500第一位のRoadrunnerシステムは1.1PFlopsのLinpack性能を約2.5MWの電力で実現しているので約0.44GFlops/Wであり、これに比較すると2桁以上の改善を求めている。

このような高い性能/電力を実現するには、プロセサ内部の各種ユニットの省エネルギー化は勿論であるが、更に上位のサブシステム、システムレベルでの効率化が必要である。また、ハードウェアの努力だけでは駄目で、超並列のリソースを効率よく使うプログラムが書けるようになっていなければならないし、リソースを効率よく動かすことができるOSが必要となる。

UHPCプロジェクトのゴールとは

UHPCプロジェクトで開発しようとしているシステムの具体的なゴールであるが、巨大なセンサネットワークからのストリームデータを処理するというアプリケーションと巨大グラフ処理を行うアプリケーションという2つの新規のアプリケーションと、従来からの国防関係の2つの実アプリケーションに対して実効で1PFlopsを達成できるシステムを、空冷の19インチラック1本に収容し、Top500の評価尺度であるLinpackの実行で、50GFlops/Wを超える効率という要件が出されている。

また、システム設計は科学技術計算に対して高い性能を示すものであり、プロセサノードの設計は、組み込み型のシステムから複数筐体の大型システムまで、広く適用できる設計であることが求められている。そして、アプリケーションの開発者がシステムの複雑な構成を理解しなくても高い性能を引き出すプログラムが書けるようなシステムであることが要求されている。

さらに、ハードとソフトのコデザインにより、明確に高い革新性を示すシステムであることが要件となっており、設計の革新性も評価基準に入っている。

詳細なハードウェアシステムの設計ゴール(必須要件と思われる)と設計ターゲット(必須ではないとしても、実現が強く求められる項目)は以下のようになっている。

ハードウェアシステムの設計ゴールと設計ターゲット