スーパーコンピュータ

スーパーコンピュータは、科学技術計算用途で大規模・高速な計算能力を有するコンピューターである。一般的な用語としてスーパーコンピュータが用いられ、コンピューター業界での分野名としてHigh Performance Computer / Computing が用いられる。本記事と類似している高性能計算の項目についても参照されたい。

1. 概要
-----

スーパーコンピュータとは、科学技術計算を主要目的とする大規模コンピュータである。大規模・高速の計算能力を達成することを目的としている。そのために最適化されたハードウェアやソフトウェアを備えている。

なお、スーパーコンピュータという場合はプログラミングにより汎用の計算処理能力を持つ装置を指す。高い計算能力を有する装置であっても、たとえば多体問題専用の「GRAPE」のように目的が専用に限られる計算機については専用計算機に分類される。

ハードウェアについては、演算処理装置の高速化・搭載量の拡大、演算時のメモリ搭載量の大容量化・高速化、演算処理装置間でのメモリ共有方式が特徴的である。他にベクトル計算に特有の演算処理装置を備えるなど、取り扱われる演算に特有のハードウエア方式が採用されることがある。また、高い計算能力は演算処理を担う電子回路の大規模・高速なスイッチング動作により実現されるため、大量の電力消費と発熱に対応した電源設備、排熱・冷却機構が必要である。

ソフトウェアとしては、演算処理装置の搭載量の拡大に応じた並列計算処理に適した方式が採用される。それは取り扱う問題解決手法自体の最適化、そのプログラム実装でのアプリケーションレベルでのアルゴリズム、プログラムのコンパイラ段階など複数の階層で行われる。

スーパーコンピュータの利用される例として、機械・土木・建築分野での構造物の力学を有限要素法や境界要素法などに基づいて検討する構造解析、電気工学分野での電磁界解析、流体力学分野、気象予測、大気・海洋シミュレーション、物性・化学・材料科学分野での分子動力学、その他交通流解析、シミュレーション天文学、最適化問題、金融の大規模数値解析に基づくシミュレーションなどに利用されている。→#主な用途

「スーパーコンピュータ」の範囲とその変化 コンピューターの歴史はスーパーコンピュータに限らず時代とともにその能力を拡大しており、スーパーコンピュータは性能により一律に規定されるものではない相対的な分類である。 スーパーコンピュータの各事例はその登場時点において科学技術計算を主要目的に最適化して開発された製品である。 コンピューターの性能指標は評価軸によってさまざまな方向性があるが、スーパーコンピュータは科学技術計算を主要目的とするため、浮動小数点演算の処理能力が高いことが特徴である。一例としてCray-1が登場したときには、事務的な用途で利用される当時の標準的なメインフレームの30倍程度であった。また、スーパーコンピュータに関する定義の事例として、2014年時点での日本の政府調達に関する規程では、理論的最高性能値が50TFLOPS以上の計算機をスーパーコンピューターとして、政府関係の一部機関に対して「政府調達手続に関する運用指針」に従って調達することを求めた。

2. 歴史
-----

歴史的に科学技術計算の目的で浮動小数点演算の性能で処理能力が高いコンピュータが「スーパーコンピュータ」と分類されてきた。初期には主として軍事用に使われた。

1960年にUNIVACがアメリカ海軍研究開発センター向けに製造したLARCが、現在では最初のスーパーコンピュータと考えられている。LARCは新たに登場したディスクドライブ技術ではなく、高速な磁気ドラムメモリをまだ使用していた。

また、1961年に完成したスーパーコンピュータのIBM 7030 は、1955年時点のすべてのコンピュータの合計より100倍の速度を要求されてIBMがロスアラモス国立研究所向けに製造した。IBM 7030はトランジスタ、磁気コアメモリ、命令セットのパイプライン処理、メモリコントローラ経由のデータのプリフェッチ、そして先進的なランダムアクセスできるディスクドライブを備えた。

1960年代にはCDC社、1970年代にはクレイ社が、ベクトル演算を中心としたスーパーコンピュータでコンピューター業界でのシェアを伸ばした。また、コンピューターの各種シミュレーションでの民間の利用が拡大したことで、スーパーコンピュータの需要も拡大した。

1980年代にはNECなどの日本のメーカーが海外にも進出し、日米スパコン貿易摩擦にも発展した。

1960年～1980年ころのスーパーコンピュータは、ベクトル型計算機で利用用途が特化され汎用性が低く、巨大で高価であったため、現在では揶揄の意を込めて「巨艦主義」と呼ばれることもある。この表現は海戦史を踏まえたものであり、第一次世界大戦から第二次世界大戦にかけては、海戦では戦艦の攻撃力が勝負の鍵を握り、各国は戦艦を巨大化・巨砲化させることを競ったものの、第二次世界大戦中に、いつのまにか勝利の鍵が巨大戦艦ではなく空母や戦闘機の性能のほうに移ってしまい、戦艦の存在の無意味化が起き、日本の戦艦大和や戦艦武蔵などもむなしく撃沈されてしまったことになぞらえたものである。

1990年代後半に入るとパソコンの普及とパソコン用CPUの処理能力の向上が背景となり、パソコン用で安価なx86やPOWERなどのプロセッサを数百～数千個搭載して計算能力を実現するスカラー型のスーパーコンピュータが台頭し、スーパーコンピュータのコンテストであるTOP500でも上位を占めるようになった。また、スカラー型はCPUの搭載数に応じてスケーラビリティがあるため、中規模の企業や研究所などでも小型のスーパーコンピュータを導入して、費用対効果を保ちながら科学技術計算を行うことができるようになった。

2010年代に入りスーパーコンピュータの開発において中国の台頭が著しく、ランキングに占める数でアメリカを超え、処理性能の世界最高をめぐり日米と争うようになり、米中貿易戦争の対象にもなった。

2010年代後半からは既に大量生産されているGPUで汎用計算を行うGPGPUの導入が進んでおり、従来のようにカスタムCPUを新規設計する場合と比べてコストパフォーマンスを向上させる事が可能になってきている。究極の例としては2022年に単一マシンとして世界初のエクサスケールコンピュータとなった米HPEの「フロンティア」が挙げられ、GPGPUは世界の最先端を競う分野でもかなり信頼されていると見ることができる。

3. 主な用途
-------

初期段階では主に軍事用に用いられた。現在のスーパーコンピュータは、高速演算、大量演算を必要とする分野に広く利用されており、たとえば次のような分野である。

機械・土木・建築分野での構造力学。機械の設計、橋梁の設計など。
電気工学・物理学分野での電磁界解析。アンテナの設計、高周波回路の設計、無線通信の伝播設計など。
機械、化学、地球物理学分野での流体力学。輸送機器の機体設計、エンジン、タービンなどの原動機の設計、気象予報、気候変動予測、農業など。
化学、物性分野の化学反応、固体物理学。計算化学、結晶の物性、第一原理計算など。
原子力利用分野の核反応。原子炉内の核分裂反応、核融合の研究、核兵器の研究など。なお、「計算能力によるコンピューティング」と、「計算容量によるコンピューティング」は、関連はあるものの異なるものである。一方の「計算能力によるコンピューティング」は、典型的には「大きな問題を最大のコンピューティングパワーを使用して最短時間で解決する」考え方であり、あるシステムで解決できるサイズや複雑さの問題が、他のコンピュータでは解決できない。他方、「計算容量によるコンピューティング」はそれとは対照的に、大小の問題を解決したりシステムの稼動準備をするために、コンピューティングパワーを効率的な費用対効果で使用する考え方である。

4. 構成要素
-------

スーパーコンピュータといえども、プロセッサ、メモリ、ストレージ、ネットワークなどのハードウェアと、その上で動くオペレーティングシステムやアプリケーションなどのソフトウェアから構成される点では一般的なコンピュータと同じである。ただし、スーパーコンピュータのユーザは、本体とは別に用意された端末で操作したり、あるいはSSH・telnet経由で操作を行う。

4.1. プロセッサ
----------

スーパーコンピュータに搭載されるプロセッサの役割も、計算処理を行うことである。

一般的なコンピュータとスーパーコンピュータの大きな違いは、処理を並列に実行する点にある。通常の単純なプロセッサは、一命令あたり一つの演算だけを行うスカラープロセッサで、一般的なパーソナルコンピュータに搭載されるプロセッサ数も1つかごく少数である。スーパーコンピュータでは、1クロックで複数の演算を一度に行うベクトルプロセッサを採用し、システムの中に数十個から数十万のプロセッサを搭載し計算を同時に実行することで高いスループットを実現する構造となっている。

ベクトル演算が1970年代に実装されたあとも、1980年代には並列処理、パイプライン処理、投機的実行、対称型マルチプロセッシング、1990年代にはVLIW、SIMDなどがスーパーコンピュータに導入され、並列度の向上を実現した。

スーパーコンピュータで最初に採用された技術の多くは、その後にサーバやPCにフィードバックされて、それらの性能向上に寄与した。またその逆に、それまでPC向けであったx86プロセッサが21世紀に入ってから、価格性能比の向上と超並列技術の向上により、スーパーコンピュータの構成に広く採用されるようになった。

4.1.1. 採用プロセッサの変化
-----------------

1980年代から90年代までは、高性能計算に特化した専用のベクトルプロセッサを各スーパーコンピュータメーカーが独自に開発し、システムに採用していた。1990年代前半から、i860、Alpha、POWER、MIPS、SPARC、IA-64などのワークステーションやサーバ向けの汎用プロセッサが、組み合わされるメモリーが安価なこととあいまって徐々にスーパーコンピュータにも導入され始め、1990年代後半では一部のハイエンドなものを除いて汎用プロセッサベースのシステムが主流となった。そのようなシステムはコンピュータ・クラスターとも呼ばれ、プロセッサを多数搭載することで高いスループットを狙っている。

さらに、21世紀からのx86プロセッサの価格性能比の向上に合わせ、インテルやAMDのCPUを採用するメーカーが増加している。x86の流れをくむx86-64アーキテクチャを含めると2010年6月に発表された第35回TOP500ランキングでは500台中450台がx86プロセッサを採用しており、PowerPCを含むPOWERベースのシステムとともに市場を二分しつつある。

汎用プロセッサが主流となった90年代後半以降になっても、特に高性能なシステムではベクトルプロセッサによるものが多かったが、それも21世紀に入り変化した。2002年に運用が開始され以降2年半にわたってTOP500の首位を占めた地球シミュレータのような例外はあるものの、ハイエンドな分野でも置き換えが進行し、2010年6月のランキングにおけるベクトル計算機は500台のうち1台のみとなっている。

4.1.2. 特定用途向けプロセッサの活用
---------------------

特定の計算を支援するコプロセッサや本来画像処理のために開発されたGraphics Processing Unitを汎用的な計算に利用するGPGPUなど、ある用途に特化したプロセッサをスーパーコンピュータに活用する動きがある。汎用プロセッサに比べ、価格性能比が非常に高くまた消費電力が小さいという利点によって、特に2005年以降動きが活発になってきている。

GRAPEプロジェクトでは、1989年から多体問題に特化したプロセッサを製作し、天文学や分子動力学シミュレーションにおいて非常に価格性能比の良い専用計算機を開発している。東京工業大学のTSUBAMEにはOpteronによる約1万個のCPUコアの他に、ClearSpeedによる高性能計算専用アクセラレータCSX600が搭載されている。2006年11月のランキングでCSX600を利用することで、2006年6月に発表されたCPUのみの結果に比べ約10TFLOPSも性能が向上した。また、高性能GPUを手がけるAMD、NVIDIAは両社とも2007年に汎用計算を念頭に置いたGPUベースのアクセラレータを発表している。

また、このGPGPU利用の流れを受け、経済指標予測・リスク計量などの膨大なシミュレートと計算が必要である経済予測分野において、多くの経済研究機関・シンクタンクに向け、アメリカ合衆国や台湾の複数のベンチャー企業がGPGPUベースの高速予測システムを提供しつつあり、経済分野での貢献も始まっている。

4.2. インターコネクト
-------------

スーパーコンピュータはノードと呼ばれる計算機の集合によって構成され、その計算機はコンピュータネットワークによって接続される。そのノード間を結ぶコンピュータネットワークのことを特にインターコネクトと呼ぶ。超並列マシンでは、ユーザの実行させたい処理を各ノードに分割して実行し、MPI等のAPIを使ったノード間通信で同期や計算結果の集約などを行う。そのため、高い性能を得るには広帯域かつ低遅延なインターコネクトが必要とされる。

4.2.1. インターフェース
---------------

旧来のスーパーコンピュータの多くでは独自のインターコネクト方式を採用しており、2007年、CrayはRapidArrayと呼ばれる独自方式を自社のシステムに採用している。コンピュータ・クラスターでは、イーサネットやInfiniBand、Myrinetなど、最大数十Gbps程度の帯域を持つインターコネクトが利用されている。

研究レベルにおける通信速度は、2005年11月にIBMの研究所による14GB/chが最高速であったが、2006年3月、NECおよび理化学研究所による次世代HPC構想の研究にて25GB/chが記録されている。

4.2.2. ネットワーク構成
---------------

スーパーコンピュータにおけるインターコネクトでは、そのトポロジも性能に大きい影響を与える。よく用いられるネットワークトポロジとしては、メッシュ、クロスバー、トーラスなどがある。構築にかかるコストやアプリケーションの性質によって、システムに適切なネットワークトポロジは大きく異なる。

4.3. 基盤ソフトウェア
-------------

4.3.1. オペレーティングシステム
-------------------

1970年代前半のCrayによるスーパーコンピュータ黎明期から、オペレーティングシステムにはUNIXおよびLinuxなどのUnix系が広く使用されている。この理由には、当初はライセンスフリーなオープンソース的なOSであったこと、主にC言語で書かれており機種間の移植が容易なこと、大学や研究所で広く使われており科学技術計算用のライブラリやツールが充実していることなどが挙げられる。2000年頃よりUnix系であるLinuxの比率が急増し、2009年では約9割である。

なお、x86プロセッサの急激な価格性能比の向上を踏まえ、マイクロソフト社はWindows Serverをベースとしたスーパーコンピュータ向けOSWindows Compute Cluster Serverを2006年6月にリリースした。採用例には東京工業大学がある。2008年9月には後継製品としてWindows HPC Server 2008を発表し、これを採用した上海超級計算中心のスーパーコンピュータが2008年のTOP500で11位に躍り出るもこれがWindowsマシンでは最高の成績であり、2021年11月に30Pflopsで10位入りしたMicrosoft AzureのシステムはLinuxカーネルによるUbuntuである。

4.3.2. プロセス・スケジューリング
--------------------

各Unixで通常使われているスケジューラだけでなく、優先度の高い計算処理にCPU資源を強制的に割り当てるギャング スケジューリング方式もサポートしたものが多い。

4.4. ソフトウェア開発環境
---------------

スーパーコンピュータの性能を引き出すためには、それが持つハードウェアの特性に合わせてアプリケーションを開発する必要がある。スーパーコンピュータ向けアプリケーションの開発で利用される技術・手法を以下に示す。

4.4.1. プログラミング言語
----------------

科学技術計算分野ではFortranが古くから使われ、コンパイラ最適化技術が成熟していることやアプリケーション・数値演算ライブラリなどのソフトウェア資産の蓄積が大きいことから2017年現在でも利用される。実行効率と開発効率の面から、C言語およびC++もよく用いられる。

開発効率の改善とハードウェアの並列度向上に対応するため、新たなプログラミング言語が提案されている。サン・マイクロシステムズは、2007年1月に科学技術計算向けプログラミング言語Fortressを発表し、オープンソースとして公開している。他にもIBM社のX10などさまざまな提案がある。

4.4.2. 並列化API、フレームワーク
---------------------

高い性能を求められるスーパーコンピュータ向けアプリケーションでは、ベクトルプロセッサのベクトル演算命令やSIMDなどの並列演算命令を活用し、並列度を高めることで性能向上を図っている。具体的な手法として、最適化コンパイラが並列実行可能な箇所を発見し自動並列化を行うベクトル化や、プロセッサの並列演算命令をプログラミング言語の拡張機能やアセンブラを使い、プログラム内で明示的に呼び出す方法などがある。

2013年現在主流であるコンピュータ・クラスター型のスーパーコンピュータでは、MPIを用いて、プログラマがプロセス間の通信や同期をプログラムに記述することで大規模な並列計算を行う方法が一般的である。スーパーコンピュータ向けベンチマークLINPACKの一実装であるHPLや、遺伝子の相同性検索を行うBLASTなど多くの科学技術計算アプリケーションでは、MPIを用いた並列化に対応している。

4.5. グリッド・コンピューティングとクラウド・コンピューティング
----------------------------------

分散コンピューティングの発展系として、遠隔地のスーパーコンピュータを含めたネットワーク上の多数のコンピュータを統一的に利用する手段として、グリッドコンピューティングの技術開発が世界的に進められており、日本でもNAREGIが国家プロジェクトとして採択を受け、研究と構築が行われている。また、国内の学校を含む、研究・教育機関に教育用に導入されているPCにグリッド基盤パッケージを導入し、現時点では利用されていないCPU資産をグリッドコンピュータの一部として活用する計画への参加を呼びかけている。グリッドコンピューティングの走りとして世界中のPCが参加しているSETIやグリッドによる分散処理に向いた研究素材を集めて、共通のグリッド基盤で処理を進めるBOINC、World Community Gridといったプロジェクトが軌道に乗っており、世界各国のプロジェクトが相乗りして成果を挙げている。

グリッド・コンピューティングの特徴は、ノードとして参加している個々のクライアントが自由にリソースの稼働率を決められる点にあり、稼働中のクライアントはパフォーマンスを提供する。一方、クラウド・コンピューティングは、リソースの管理をサービスプロバイダdate=2021年4月}}に委ね、クライアントは単にサービスを受けるのみであり、この点ではスーパーコンピュータを補完する機能はない。しかし、増加する一途の演算量とそれを保管するストレージの管理も分散コンピューティングの重要な要素になっており、クラウドを構築しておくことで、たとえネットワークが分断されても各ノードが演算すべきデータを見失わないようすることが可能となる。

5. メーカー
-------

2022年時点でスーパーコンピュータを扱うメーカーは次のとおりである。

2019年6月時点でTOP500に入るスーパーコンピュータのランキング数トップ5は、レノボ、浪潮、曙光、HPE、クレイの順である。

日本のメーカーはスーパーコンピュータの出荷台数が少なく、海外への販売実績のあるNECのSXシリーズ以外は国内利用向けが主である。TOP500の上位50位内には、自社での検証機と国策のNLS用スーパーコンピュータがランクインしている。

6. 性能評価ランキング、表彰
---------------

性能評価ランキングスーパーコンピュータの性能比較や、スーパーコンピューティングの技術を表彰する賞として次のものがある。{| class="wikitable"|- ! ランキング名称 !! 説明 |- | TOP500 || 評価基準を連立一次方程式の解を求める線形代数ライブラリのLINPACKを用いたベンチマークとして、上位500位を1993年から毎年6月と11月に発表している。スーパーコンピュータの計算能力の性能評価では広く知られている。LINPACKによるベンチマークは時代やアーキテクチャを超えて異機種・異事例間で比較する指標として利用しやすいが、対象とする問題における実際の処理性能の評価として適しているとは限らない。スカラー型のスーパーコンピュータが上位を占めやすいとされている。 |- | Green500 || TOP500の派生でエネルギー消費効率の観点で評価するランキングである。LINPACKベンチマーク結果を消費電力あたりで評価して上位500位をランキングしたものである。 |- | HPCG || 連立一次方程式の解を求める線形代数の処理能力を測定するが、LINPACKが行列一般に適用可能な密行列を対象とするのに対して、HPCGは有限要素法が適用されるような疎行列を対象とするものである。稼働時間が貴重なスーパーコンピューターで性能評価の測定時間と電力消費を節約する目的で誕生した性能評価である。 |- | HPCC || HPCC は、スーパーコンピューターの性能に影響を及ぼす浮動小数点演算、持続可能なメモリーの帯域幅、メモリーのランダム更新速度、ネットワークの総データ通信容量、ノード間通信の遅延と帯域を測定するよう考慮された7つの試験から構成される性能試験である。4部門の1位がHPCチャレンジ賞として発表されている。 |- | Graph500 || 離散数学のグラフ理論の問題で、1秒間に探索できる枝の数を性能の指標とするものである。 |}

表彰スーパーコンピュータ、高性能計算 分野の成果に対する賞として、研究成果を対象とするものとしてACSが主催するゴードン・ベル賞が、研究者を対象とするものとしてIEEE Computer Societyが主催するシーモア・クレイ賞やシドニー・ファーンバック賞などがある。

7. 主要国の動向
---------

7.1. 世界
-------

世界各国でもスーパーコンピュータの導入は進んでおり、1990年代初頭のような日米を2極とした導入数の集中状況は解消しつつある。アメリカも日本もスーパーコンピュータによるシミュレーション能力が国際競争力の源泉であることに気が付き、次々と次世代スーパーコンピュータ構想の手を打っている。さらに、日米両国はそれぞれの政府主導の下、各省単位でのHPC投資促進が続けられており、数十PFLOPSコンピュータを2010年までに構築する計画が複数進んでいる。

7.2. 日本
-------

7.2.1. 概要
---------

日本におけるスーパーコンピュータの流れは、官学主導による国策としての大型スーパーコンピュータ構想と、産業界および産学協同のより実生活や一般的な産業面に近いスーパーコンピュータの利用や設置の流れがある。この2つの流れの間で産官学での調整が行われており、トップダウン型にはWebクライアント技術、ASIC、マイクロプロセッサ）