2011年2月16日に和光市の理化学研究所(理研)で開催されたHPCシンポジウムにおいて、東京工業大学(東工大)の松岡教授がTSUBAME2.0の設計思想について語った。

図1 TSUBAME2.0の設計思想を講演する松岡教授

このところ、あちこちでTSUBAME2.0がどのようなシステムであるかの講演をやり、同じことを喋るのにも飽きたので、プロの集まるこのシンポジウムでは背景となる設計思想を話したいと前置きして松岡先生は、「GPUは専用アクセラレータではない - ポストペタスケールのスケーリングへの本質的な変容」と題する講演を始めた。

なお、TSUBAME2.0は東工大が2010年11月から運用を開始したスーパーコンピュータ(スパコン)システムであり、2010年11月のTop500ランキングで第4位と国内のスパコンとしては初めてLinpack性能1PFlopsを超える圧倒的な高性能を達成した。また、GPUを主体とする計算ノードを使うことで958.35MFlops/Wの高エネルギー効率を達成し、スパコンの性能/電力を競うGreen500では2位(大規模スパコンとしては1位)を獲得したシステムであり全体構成は図2のようになっている。

図2 TSUBAME2.0スパコンのシステム構成

図3のグラフの縦軸は計算密度、横軸はメモリアクセス密度である。計算量は多いが、メモリアクセスは少なくて済むN-body(銀河系の運動シミュレーションなど)や化学系の問題などは左上に位置し、計算量は少ないがメモリアクセスが多いCFD(流体解析)などは右下に位置している。一般的なスカラ型CPUは、どちらもそこそこという設計であり、中央の楕円のような範囲の問題を解くのに適している。

図3 GPUは新世代のベクトル計算機

一方、GPUは多数の演算器を持ち演算密度の高い問題と、GDDRメモリの高バンド幅を活かした設計でメモリアクセス密度の高い問題にも向く。ということで図の左上から右下に掛けて破線で描かれたかぎ型の領域の問題を解くのに適している。これはすなわち、効率の良いスパコンの主要素となりうるということである。

ただし、GDDRで構成されるメモリの容量が少ない、CPUや他のGPUとの通信のオーバヘッドがあり、これがあまろり影響しないようなベクトル並列のプログラム手法の開発やシステムソフトウェアの開発などに技術的な課題があるという。

図4は横軸に演算密度とメモリアクセス密度の比(Flops/Byte)を取り、縦軸に実現された実行性能をGFlopsで表示している。そして、上側のラインがGTX285 GPU、下側のラインがCore i7 Extremeの理論性能の線である。○でプロットされているのが実データであり、理論性能には達していないが、かなり近いところまで行っている。ただし、Flops/Byteの小さい(演算の割にメモリアクセスが多い)問題ではCPUの実効性能は理論値よりもかなり下がっている。

図4 GPUとCPUの性能比較

このグラフの2本の線を比べると、CPUと比較してGPUは、演算リミットとなる高Flops/Byteの問題では10~20倍、メモリリミットとなる低Flops/Byteの問題では、理論値でも5~10倍、CPUの実測データと比べるとさらに高い性能が得られることがわかる。なお、GPU推進派の人は、GPU 1チップとCPU 1コアの性能を比較して何10倍というような過大な言い方をする場合があるが、この比較はどちらも1チップで比較している。

そして図5に示すように、Exaスケールを達成するためには、ノード間の通信レイテンシを短くするか、あるいは、レイテンシを隠ぺいする。また、レイテンシの影響に敏感なアルゴリズムを、そうでないものに切り替えるということが必要という。

図5 Exaを達成するための方針

通信レイテンシを短縮するためには、計算性能の高いFatノードとして、必要な計算ノードの数を減らして距離を短縮する。そして、マルチスレッドでレイテンシを隠ぺいするのが有効である。このため、TSUBAME2.0ではGPUで計算性能の高いFatノードを作り、GPUの超マルチスレッド実行で通信レイテンシを隠ぺいするという設計になっている。

そして、通信路としてはQDRのInfiniBandを各計算ノードから2本出し、全部のノードが同時に通信しても耐えられるFull Bisectionバンド幅のファットツリー構造のネットワークを使っている。ファットツリーはトーラスなどに比べてスイッチの通過段数が少なく、通信レーテンシを短くすることができる。

図6は初代のTSUBMA1.0 と東京大学のT2K、テキサス大学のRangerの各システムとTSUBAME2.0の諸元の比較を示している。2.0はGPUがFlopsの91%を占め、1.0と比較すると30倍のピーク演算性能となっているが、単に演算性能が高いだけでなく、メモリバンド幅は約40倍となっており、1.0よりもByte/Flopsは改善されている。また、この0.3Bytre/FlopsはT2KやRangerシステムよりも高い値となっている。

図6 TSUBAME2.0と1.0、東大のT2K、テキサス大のRangerとの比較

しかし、当初の設計では、6コアのWestmere-EP CPUと1台のTesla M2050 GPUを計算ノードとして、それにQDRのInfiniBandを付けるという考えであったという。この理想TSUBMAE2.0が実現できていれば、システムバランスとしては次のような位置づけとなる。