Green500の舞台裏 - 何がエネルギー効率の差を生んだのか?

Green500の舞台裏 - 何がエネルギー効率の差を生んだのか?

画像提供:マイナビニュース

●ほんの僅かの差で明暗が分かれた1位と2位
スーパーコンピュータ(スパコン)のエネルギー効率を競うランキング「Green500」の2017年6月版は、東京工業大学(東工大)の「TSUBAME3.0」が1位、Yahoo Japanの「kukai」が2位、産業総合研究所(産総研)の「AI Cloud(AAIC)」が3位、理化学研究所(理研)の「RAIDEN」が4位とトップ4システムを日本のシステムが占めた。また、7位に海洋開発研究機構の「Gyoukou(暁光)」、8位に国立環境研究所のシステムと、トップ10位の内の6システムが日本のシステムである。

これは喜ばしいことであるが、裏を覗いてみると、7位のGyoukouを除いた他のシステムは、すべてIntelのXeon CPUにNVIDIAのP100 GPUをアクセラレータとして接続したシステムであり、これは日本の成功というより、NVIDIAの成功とも言うべき状況である。

しかし、Xeon CPUとP100 GPUを使っていても、そのエネルギー効率には違いがある。そこで、ここでは、それぞれのシステムがどのようになっているのかを見て行きたいと思う。

○1位に輝いた東工大のTSUBAME3.0

今回のGreen500で1位になった東工大のTSUBAME3.0は、HPE(旧SGI)のICE XAシステムであり、14コアのXeon E5-2680v4(クロック2.4GHz)を288チップ、P100 SMX2 GPUを576チップ使っている。そして、1.998PFlopsのLINPACK性能を141.6kWで達成し、エネルギー効率が14.11GFlops/Wで1位に輝いている。

次の写真は、今年2月に行われたTSUBAME3.0の記者発表で撮影したものであるが、TSUBAM3.0は540計算ノードで倍精度浮動小数演算で12.1PFlopsと書かれている。

しかし、今回測定されたシステムはCPUが288チップ、GPUが576チップであるので、144ノードである。これは540ノードと書かれているTSUBAME3.0全体の約1/4のシステムということになる。また、このシステムは東工大には、まだ、納入されておらず、この測定はウイスコンシン州のチッペワフォールズの工場で測定されたものであるという。なお、Top500/Green500のルールでは、ユーザが工場での納品、検収を認めた場合は、工場での測定でも良いことになっており、過去にも出荷前にIBMの工場で測定された結果が使われた例がある。

記者発表のスライドでは、2017年8月本稼働と書かれており、6月初めのTop500/Green500締め切り時点では、メーカーの工場で、この規模のシステムを作って測定するのがギリギリという事情が透けて見える。

TSUBAM3.0の計算ノードは2個のXeon CPUと4個のGPUで構成されており、4個のGPUの間は、NVLinkで接続されている。

次の写真は、TSUBAM3.0の水冷のノードブレードで、手前側の4個のコールドプレートの下にP100 SMX2 GPUが存在する。この写真ではGPUボードの下になっているので見えないが、2個のXeon CPUもコールドプレートで水冷されている。

しかし、その他のLSIやメモリDIMMなどは空冷で冷却されている。ICE XAの筐体はリアドアを水冷する構造になっており、DIMMなどを冷却して温まった空気を水冷して、排気温度を吸気温度と同じになるように制御している。このため、TSUBAM3.0は計算機室の空調には負荷をかけない作りになっている。しかし、ファイルシステムやOmni-Pathのトランクスイッチなどは、通常の空冷の設計であり、計算機室の空調が必要になる。

○僅差で2位となったYahoo Japanのkukai

PEZYグループのExaScalerのスパコンは、絶縁性の液体に、同社が「ブリック」と呼ぶ長い角柱状のモジュールを浸漬して冷却するという構造になっている。ブリックには色々なバリエーションがあり、PEZYのメニーコアチップを使ったものが有名であるが、通常のGPUをアクセラレータとして使う計算ノードや大容量のSSDを搭載したストレージノードなどの製品がある。

Yahoo Japanのkukai(空海)は、14コアのXeon E5-2650Lv4(クロック1.7GHz)をCPUとして使い、2台のNVIDIA P100 GPUをアクセラレータとして接続する計算ノードを使っている。なお、kukaiのP100 GPUはPCI Express接続のフルサイズのもので、サーバ用のSMX2版のようなNVLinkはサポートしていない。

kukaiの計算ノードは、Xeon E5-2650Lv4 1個とP100 GPU 2個で構成されており、次の図に示す1本のブリックには、この計算ノードが4ノード収容されている。なお、この図ではCPUに接続されるDDR4 DIMMが256GBとなっているが、kukaiでは128GBとなっている。

kukaiシステムに使用されているZettaScaler-1.6システムは、4×5の20ブリックを収容できる液浸槽を持つ。したがって、kukaiは、80ノードのシステムとなっている。また、20ブリックをFDRのInfiniBandで接続しており、 InfiniBandスイッチも液浸槽に内蔵して液冷している。

kukaiのLINPACK性能は460.7TFlopsで消費電力は32.8kWであり、エネルギー効率は14.046GFlops/Wとなっている。このエネルギー効率は、1位のTSUBAM3.0と比較して0.5%以下の僅差で2位になっている。

次の写真は、kukaiの液浸槽を示すものであるが、奥の6ブリックだけが挿入された状態を示している。実際のkukaiでは20ブリック全部が挿入され、冷媒のフロリナートで満たされた状態になっている。

CPUやGPUやDIMMなどを冷却して温まったフロリナートは、上部から吸い出され、冷却器で冷やされて液浸槽に戻されて、循環している。液体のフロリナートは空気と比較すると体積当たり1000倍以上の熱を運ぶことができるので、高密度の発熱に対応でき、装置を小型にすることができる。

次の図は、Yahoo Japanの子会社であるIDCフロンティアの白河データセンタに設置されたkukaiの写真で、右側の銀色の箱が液浸槽である。垂直に伸びている柱は、保守などを行う場合にブリックを引き上げるためのクレーンである。

●LINPACKの性能比率に見る謎
○3位は産総研のAIクラウド

3位は産総研のAIクラウドシステム(AAIC)である。10コアのXeon E5-2630Lv4(クロック1.8GHz)をCPUとして使い、NVIDIAのTesla P100 SXM2 GPUをアクセラレータとして接続している。1位、2位のシステムでは、Xeon 1個に対してP100 2台であるが、このシステムでは、1個のCPUに対して4台のP100を接続したノードとなっている点が異なる。そして、AIクラウド全体では、100台の計算ノードをEDRのInfiniBandで接続している。

このシステムは、961TFlopsのLINPACK性能を75.78kWの消費電力で実現しており、12.681GFlops/Wのエネルギー効率で、Green500 3位となった。

なお、産総研は2017年度には「ABCI(AI Bridging Cloud Infrastructure)」というスパコンを導入する予定で、こちらはAI向けの半精度浮動小数点演算の性能が130PFlopsを超えるという計画である。AIICは半精度演算性能が8.6PFlopsであるので、ABCIは15倍以上の規模となる。

○海洋研究開発機構のGyoukou(暁光)

PEZYグループが海洋研究開発機構(JAMSTEC)にスパコンを入れるという噂は、本当であった。Gyoukou(暁光)と名付けられたシステムは、Green500のトップ10システムの中で唯一、NVIDIAのP100 GPUを使わないシステムで、自社で新開発したPEZY-SC2をアクセラレータとして使っている。

しかし、Gyoukouについても、PEZY-SC2についても正式な発表は行われておらず、中身は謎に包まれている。

Green500の登録では、GyoukouはLINPACK性能が1677.13TFlopsで、推定消費電力が164kWで、エネルギー効率が10.226GFlops/Wで、7位というランキングになっている。しかし、今回、ExaScalerはTop500/Green500の登録には消費電力を記載しておらず、Top500のリストでは電力欄は空欄になっている。

ExaScalerの関係者に確認をとったが、このGreen500リストの推定値がどのように出されたのかは不明とのことであった。

そして、Gyoukouは、総コア数が3176000、アクセラレータコア数が3174400となっている。つまり、CPUのコア数は1600ということになる。CPUは16コアのXeon D-1571(クロック1.3GHz)を使っているので、CPU個数は100チップという計算になる。とすると、CPU 1個あたり、アクセラレータが31744コアということになる。仮に、PEZY-SC2の搭載コア数が2048とすると、Xeon D 1個にPEZY-SC2が15.5チップ接続されているという計算になる。しかし、これは半端であり、多分、16チップ接続で、歩留まり向上のために64コアを冗長としてディスエーブルしているのであろう。

また、ピーク演算性能は3207.68TFlopsとなっているので、コアあたりの演算性能は1010.5MFlopsという計算(この計算はXeon Dの演算を無視しているので、PEZY-SC2の演算性能は、もう少し低くなる)になる。各コアが2Flop/Cycleと考えると、クロックは500MHz程度という非常に低い値になってしまう。

正式な発表がないので、真相は闇の中であるが、これらの数字から見ると、Gyoukouは、まだ、開発途上で、TSUBAME3.0よりも完成時期は遅れそうな印象である。

○LINPACK性能比率の謎

計算だけを連続して行えばピーク演算性能が出せるが、LINPACKの計算では、連続アドレスでないメモリアクセスがあったり、他の計算ノードとデータのやり取りが必要になったりして、計算ができない時間が出てくる。また、多数の計算ノードに仕事を分担させるが、計算の最後の方では、仕事が無い計算ノードも出てきて、計算ノードの利用効率が下がるなどの性能低下要因があり、LINPACK性能はピーク演算性能より低くなってしまう。

Green500 9位のNVIDIAのP100 GPUを使うNVIDIA DGX-1システムのLINPAC/Peak比は67.54%である。NVIDIAはP100 GPUのマシン命令を使ってチューニングを行っており、これがP100で実現できる最大比率ではないかと思われる。

これに対して、Green500 1位のTSUBAME3.0は、LINPACK性能は1998TFlops、ピーク性能は3207.629TFlopsで、LINPACK性能はピーク性能の62.29%である。これはNVIDIAのシステムより5%程度低い比率になっている。

Green500 2位のkukaiのピーク比率は58.16%で、TSUBAME3.0より、4〜5%低い。仮に、kukaiのピーク比率をTSUBAME3.0並みに引き上げられたとすると、消費電力の絶対値は増えるが、LINPACK性能向上の方が大きく、エネルギー効率ではTSUBAME3.0を逆転できる可能性もあると思われる。

3位のAAICは44.72%という低いピーク比率に留まっている。1個のCPUで4台のP100 GPUの面倒を見るという構成なので、CPUの実行時間が見えているのかも知れないが、もう少し、頑張ってほしいところである。

ピーク比率で特筆したいのは、Green500 6位で、Top500の3位のPiz Daintである。ピーク性能は25326.264TFlopsに対して、LINPACK性能は19590TFlopsとなっており、ピーク比率は77.35%とNVIDIAのDGX-1システムを10%も超えている。P100 GPUの本家であるNVIDIAを大幅に上回るチューニングが、どのように行われているのかは、大きな謎である。
(Hisa Ando)

関連記事(外部サイト)