JavaScriptが無効になっています。
このWebサイトの全ての機能を利用するためにはJavaScriptを有効にする必要があります。
理化学研究所の最新スーパーコンピュータである「富岳」開発の指揮をとってきた、計算機科学研究センターのセンター長の松岡聡氏は、東京大学で情報科学を専攻し並列計算機の研究を行っていた。一方、同センターの運用技術部門長の庄司文由氏は、素粒子物理学を研究、その挙動を調べるためにスーパーコンピュータを使っていた。いわばスーパーコンピュータの作り手と使い手だった。現在、両者が「富岳」の運用の責任を任され、これまで公開されてこなかった運用技術をオープンにし、より故障の少ないシステムに活かしている。この運用技術を最先端の研究業績として残していこうとする二人に聞いた。
(インタビュー・文/津田 建二 写真/矢野 健紳〈アマナ〉)
松岡 ── 東京大学の理学部情報科学科を卒業した後、修士課程・博士課程に進学し、さらに助手に採用されて並列計算のソフトウエア系の研究を行い、博士号を取得しました。その後、東大の工学系研究科の情報工学研究科に移り、1996年に東京工業大学の助教授になり、2000年に東工大の学術国際情報センターの責任者になると同時に教授に昇格しました。そのセンターでスーパーコンピュータのハードウエア、ソフトウエアの研究を行い、その成果を用いて東工大の運用スーパーコンピュータである 「TSUBAME*1」の0号機から3号機まで開発・運用を行い、2017年より高性能ビッグデータおよびAI研究を目的に創設された産業技術総合研究所と東工大合同のオープンイノベーションラボラトリ長も兼任していました。その後2018年に理化学研究所の計算科学研究センターのセンター長になり現在に至っています。国レベルでの高性能計算・スーパーコンピュータ一般の研究を率い、その成果を活用した「富岳」の総責任者を務めています。
庄司 ── 山形大学の理学部物理学科を卒業し修士課程を修了した後、金沢大学で博士号を取り、素粒子物理学を研究していました。そこではスーパーコンピュータを使う研究を行っていました。その後、広島大学の情報メディアセンター等で助手をしていてスーパーコンピュータを管理する立場に移りました。理研でスーパーコンピュータ「京」の開発プロジェクトを立ち上げるという時に理研に移り現在に至っています。
松岡 ── そうです。もう少し具体的に言えば、東大には当時の大型計算機センターにだけでなく、研究科にも大型の並列計算機が導入されていて、それを使いながら研究していたのですが、東工大にはなかったので自分たちで作るようになりました。幸いマイクロプロセッサなど汎用技術でスーパーコンピュータが作れる時代になっていましたが、当時、東工大のスーパーコンピュータは古い高コストな専用設計のものを導入しており、結果としてその性能は貧弱でした。1990年代末に東工大の計算機センターを、本格的な情報系全体のインフラを司るセンターとして改組し、スーパーコンピュータをそれに合わせて大幅に向上させる計画が持ち上がりました。その担当部門の責任者として学内リクルートされたわけですが、自分としても大規模な並列計算機を実践しなければ意味がないと思っていたこともあり、一研究室の教員から、新センターに移籍し、スーパーコンピュータを研究開発するだけでなく、24時間動かす運用管理も職責として司るようになりました。
松岡 ── 常にスーパーコンピュータを監視し、壊れたら直し、資源を適切に振り分け、プラニングする、あるいはユーザーのサポートをする、というようなことです。また、将来のスーパーコンピュータの設計に、運用で得られたデータや経験を生かすことも重要です。
庄司 ── 少し補足しますと、スーパーコンピュータは電力を大量に消費し、その結果、熱を大量に放出します。このため冷却装置や、自前の発電機などを用意して、常に365日24時間使えるようにダウンタイム(使えない時間)をなくすように努めなければなりません。
松岡 ── 「富岳」(図1)に匹敵するような大規模な計算機センターは、クラウド業者のデータセンターなどにもありますが、それらの運用技術は決して公開されません。グーグル(アメリカ)が時々論文を発表することはありますが、多くの場合、自社に有利なデータしか出しません。理研では、運用を単に業務としてではなく、世界トップレベルの研究活動としても行い、その成果を発信することによって、より効率良く、より故障が少なく、ユーザが使いやすいインフラを維持する計算機センターが世の中で実現する事を目指しています。
庄司 ── 運用研究を業績として残すことは当計算機センターのミッションの一つです。国際学会などの場で運用分野の最新の技術トレンドをキャッチアップするとともに、我々の運用のスキルや知見を積極的に発表することで、運用技術の進展に貢献したいと考えています。
松岡 ── 当センターには庄司部門長の下に5つの運用ユニットがあり、それぞれのリーダーのほとんどが博士号を取得している「技師」(テクニカル・サイエンティスト)で、構成員の多くも博士です。
松岡 ── スーパーコンピュータは今と昔とでは大きく違います。例えばCray-1のような1970年代のスーパーコンピュータは1個のCPUの速度を競っていました。Cray-1はIBM(アメリカ)のメインフレームコンピュータ*2よりも3〜4倍速かった。当時はCPU1個が高価で、大量に並列化して使うことが難しかったこともあり、CPU1個の高速化にはクロック周波数*3を上げるなどの技術が実現されていました。しかし、一個の周波数を上げると消費電力が大きくなりすぎ、また他の限界もあって高速化の度合いは限られます。そこで1980年後半ごろから複数のCPUをネットワークで接続して並列処理を行う技術が発展しだしました。そのためにはCPU一個一個が安くならなくてはならないのですが、幸い1990年ごろからマルチメディアやインターネットの普及で安価なCPUの高速化が本格化し、並列化が有利になったのです。また、2004年ごろからマルチコア*4として一つのチップ内で複数のCPUを並列動作させるようになりました。並列化にも限界があるとかつては言われましたが、それを克服し、並列計算ができるようになりました。
しかし日本では、CPU1個の速度を上げることに注力していたため、並列技術で遅れてしまいました。
CPU演算には、市販のCPUチップを大量に使う必要があります。そのCPU同士を高速ネットワークで結合します。データを交換しなければならないからです。実は、スーパーコンピュータと比べると、データセンター内部のネットワークはそれほど速くなくてもよいのですが、「富岳」のネットワークはインターネット全体よりも何百倍も速いのです。
CPU部分は「富岳」ではマルチコアというより、メニーコア*5で構成しました。命令セットはArmアーキテクチャ*6なのでスマホと同じソフトウエアが動くのですが、1チップに50コア程度のArm CPUコアを集積し、並列化して動かします。また、我々は独自設計*7により、コアの中も並列演算を高度化しています。このためスマホとは違い何十倍も速いのです。50コアという最もハイエンドなスペックのCPUを約16万個、合計約800万個のArm CPUコアを搭載したスーパーコンピュータとなっています。これらの間を超高速のネットワークでデータ交換しているのです。
ソフトウエア、特にOSはRed Hat Linux*8ですし、その他のソフトもArm PCやスマホなどと同じものが動くので、いざ使ってみるとパソコンと同じように使えるのですが、ものすごく速いマシンとなっています。
松岡 ── 実は、1980年代にACM(Association for Computing Machinery:計算機学会)のゴードン・ベル賞(Gordon Bell Prize)が設立されたのですが、これと関係が深いのです。当時はアムダールの法則*9により、並列処理はすぐ飽和すると言われ、このためCPU1個を高速化する事の重要性が叫ばれました。これに対して、データの大きさを2倍にしてCPU1個にそれぞれのデータを割り付ければ、CPU1個の処理時間はそれまでと変わらないが、データ処理量は2倍になり、結果として全体の性能は2倍になるはずだ、とジョン・グスタフソン(John Gustafson)が提唱したのです。これがグスタフソンの法則*10です。しかし、そのような並列処理が本当にうまくいくのか、誰にもわかりませんでした。そこで、DEC(アメリカ)のスターエンジニアだったゴードン・ベル氏が、それを実証するための個人賞を設けたのです。サンディア国立研究所のグスタフソン達のチームは賞の設立初年度に並列処理で大幅な性能向上に成功しました。大規模並列計算すれば高速処理できることが証明されたのです。ここから大規模並列処理技術が発展して、ゴードン・ベル賞も今やスーパーコンピュータ業界のトップ賞の一つの学会賞になりました。
2021年11月には新型コロナの基本的感染経路である飛沫感染に対し、非常に高度なモデルを開発し、富岳を大規模に用いて世界で初めて様々な社会状況で正確にシミュレーションし、さらに可視化などで一般の方々にもその成果をいち早く流布させ、感染予防に貢献した功績で「富岳」はゴードン・ベル賞の特別賞を受賞しました。
松岡 ── 並列計算する時に各CPUのデータを交換せずに計算できるのであれば、速く演算できますが、実際にはそうはいきません。データの境界部分では互いにデータ内容を知る必要があるためデータ交換が必要です。大規模なノード数*11に比例して通信も速くする必要がありますが、クラウドデータセンターや通信キャリアの基地局内のネットワークとは事情が違います。クラウドや基地局では全体のネットワーク速度を速める必要性がスーパーコンピュータ程ではありません。例えば基地局では、ある一定の割合以下の端末がある程度の速度で通信しているという想定に対して、多少のマージンをとって、帯域オーバーでダウンしない程度の速度・容量で設計されています。
しかし、「ToFu」を擁する富岳を含めて、スーパーコンピュータのネットワークは常に全てのノードでデータ交換しうるという設計にしなくてはなりません。例えば境界領域の交換も、全ノードが一気にフルスピードで動き、データ交換を行い、それがずっと継続します。特に、「富岳」の「ToFu-D」は、以前のスーパーコンピュータ「京」の「Tofu」よりも様々な技術進化で高速化しています。例えばチップ間のネットワークのスイッチは「京」では別チップでしたが、「富岳」ではCPUのチップ内に内蔵し、大幅な高速化と低消費電力化を達成しています。
普通のデータセンターでは1ラックの半分くらいを3000ポート近い光ファイバを束ねるネットワークスイッチが占めていますが、「富岳」ではCPUチップ内にも組み込まれているため、I/Oバス*12近くにネットワークスイッチがありません。データセンターやキャリアの基地局のように、「富岳」にはネットワークスイッチも16万個と大量に設けられています。しかもデータセンターのネットワークとは違い、全てのノードとの通信を高速にしなければなりません。「富岳」では、CPUに注目が集まりますが、実は最もすごい技術はネットワークスイッチ技術が重要なのです。
また、運用側からすると、ネットワークがきちんと動いていることを担保しなければなりません、これも「富岳」規模の巨大ネットワークとなると大変難しいのです。もちろん、「富岳」の中には、何か故障が起きたりネットワークで問題が起きたりしても検出し、できる範囲で自動的に修復する技術は入っていますが、たくさん壊れると、修理する必要が出てきます。これは人間と同じで、ちょっとしたケガは自然に治癒しますが、大きなけがは病院に行って治します。理研の運用部門は病院のような組織です。
──どのような設計思想で「富岳」を開発されたのでしょうか。
松岡 ── まずは電力供給の制限、次にマシンを設置するスペースの制約、それを満たすための電力効率を、汎用CPUとしては革新的に向上させることが目標となりました。CPU単体の性能や汎用性があることも当然重要でしたが、汎用性だけなら市販のCPUチップを使えばよいわけです。しかしながら、電力やスペース、コストを鑑みると、市販のCPUチップでは無理なので、2020年に市販されると想定したチップよりも圧倒的に優れた電力効率の良いCPUチップを独自に開発しなければなりませんでした。
命令セットアーキテクチャはArm製ですが、その中身であるマイクロアーキテクチャは理研と富士通が共同で開発しました。設計でさまざまなシミュレーションを行い、技術を開発し、HPC*13向けに最適化しましたので、CPUそのものの性能は市販品よりも何倍も高く効率も優れています。
もう一つは、前述したネットワークの高速化です。さまざまなアプリケーションで試しましたが、ネットワークがボトルネックになるようなことはほとんどありませんでした。このネットワーク技術は世界のさまざまなデータセンターの中で使われるトラフィックと比べても10〜20倍も高速でした。そのカギは、前述したチップ内のネットワークスイッチと、光技術です。富岳のネットワークは高速なので、銅線では距離が稼げません。そのため、光ファイバを用いるのですが、ネットワークの特性上、ノード数の数倍、つまり100万規模のネットワークリンクが必要となります。それを最新の光ファイバとトランシーバ技術を用いて帯域を保ちながら、光ファイバの本数を削減しています。それでも、富岳には10万本規模のAoC光ファイバが用いられており、その総延長は2000kmにもなります。
松岡 ── データセンターでやるべきことは冷却を効率化することと、マシン自身を効率化することですが、後者の方ばかり言われることが多いようです。
庄司 ── データセンターのエネルギー効率は、PUE(Power Usage Effectiveness)という指標で評価されます。センターの全消費電力を、IT機器が消費する電力で割ったもので、1になる場合が最も効率が高く、大きくなるほど悪くなることを意味します。
平均した数字ですが、表1のようになります。「京」と比べて、「富岳」の場合のPUEは現状でも改善されていますが、今後さらに効率化に向けた取り組みを進めます。一方、(理論)演算性能に対する平均消費電力という観点では、約30倍程度改善されていることになります。
電力 | 「富岳」 | 「京」 |
施設全体の電力 | 23MW | 15MW |
マシンの電力 | 18MW | 11MW |
PUE | 1.28 | 1.36 |
消費電力あたりの演算性能 | 29.85 TFLOPS/kW | 1.03 TFLOPS/kW10PFLOPS |
ハイエンドコンピュータは密度が高く、水冷しか選択肢はありません。「富岳」も1ラックに約384ノード入りますので非常に密です。水冷でどう効率良く冷却するかについてスーパーコンピュータの水冷技術は進んでいて、例えば冷水温度を高めに設定することによって、自然の空気で冷却するようにします。それにより、冷やすためのエネルギーを節約することができます。このような技術を組み合わせて、冷却においてもできるだけエネルギー消費を減らし効率を上げようとしてきました。
昔のメインフレーム時代から水冷は使われてきましたが、今の水冷はモジュラー方式になっていて、コンセントにプラグを指すように抜き差しできるようになっています。昔の水冷技術よりずっと安全でコストが安くできています。
松岡 ── 特に深層学習を中心としたAIの一般的な高速化の手法としては、深層学習では演算精度に対する要求が緩いので、通常のシミュレーションで用いられる32ビット(浮動小数点演算・単精度)や64ビット(倍精度)ではなく、回路が大幅に簡単になる16ビットの半精度演算や、8ビットの整数演算を用いられるようにして、回路が簡単になった分、演算器を増やして、それらの並列化により性能をあげるのが近年GPUなどでポピュラーです。「富岳」ではGPUと同様に16ビット半精度や8ビットで整数演算をコア内で並列演算する機能を搭載し、大規模なAIの演算を直接サポートしています。特に、深層学習で中心的に用いられる半精度の密行列演算の能力を図るAIのベンチマーク「HPL-AI」ではマシン全体で2エクサ(10の18乗)FLOPSの性能を示し、世界一の性能を4期連続で達成するとともに、宇宙のダークマター(暗黒物質)の分布を調べるAIアプリであるCosmoFlowでも、富岳8万ノードを使った計算で2021年11月に世界一を獲得しています。
科学技術計算・シミュレーションの分野では、従来の物理モデルに基づいた第一原理的シミュレーションと相補的にAIを使ったシミュレーションを行うことが当たり前になりつつあります。創薬開発や、物質探索、台風の検出など、大規模や細かい解像度が必要な計算で、第一原理シミュレーションの限界がきたり、あるいは観測データとの連携が求められたりする際など、様々なシナリオでAIが活用されています。
大規模な学習が必要なAIアルゴリズムはアメリカで先行しましたが、日本でも「富岳」の登場で、それに匹敵する学習が可能となることにAI研究者が気づき始めており、我々もそれらの研究開発と様々な協業を始めていて、これからますます「富岳」でのAIは増えてくると思います。「富岳」は公開の汎用プラットフォームですから、みんなが大規模なAI向けの学習データ、学習アルゴリズムや学習ネットワークを収集・開発・生成して、共有するマシンとして使えるのです。
庄司 ── 正式に運用を開始したのは、2021年3月からですが、今年度の稼働率はここまでのところ約97%と、極めて安定して稼働しています。一方、実際にどの程度利用されたかを示すジョブ充填率という指標で見ると半年ごとにピークが来ます。例えばある課題が年間で100万ノード・時間を利用できる場合、半年ごとに50万ノード・時間が割り当てられます。期限を過ぎるとその資源は使えなくなるので、3月末と9月末にピークが来るのです。
ジョブ充填率は、稼働時間に対して利用者が実際に使った時間を表します。ジョブ充填率が80%以上になると待ち時間が長くなります。実際に昨年9月の混雑時には月平均で見ると約90%で瞬間的にはほぼ100%となることもありました。「富岳」のような大規模なシステムは、資源の隙間をできるだけ埋めつつジョブの待ち時間を減らすために、大量のジョブをどのようにスケジューリングするかがとても重要になります。
松岡 ── 次期スーパーコンピュータ“「富岳」NEXT”は、2030年より前に完成させることを理想としていますが、まだ具体的な設計段階ではなく、時期をコミットしていません。現在は検討段階にあり、いろいろなプロジェクトの下で基礎研究を行っている所で、さまざまな研究者や関係機関と議論している最中です。その中でも、「富岳」の運用データや、性能データは非常に重要で、これらを元に次期スーパーコンピュータの研究開発が進められていくのは間違いないでしょう。つまり、未来のスーパーコンピュータは、今のスーパーコンピュータを使って作られるので、世界最高レベルの運用を行うのが大事なのです。