Breezin'

オタクSEの日常のノウハウやチラ裏

スーパーコンピュータのランキングに関する話

初めての情報系記事。

f:id:pulltuas:20161023073623j:plain

TOP500と呼ばれるランキングをご存知だろうか。
毎年6月と11月に、ISC, SCと呼ばれる、スーパーコンピュータを始めとした高性能計算に関する国際的な学会が開催されるのだが、その場で発表される有名なスパコン世界ランキングである。
昔に仕分けで話題になった「1位」の基準はこのランキングを基にしている。
実はその学会が今週開催されており、ちょうどそのランキングが更新されたのだ。

japan.zdnet.com
ランキングによると、1位と2位は中国製のスパコンが変わらず堅持という結果になった。
日本製のスパコンでは、理研が5位から7位に転落し、東大・筑波大のOakforest-PACSがその1つ上、6位に入ることとなった。
そのどちらもが富士通製である。

本記事では、「そもそも順位って何を基準にしてんの?」「京とOakforestの違いって何なん?」みたいな素朴な疑問について、出来るだけ簡単にまとめておきたいと思う。

 1. そもそもスパコンとは?

実のところその定義は人によってあやふやで、ましてやHPC (High Performance Computing) が指し示す物はもっと広い。

現状、個人で使えるコンピュータより100倍1000倍以上の速度を持っており、提供者側がスパコンと言えばそれはスパコンだと言って良い。(定義に関する議論はあるみたいだが調べてない)

世においてスパコンと呼ばれるコンピュータは、天気、地震津波予測などの自然シミュレーションに始まり、創薬の分子パターン発見のような医療用途から、核兵器臨界前核実験のような軍事用途まで、分野を限定せず大量のリソースを必要とする計算に広く使われている。

今やシミュレーションは理論・実験に続く「第三の科学」とも言われており、計算資源は鉱物資源と同じく国力に直結するため、性能の良い、いわゆる速いスパコンが国家として必要だという意見に異論はない。

 

 2. スパコンの「性能」

じゃあ「性能が良い」「速い」って何なんだよ?って疑問が生じる。
結論としては、プログラムを速く実行できる、という一点に行き着く。

システムの性能を評価する軸として一番重要なのは、FLOPS(1秒間に何回浮動小数点演算ができるか)である。
プロセッサの設計から理論上のFLOPS最大値は算出できる。

しかし、プログラムを実行するときに、プロセッサの理論最大性能を出すことは現実的にできない。
実測値との乖離やばらつきが必ず生じる。

 

TOP500では、単純な線形方程式をひたすら解くベンチマークLINPACK)をランキングに用いることで、理論値と実測値の乖離やばらつきを最小限に抑えている。

そのため、理論的には広大な土地と原発を何基も用意してインテルXeonを無数に繋げれば性能はどんどん増え、1位を取ることはできる。

 

じゃあ予算の許す範囲でそうすれば良いじゃんと思うが、厄介なのは、実効性能がプログラム・システムによって大きく変わることである。

実際に研究・産業に使用されるシミュレーションは、殆どがLINPACKのような行儀の良い挙動をしない。

データ量が多く、疎行列を含み、並列化しづらいようなプログラムは、いくらCPUの理論上のFLOPS値が高かろうと、他の部分(例えばメモリ)の性能が低ければそれがボトルネックとなって実効性能は上がらない。
(バンド幅ボトルネックとかデータの局所性問題とか、アムダールの法則とかKarp-Flatt metricとか色々)

 

そのため、後述するが、これらのスパコンは構成の差によってそれぞれ得意な分野を持っており、LINPACK以外のプログラムを用いた場合、順位はごっそり入れ替わる。

あるスパコンで理論値の50%の実効性能(クソ高い)を達成するプログラムがあったとして、このプログラムを他のスパコンで動かそうとすると、そっちでは10%も出ないとか、酷いと全く動かない事態が普通にある。(性能可搬性と呼ぶ)

 

運用時に回すプログラムを基準にせず、お行儀の良い理想的なプログラムを基準にしてひたすら巨大化の度合いを競い合っている。

TOP500で1位を一瞬取ることに国威発揚や夢以上の大した意味がないと一部で言われているのはこのためである。

いわゆる大艦巨砲主義なのである。

 

3. 今回京を抜いたOakforest-PACSは京とどこが違うのか?

単純な演算性能だけで見ると京に勝ったOakforest-PACSだが、どこが違うのだろうか?

まずはプロセッサだろう。
京に搭載されているのは富士通が独自開発したSPARC64 VIIIfxであるが、Oakforestに搭載されているのはIntelXeon Phiである。
SPARC64は汎用CPUに近い8コアであり、Xeon Phiはアクセラレータ(いわゆるGPU)に近いメニーコアなので、構造・特性に結構な差があると言える。

Xeon Phiはあまり触ったことないのでどのような計算に強いか分からないが、既存のプログラム資源をXeon Phi向けにチューニングしましょうみたいな研究はよく聞くので、結構性能を出すにはピーキーなのではないだろうか... x86だからCUDAよりはマシだと思うが。


その点京は様々なプログラムである程度の性能が出る(すなわち「使いやすい」)と周りで評判なので、理論演算性能だけで見ると負けていても、その点ではアドバンテージが大きいし評価できると思う。


他にも様々な部分で違いが存在するが、京が独自技術にこだわっている代わりに、OakforestはIntelなどの汎用部品を用いている印象である。



外国産に屈したと結論付けるのは早計だと思うし、国産で独自技術を開発するのは大いに歓迎するところだが、京が問題なのは、開発費・維持費の巨額さである。

開発費に1120億円。しかもプロジェクトが長期化し、日立やNECが撤退してゴタゴタしたりと、計画が何度も変わっているので、基礎研究というよりは人月商売に持ってかれている面が強いのではないだろうか。

また、維持費に年間80億円。この維持費はOakforestの約4倍におよぶ13MWの電力を賄うための電気代と、土地代と、管理費である。
他の国のスパコンに比べてもこの維持費は多い。
施設規模が大きく(システムのラック数はOakforestの約8倍:864個)、何階にも渡る大きな専用ビルを用いているという要因が大きい。

正直この80億円があればそれなりのスパコンをもう一つ作れるのである。
(4位:IBMSequoiaは開発費79億円)

その開発費・維持費でIntelから汎用CPU買って全国の大学や研究所にスパコンバラ撒いた方が、計算資源の総量が絶対に増えるし、研究者や産業界にも恩恵が大きいし、科学技術の基礎研究も進むんじゃない?

NECと日立が炎上プロジェクトから逃げて残った富士通1社に1000億もの公金をまとめて流し込み、大艦巨砲主義を目指したところで、本当に「科学の発展」になったの?

という問題である。

 

4. あの仕分けについて

京が色々と未熟な代わりに、「使いやすさ」重視で評判なのは、例の仕分け後に使いやすさ重視の設計へ見直し、再度審議にかけたことで予算を取得できて完成に漕ぎ着けたからだと聞く。

賛否両論起こりそうな危ないネタだが、蓮舫が生贄になって世論に火を付けたことでこのようなシステムが出来たと考えれば、彼女は割りと良い仕事をしたのではないだろうか。

ちなみに、当時の背景を知った上で議事録もしくはまとめ記事を読めば分かるが、日立とNECが逃げた炎上プロジェクトに何百億もの公金を注ぎ込み続ける意味をプレゼンしなければ行けない場で、あまりにお粗末な担当者である。

例のセリフの意味が、「1位を目指す意味なんてあるん?」だと世間一般では思われているが、文脈を読むと「他の国に抜かれて2位になったら巨額の投資は全部無駄になるんか?リスクヘッジどうしてるんや?付加価値はつけないのか?」という解釈のほうがしっくり来ると思うのだが。)

 

政治スタンスが絡む問題のため深い言及は避けたいが、私と同じ考えの記事を何件か貼っておく。

一言言いたいこととしては、可哀想な理系と無理解な政府という対立構造の印象を作り上げたマスコミ(ネットメディア含む)の手腕凄かったなーと。

bylines.news.yahoo.co.jp

hazakurakeita.hatenablog.com

5. 余談

話題が二転三転してしまって読みづらい文章になってしまった気がする。

HPC業界の現状と前提知識について、出来るだけ分かりやすくなるように書いたつもりだが、更に発展させて

・京が世界1位を維持しているGraph500ランキングにおけるHPCGベンチマークと、その魔改造的チューニングとか
・Green500ランキングで世界1位を取ったPEZY Computingと、MIMDメニーコアアーキテクチャの特性とか
・現在TOP500で世界1位のSunway TaihuLightに用いられている純中国産のヘテロジニアスマルチコアプロセッサの凄さとか特性とか(調べるほどただの大艦巨砲主義と侮れない技術な気がする)

のトピックについて論文や偉い先生の意見引用しながら考察したいなあと思うけど、面倒臭いんでいつになるか分からん。
専門家に理論で殴られたときにボロが出そうで怖いんよな。
気が向いたら書くかもしれん。