世界のスーパーコンピュータとそれを動かす人々


10月 30, 2023

ExaFLOPS:その言葉を使い続ける

HPCwire Japan

Doug Eadline オリジナル記事はこちら

Tom’s Hardwareの最近の記事は、”China Wants 300 ExaFLOPS of Compute Power by 2025 “という見出しで始まった。興味をそそられ、さらに読み進めると、「中国は197エクサフロップスの総計算能力を保有している」という。この数字は私には意味がわからなかった。

現在の2023年6月のTop500リストでは、合計5.24エクサフロップスである。中国がしばらく新しいマシンをリストに載せていないこと、リストが500台しかないことを考えると、197ExaFLOPSという数字は高すぎるように思われる。例えば、Top500リストがHPCマシンの平均的なスナップショットであると仮定すると、マシン1台あたりの平均性能は10.48ペタFLOPSとなる。したがって、197ExaFLOPSを達成するためには、18K台のマシンが必要となる。

この数字を別の角度から見ると、中国は2025年までに約100エクサフロップスを増設したいと考えている。El Capitanのコストを2 2エクサフロップのマシンで約6億ドルとすると、中国の100エクサフロップスのコストは約300億ドルとなる。

 
  FLOPSという言葉は、HPC以外でも新しい意味を持ち始めている。
   

明らかに、この数字は意味をなさない。このExaFLOPSの総数には、何か別の理由があるはずだ。

Intersect360 Researchのアディソン・スネル氏からの意見は、これらの数字に光明を当てるのに役立つ。アディソン氏はまず、FLOPの定義に問題がある可能性を指摘した。伝統的にHPCでは、FLOPは倍精度演算と仮定されているが、AIの成長により、この数字は単精度または混合精度測定に基づいている可能性がある。

さらにアディソン氏は、この数字はおそらく従来のHPCシステムではなく、ハイパースケールインフラに基づいていると投稿している。同氏によると、世界的に見ると、ハイパースケール企業がデータセンターへの支出の半分を占めているという。これには、テンセント、アリババ、バイドゥといった企業が含まれ、そのインフラは主に中国にある。HPC、AI、ハイパースケールの支出に基づくと、中国はデータセンターのインフラに年間200億ドルを費やしている可能性がある。エクサフロップあたり4億ドルのコストでも、年間約50エクサフロップになる。

最後にアディソン氏は、ハイパースケールが必ずしもクラウドを意味するわけではないことに言及している。多くのハイパースケーラー(Google、AWS、Meta、Microsoft、Alibaba、Tencent、Baiduなど)は、Top500の上位にランクされる可能性のある巨大なAIスーパーコンピューターを持っているが、結果を提出していない。

アディソン氏の考察を踏まえると、元の数字はより理にかなったものとなっている。上記の最初の分析では、オンプレミスの倍精度Top500ベンチマークのレンズを通してExaFLOPSの総計を見ていた。HPCだけでなく、多くの分野でFLOPS(それが何であれ)が性能測定に使われている。しかし、HPCのパフォーマンスを議論する際に使用される用語については、厄介な問題がある。

達成は集計ではない

HPCでは、マシンの性能を評価する場合、通常Top500 HPLベンチマークが実行さ れる。(Top500ベンチマークの議論は省略し、達成された性能を測定する能力に焦点を当てることにする。最も重要なことは、無数のハードウェアにわたる結果の履歴があることである)。このベンチマークでは、マシン全体が倍精度FLOPSの結果を報告する必要がある。HPCベンチマークは、Raspberry Piから最大級のスーパーコンピューターまで、あらゆるものを動かすことができる。性能ベンチマークを提供するだけでなく、HPLはマシン全体をエクササイズさ せる。例えば、1つのノードが失敗すると、ベンチマークも失敗する。ネットワークスイッチに問題があれば、ベンチマークは失敗したり、異常に長く実行されたりする。どのようなマシン、特に非常に大規模なスーパーコンピュータでHPLを実行する場合にも、暗黙の適性が存在する。

報告されているTop500 FLOPSの結果は「達成」された数値であり、「集計」された数値とは異なる。HPCクラスタリングが始まった当初は、「データシート」クラスタを作成する傾向があった。たとえば、クラスタの最高性能は、クラスタに使用される個々のサーバーのすべてのFLOPSを単純に集計することで評価さ れた(ストレージ性能も同じ)。残念なことに、達成可能なFLOPSはかなり低いことが多かった。

ローカルシステムのクラスタについては、乱暴な見積もりさえあった。例えば、”オフィスのすべてのデスクトップを組み合わせれば、スーパーコンピューターが作れる!”といったものだ。ただし、ローカルLANの速度、デスクトップマシンの異機種混在性、使いたいアルゴリズムによっては、この目標は「言うは易く行うは難し」であることが多かった。Folding@homeはその一例で、問題の独立した部分を実行し、分解し、全体の解の一部として収集することができる。問題の性質と並列アルゴリズムにより、性能測定への集約的なアプローチが可能になる。

HPCコミュニティでは、FLOPSレーティングが使用される場合、それは「達成されたFLOPS」であり、単純な集計値ではないことが一般的だ。集計された数値はしばしば印象的に聞こえるが、文脈を欠いている。車に例えて考えてみよう。一般的な自動車(180馬力)からサターンVロケットに必要な馬力(1億6,000万馬力)を合計すると、簡単に入手できる自動車約90万台分に相当する。では、なぜロケットを作る必要があるのか?

経験豊富なHPCユーザーの多くは、FLOPSの結果を引用する場合、通常はアプリケーションによって検証されることを知っている;それはHPLであったり、NASベンチマークスイートのカーネルであったり、実際のアプリケーションであったりする。一般的に、HPCコンテキストにおけるFLOPSの使用は曖昧ではない。

HPCは、我々の測定基準を使って性能を語るという贅沢をしてきた。FLOPSを使って性能を自慢したがるコミュニティは我々だけではない。しかし、私たちがFLOPSを使って性能を説明するときの意味を明確にする必要がある。精度、アプリケーションの種類、達成された性能などのデータを含めることで、HPC-FLOPSの針を正しい方向に進めることができる。