富岳の世界一速いスーパーコンピューターという表現は厳密には正しくない。正確には現時点にて世界一高速処理できるサーバーである。
研究中の新型スーパーコンピューター富岳が試験稼動の折、世界一の処理速度を記録したことは連日様々な媒体を通してニュースとなっている。
しかしニュースを見ても何が何だかさっぱりわからない表現が散見されることに疑問を抱く者は多いだろう。
曰く「京などの従来のスパコンはF1だが、富岳は大衆向け自動車」だとか、「これまでのスパコンはロケットだが富岳は超音速戦闘機」だとか、明らかに従来のスパコンより遅い対象物で表現しようとして何がすごいのかまったくわからない表現だらけだ。
あのIBMですら驚きを表明したコンピューター「富岳」。
これは一体どうして世界中からその性能について評価されるのか……
それは本機が厳密には「スーパーコンピューター」ではなく、汎用的なクラウドコンピューティグ処理を行うことができる、「現時点で世界のどのサーバー機よりも超高速演算処理可能なサーバー」だからだ。
富岳が今回やったことは「サーバー」という立場から演算処理を行っただけにすぎず、それを他のスパコンが真似しようとすると全く再現出来ないという汎用コンピューター……すなわちパソコンの究極系たりえる存在が、2020年6月時点において世界のすべてのコンピューターよりも10倍以上処理速度が速いことが恐ろしいことなのだ。
車で例えるなら従来のものは直線における速度と加速力を競い合うドラッグレース用のドラッグマシンであり、本機はプリウスである。
ただし、そのプリウスは地上にて超音速が出せると思っていただいていい。
超音速で自由自在に市街地や高速道路を走り抜けることが可能なプリウスこそ、富岳の恐ろしさなのだ。
いわば、曲がることが出来ないドラッグマシンと異なり公道という世界を走ることが可能な車こそ、富岳なのである。
では一体どういう違いがあるのか、この1つ前の世代である京と比較しよう。
前身のスーパーコンピューター「京」については流行語大賞に一時期入ったこともあるぐらい、名前だけなら聞いた存在であろう。
大体が、今回の件でもネタにされた「1位じゃないといけないんですか」の台詞とセットで覚えられている存在であり、実はこの感情論だけで押している台詞が富岳誕生に大きく関与しているものであるというのも見逃せない点だ。(ただし、それが良い意味で影響したとは筆者は思っていないとだけ言っておこう)
この京。
一体どうして予算が削られる審議の対象となったのかというと、汎用性が全く無いからである。
一時期は世界一にもなることが出来た京については、OSだけを見ればLinuxを利用した富士通独自のOSを搭載はしているものの……
クラウドとサーバーの違いすらわからぬ議員の素人の戯言に反論することが出来ないほど汎用性が無い代物だった。
もともと最高性能を目指すスパコンというのは、特定の演算処理に特化したものであるのが当たり前。
いかにすばやく特定のアルゴリズムを実行できるか……
そのためだけに中央演算装置たるCPUはハードウェアという立場としてもアルゴリズム処理に特化されることとなり……
特定のプログラム以外を動かすのが困難な状態にまで陥ることなど当たり前の世界なのであった。
京においては8つのCPUを用いた子機を複数組み合わせた集合体としている。
8コアCPUというと今日のスマホとそう変わらぬ構成であり、大量のスマホを並列で繋げて演算処理を行おうとしたものがスーパーコンピューター「京」なのだが……
これだけを聞くと何でも出来そうなように見えて、実際は何かをやろうとすると著しく処理速度が落ちるのだ。
その原因はCPUの構成にあった。
京の8コアというのは、実は親CPU1個と子CPU7個による8コア。
親が子に向けて指令を出し、子は親に従って処理を行い、親に結果を受け渡す。
そして親はその計算結果を纏め上げた回答を他の子機達と共有して高速処理を達成していくというもの。
だが、これに例えば32bitや64bitと呼ばれる一般的な汎用コンピューターと同様の計算方法を行うと……親CPUは処理能力がパンクしてしまい、子CPUの性能を全く活かすことが出来ないばかりか……最終的には処理が追いつかずにオーバーフローを起こしてしまう可能性が指摘されていた。
原因は親CPUはシステム処理を行う構造となっていたこと。
複雑な計算は親しか出来ず、子は単純計算に特化されていた。
ゆえに並列処理といっても汎用コンピューターとして必要となる演算能力を子CPUは満たしていないのだ。
プログラムを流す場合、必ず親CPUを通して処理しなければならず、この親CPUは汎用コンピューター用の処理(32bit、64bit)を想定して作られておらず、OS側で対応させることで一応の処理は可能だが実際には殆ど役に立たないものであると言われていた。
一応OSはLinuxをベースとして富士通が組んだものであったので汎用処理は不可能ではなかったものの……可能か不可能かでいえば可能なだけで、十分な性能を発揮できるものではなかったのである。
ところでここまで書くと32bitや64bitってなんぞやって思うかもしれないが、これは計算時において記憶しておける記憶容量……すなわち式や途中計算結果に使える文字数の限界量とでも思ってくれればいい。
32bitの場合は4294967296……容量にして約4GB分の容量があり、0と1を組み合わせた処理の果てに前述の領域を式と回答の領域として保存することで1つの結果を算出することが出来る。
一方で4GBを超える式と計算が必要な場合、一度これらの領域のデータを一部消さねばならぬので計算のやり直しが必要となり、高度な演算であればあるほど式や途中計算が必要なので何度も計算をやり直すハメになって処理速度が低下してしまう。
現在一般的な64bit環境というのは、この領域を2の64乗、つまり18446744073709551616とすることで大きく余裕をもたせ、高度な演算処理を行っても途中結果や式を保存し続けられる関係上、計算回数を減らすことが出来るため処理速度の低下が極めて起こりにくいので今日の汎用コンピューターの基本処理方法となっているのだ。
京に関してはCPUは8コア全て特殊な64bit演算処理なのだが、前述する"システム計算は必ず親CPUを通す"こととというのが仇となり、これは特定の演算を行う上では極めて有効に働くが、実際の汎用コンピューターにおいては事実上CPUが1コアしかないのとほぼ同じ状態であり、処理速度はきわめて劣悪なものとなる。
ちなみに言うとこれは世界のどのスパコンでもある程度は当てはまることではあるのだが、京においてはその度合いがひどすぎたのである。
ここで余談だが、この8コアcpu構成の説明にピンと来た者もいるだろう。
そう、PS3で採用されたCELLと極めて似たような構成なのだ。
PS3のCellの場合、1個の親CPUを中心に単純命令しか受け付けない子CPU8個の9つのCPUで構成されていた。
これが極めてプログラムを作る上では大変で、親CPUに適切に命令を出せない場合はPS2に毛が生えた程度のグラフィック処理しか出来ない代物であった。
このCPUはIBMや東芝などが協力して開発していたもので……じつはIBMのスーパーコンピューター用CPUをベースに作られている。
いわばPS3は京のような存在のCPUを搭載してみてゲーム機にしましたな存在であると言い切って良い。
リアル世代ならゲームクリエイターから散々な評価を下されたCELLをご存知であろう。
(実際問題互換性を保たせるのが大変で次世代機たるPS4は同じBDという媒体を読み込むにも関わらず、PS3のゲームは読み込めないものとなっている)
親を中心に計算させる関係上、子を完璧に使いこなさないと即フリーズみたいなことがあるこいつと、京は同様であり、京で汎用コンピューティングしようと思えば殆ど役に立たないというのはPS3を例にすれば説明できてしまうのだ。
これこそが予算審議の議題に上がり「1位じゃないとあかんのですか」と素人に詰め寄られて反論できない原因だったのだ。
サーバーもクラウドもわからぬ素人議員にすら問題点を指摘されて言い返せなかった京は、なんだかんだ政権交代が行われたことでその命を紡いだ。
しかし次の世代においては汎用性がある程度確保できねば話にならないのではないかというのは現与党もある程度認識しており、開発者たる理研&富士通に対しても「汎用性を確保するように」という注文が付けられたのである。
そこで富岳はどうしたか。
なんとスマホCPUとして一躍有名となった汎用型プロセッサの雛形の1つたるARMをベースに、京の頃に培われたCPUノウハウを導入して魔改造したものを新規採用したのである。
正直言って、ARMを採用したというだけでもっとニュースになるべきだったことぐらいすごいことなのだ。
普段われわれが用いているスマホの究極なる姿が富岳といってもいいようなものなのである。
ARMについて説明するならば、紅茶の国において開発された極めて電力効率に優れたCPUアーキテクチャ……すなわち計算処理方法を行うための構造体を持つCPUである。
そう、なんとこの富岳。
派手に紅茶をぶっかけられて京より進化していたのであった。
ARM自体は古の航空エンジニアなどがやっていた「論理式」というべきものそのものであり、メーカーが販売しているのは基本的にはより合理的な計算・処理方法とその構造処理に過ぎない。
このライセンス契約を受けた会社がARM方式による計算処理方法が行えるCPUを作るとARMとなるのだ。
よって様々なメーカーよりARMは出されているが、計算方法が同じなだけで中身は別物と言い換えることが出来る。
中身の構造が別でも計算方法は同じだからこそ、同じOSをインストールすることが出来るわけだ。
特にこのARMを採用したことにより、富岳の自慢の1つとして理研では「動かそうと思えばAndroidだろうがiOSだろうがインストールできる」といったコメントが寄せられているが、今回の件でGoogleが真っ先に興味を示したのは他でもないARMベースのスパコンだったからである。
CPU構成はARMの8コアを8つ並列に接続し、この8コアを8つ組み合わせた48コアとなっている。
京の頃に使われた親と子の関係は8コアを1つのブロックとして処理を分散させるための技術に活用されており、今回は完全に並列処理なので8コア内において親や子は状況によっては逆転運用することも可能。
まるでバトンパスやラグビーにおけるボールパスのごとく親と子が切り替わりながら高速演算処理し、その結果を48コアが共有しながら超高速の処理を実現した。(富岳は48コアCPUを持つコアコンピューターの集合体となっているばかりか、実はすでにコアとなるコンピューターは販売されていたりするため、やろうと思えば富岳は再現できなくもない)
そしてこのARMをメインプロセッサとしたことにより、なんとこいつにインストールされているOSも汎用型のLinux系OSたる、レッドハットだ。
このレッドハットは何かというと主としてクラウドサーバー機器用の汎用OSであり……
ここまで説明すればもうわかるだろう。
本機はスパコンでもあるが、もう1つの正体は「クラウドサーバー」そのものなのであった。
今回の試験稼動についても、あくまでこのレッドハットに計算アルゴリズム処理を行わせただけ。
本来ならばこういった場合、OSが汎用的過ぎて高速最適化されておらず足を引っ張るはずが……富岳は現時点でそれでも世界の既存のスーパーコンピューターを大きく凌駕する処理性能を示した。
ちなみに搭載CPUの関係上、windowsサーバーなどもインストールは不可能ではなく(最適化は必要)、やろうと思えばWindowsOSは疎か前述の通りAndoroidやiOSなどもインストール可能なのである。(最適化は必要)
これが、ただのスーパーコンピューターではない富岳の正体なのだ。
F1と自動車がどうたらこうたらというが、もっとわかりやすい表現があるだろと筆者が思う理由であるわけだ。
今自分たちが使っている、手元にあるスマホの数兆倍の処理速度を持った存在。
それこそが富岳なのだといえば、どれほどわかりやすいか。
開発側が厳密にはスパコンではないだとか、処理速度よりも注目してほしい部分があると述べる最大の理由は、足枷を身に付けた汎用OSを用いてそれを達成したこと。
ただ計算するだけならもっとそれに特化したほうがすばやく計算できたことであろう。
だが富岳はそれをやらなかった。
おかげで何でも出来るようになり、流体力学的研究やら何やら様々な分野で期待されている期待の星なのである。
いわばF1と自動車の関係というのは、「F1レースにてプリウスで家族4人乗りで舐め腐った状態で参戦」したが、余裕の1位をとってしまったという恐ろしい世界1位なのだ。
しかも速度差的にいえば従来のスパコンがF1だとこのプリウスは鈴鹿で超音速を出している事になる。
「パパ本気出しちゃうぞー」っていいながら家族サービスついででF1マシンを尻目に何度も周回遅れにしてコースレコードを取った。
そのようなことをやってのけたのである。(ここでいう足枷を家族として置き換えることが出来よう)
報道するのは構わないが、やるならもうちょっとわかりやすくしてほしい。
F1や自動車をそのまま例にしたって全くわけがわからない。
今回このプリウスがやろうとしていることは鈴鹿を走った後に「さて、パパはこのまま東京に戻ることにしよう。東京中の街中を走り回って大気を分析し、コロナの感染拡大状況を把握しちゃうゾ!」みたいなことをやろうとしているわけだ。(実際にはワクチン作成もやろうとしている)
F1達はそれが出来ない。
公道走行を許されていないだけでなく、鈴鹿で追い抜かされたF1は現実世界と異なり、ミニ四駆がごとく自身で曲がる能力を持たずに決められたコースに合わせて壁にローラーを押し付けながら高速で走りぬけただけに過ぎないからだ。
だが富岳は出来る。
だって乗用車で、自分でハンドル操作して曲がることが出来るからね。