SC10では、Exascaleスパコンをどのように実現するかに関して、5つのパネルディスカッションが開かれた。1つのパネルは他の発表と重なったために聞くことができなかったが、それ以外の4つのパネルディスカッションを聞き、どのようにしてExascaleスパコンを実現しようとしているのかの最前線を探った。

Exascale Computing Will(Won't)be Used by Scientist by the End of This Decade

このパネルのモデレータはイリノイ大学のMarc Snir氏で、パネルメンバーは、同大のBill Gropp氏、ノートルダム大学のPeter Kogge氏、ローレンスバークレイ国立研究所のHorst Simon氏、MicrosoftのBurton Smith氏、南カリフォルニア大学のBob Lucas氏、カリフォルニア大学サンディエゴ校のAllan Snavely氏、ConveyのSteve Wallach氏という顔ぶれである。

左から、Snir、Wallach、Gropp、Lucas、Snavely、Kogge、Smithの各氏

いずれもスパコン業界では有名人であるが、Kogge教授はDARPAのExascaleレポートを纏めた人物、Smith氏は永らくCRAYのチーフテクニカルオフィサーを務めたスパコンの歴史のような人物である。

Smith氏は、2018年にExaFlopsが要るかという問いかけについては、作ろうと思えばハードウェアは作れるし、競争だから作ることになるだろう。しかし、プログラムが書けなければ意味が無いという。また、ExaFlopsのマシンに金を出すユーザコミュニティはどこかという問題もあると指摘した。

筆者が驚いたのはKogge教授の発言で、2年前のExascaleレポートでは浮動小数点演算あたりの消費エネルギーを10pJ/Flopと見積もり、1ExaFlopsのシステムの消費電力を20MWとしたが、その時、都合よく無視したTLBの消費電力などを詳しく考慮していくと、1次キャッシュをアクセスする場合は40pJ/Flop必要で、メモリをアクセスする場合は1000pJ/Flop必要となった。全体的に平均すると500pJ/Flopのエネルギーが必要という。これではCPUとメモリの消費電力はレポートの見積もりの50倍で、500MW必要になってしまう。

後に述べる他のパネルでもCPUコアでの浮動小数点演算に必要なエネルギーは小さいが、キャッシュ、メインメモリなどをアクセスしてデータを移動させるエネルギーの方がずっと大きく、データ移動を極力抑えないと、1ExaFlopsを20MWでは実現できないというのは共通認識になっている。

つまり、データ移動=消費電力であり、データ移動を最小化したローカリティのあるプログラムを書かないと消費電力が大きくなってしまう。しかし、ローカリティを見つけ出すのは誰の仕事なのか? ハードウェアなのか、コンパイラなのか、それともアプリケーション(プログラマ)なのか?については、まだ、共通認識は形成されていない。

また、ExaFlopsマシンは規模が大きくなるので信頼性が問題となる。平均故障間隔で1日程度は確保しなければならないというのが一般的な認識である。スパコンでも数十日かかるという計算もあり、連続して実行できないので、計算途中に定期的にメモリの内容をディスクに吐き出し、エラーが検出された場合には、直前に書いたメモリの内容を復元して計算を再開するチェックポイント-リスタートという方法が取られる。しかし、ペタバイト級のメインメモリを現実的な時間でディスクに書き出すには、ディスクのバンド幅が問題となる。このため、プログラム的に書き出すデータを減らすなどの手で対応せざるを得ないという問題はあるが、まあ、信頼性はエンジニアリングでなんとかカバーできる問題という認識であった。