スーパーコンピュータ

スーパーコンピュータ（英:supercomputer）は、科学技術計算用途で大規模・高速な計算能力を有するコンピューターである。一般的な用語としてスーパーコンピュータが用いられ、コンピューター業界での分野名としてHigh Performance Computer / Computing (HPC)が用いられる。本記事と類似している高性能計算の項目についても参照されたい。
スーパーコンピュータとは、科学技術計算を主要目的とする大規模コンピュータである。大規模・高速の計算能力を達成することを目的としている。そのために最適化されたハードウェアやソフトウェアを備えている。
なお、スーパーコンピュータという場合はプログラミングにより汎用の計算処理能力を持つ装置を指す。高い計算能力を有する装置であっても、たとえば多体問題専用の「GRAPE」のように目的が専用に限られる計算機については専用計算機に分類される。
ハードウェアについては、演算処理装置の高速化・搭載量の拡大、演算時のメモリ搭載量の大容量化・高速化、演算処理装置間でのメモリ共有方式が特徴的である。他にベクトル計算に特有の演算処理装置を備えるなど、取り扱われる演算に特有のハードウエア方式が採用されることがある。また、高い計算能力は演算処理を担う電子回路の大規模・高速なスイッチング動作により実現されるため、大量の電力消費と発熱に対応した電源設備、排熱・冷却機構が必要である。
ソフトウェアとしては、演算処理装置の搭載量の拡大に応じた並列計算処理に適した方式が採用される。それは取り扱う問題解決手法自体の最適化、そのプログラム実装でのアプリケーションレベルでのアルゴリズム、プログラムのコンパイラ段階など複数の階層で行われる。
スーパーコンピュータの利用される例として、機械・土木・建築分野での構造物の力学を有限要素法や境界要素法などに基づいて検討する構造解析、電気工学分野での電磁界解析、流体力学分野、気象予測、大気・海洋シミュレーション、物性・化学・材料科学分野での分子動力学、その他交通流解析、シミュレーション天文学、最適化問題、金融の大規模数値解析に基づくシミュレーションなどに利用されている。→#主な用途
歴史的に科学技術計算の目的で浮動小数点演算の性能で処理能力が高いコンピュータが「スーパーコンピュータ」と分類されてきた。初期には主として軍事用に使われた。
1960年にUNIVACがアメリカ海軍研究開発センター向けに製造したLARC（Livermore Atomic Research Computer）が、現在では最初のスーパーコンピュータと考えられている。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は世界の最先端を競う分野でもかなり信頼されていると見ることができる。
初期段階では主に軍事用に用いられた。現在のスーパーコンピュータは、高速演算、大量演算を必要とする分野に広く利用されており、たとえば次のような分野である。
なお、「計算能力によるコンピューティング」と、「計算容量によるコンピューティング」は、関連はあるものの異なるものである。一方の「計算能力によるコンピューティング」は、典型的には「大きな問題を最大のコンピューティングパワーを使用して最短時間で解決する」考え方であり、あるシステムで解決できるサイズや複雑さの問題が、他のコンピュータでは解決できない。他方、「計算容量によるコンピューティング」はそれとは対照的に、大小の問題を解決したりシステムの稼動準備をするために、コンピューティングパワーを効率的な費用対効果で使用する考え方である。
スーパーコンピュータといえども、プロセッサ、メモリ、ストレージ、ネットワークなどのハードウェアと、その上で動くオペレーティングシステム（OS）やアプリケーションなどのソフトウェアから構成される点では一般的なコンピュータと同じである。ただし、スーパーコンピュータのユーザは、本体とは別に用意された端末で操作したり、あるいはSSH・telnet経由で（遠隔で）操作を行う。
スーパーコンピュータに搭載されるプロセッサの役割も、（普通のコンピュータ同様に）計算処理を行うことである。
一般的なコンピュータと（最近の）スーパーコンピュータの大きな違いは、処理を並列に実行する点にある。通常の単純なプロセッサは、一命令あたり一つの演算だけを行うスカラープロセッサで、一般的なパーソナルコンピュータ（PC）に搭載されるプロセッサ数も1つかごく少数である。スーパーコンピュータでは、1クロックで複数の演算を一度に行うベクトルプロセッサを採用し、システムの中に数十個から数十万のプロセッサを搭載し計算を同時に実行することで高いスループットを実現する構造となっている。
ベクトル演算が1970年代に実装されたあとも、1980年代には並列処理、パイプライン処理、投機的実行、対称型マルチプロセッシング、1990年代にはVLIW、SIMDなどがスーパーコンピュータに導入され、並列度の向上を実現した。
スーパーコンピュータで最初に採用された技術の多くは、その後にサーバやPCにフィードバックされて、それらの性能向上に寄与した。またその逆に、それまでPC向けであったx86プロセッサが21世紀に入ってから、価格性能比の向上と超並列技術の向上により、スーパーコンピュータの構成に広く採用されるようになった。
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台のみとなっている。
特定の計算を支援するコプロセッサや本来画像処理のために開発されたGraphics Processing Unit（GPU）を汎用的な計算に利用するGPGPU（英:general purpose computing on GPU）など、ある用途に特化したプロセッサをスーパーコンピュータに活用する動きがある。汎用プロセッサに比べ、価格性能比が非常に高くまた消費電力が小さいという利点によって、特に2005年以降動きが活発になってきている。
GRAPEプロジェクトでは、1989年から多体問題に特化したプロセッサを製作し、天文学や分子動力学シミュレーションにおいて非常に価格性能比の良い専用計算機を開発している。東京工業大学のTSUBAMEにはOpteronによる約1万個のCPUコアの他に、ClearSpeedによる高性能計算専用アクセラレータCSX600が搭載されている。2006年11月のランキングでCSX600を利用することで、2006年6月に発表されたCPUのみの結果に比べ約10TFLOPSも性能が向上した。また、高性能GPUを手がけるAMD、NVIDIAは両社とも2007年に汎用計算を念頭に置いたGPUベースのアクセラレータを発表している。
また、このGPGPU利用の流れを受け、経済指標予測・リスク計量などの膨大なシミュレートと計算が必要である経済予測分野において、多くの経済研究機関・シンクタンクに向け、アメリカ合衆国や台湾の複数のベンチャー企業がGPGPUベースの高速予測システムを提供しつつあり、経済分野での貢献も始まっている。
スーパーコンピュータはノードと呼ばれる計算機の集合によって構成され、その計算機はコンピュータネットワークによって接続される。そのノード間を結ぶコンピュータネットワークのことを特にインターコネクトと呼ぶ。超並列マシンでは、ユーザの実行させたい処理を各ノードに分割して実行し、MPI等のAPIを使ったノード間通信で同期や計算結果の集約などを行う。そのため、高い性能を得るには広帯域かつ低遅延なインターコネクトが必要とされる。
旧来のスーパーコンピュータの多くでは独自のインターコネクト方式を採用しており、2007年、CrayはRapidArrayと呼ばれる独自方式を自社のシステムに採用している。コンピュータ・クラスターでは、イーサネットやInfiniBand、Myrinetなど、最大数十Gbps程度の帯域を持つインターコネクトが利用されている。
研究レベルにおける通信速度は、2005年11月にIBMの研究所による14GB/chが最高速であったが、2006年3月、NECおよび理化学研究所による次世代HPC構想の研究にて25GB/chが記録されている。
スーパーコンピュータにおけるインターコネクトでは、そのトポロジも性能に大きい影響を与える。よく用いられるネットワークトポロジとしては、メッシュ、クロスバー、トーラスなどがある。構築にかかるコストやアプリケーションの性質によって、システムに適切なネットワークトポロジは大きく異なる。
1970年代前半のCrayによるスーパーコンピュータ黎明期から、オペレーティングシステムにはUNIXおよびLinuxなどのUnix系が広く使用されている。この理由には、当初はライセンスフリーなオープンソース的なOSであったこと、主にC言語で書かれており機種間の移植が容易なこと、大学や研究所で広く使われており科学技術計算用のライブラリやツールが充実していることなどが挙げられる。
2000年頃よりUnix系であるLinuxの比率が急増し、2009年では約9割である。
なお、x86プロセッサの急激な価格性能比の向上を踏まえ、マイクロソフト社はWindows Serverをベースとしたスーパーコンピュータ向けOSWindows Compute Cluster Server（WCCS）を2006年6月にリリースした。採用例には東京工業大学がある。2008年9月には後継製品としてWindows HPC Server 2008を発表し、これを採用した上海超級計算中心のスーパーコンピュータが2008年のTOP500で11位に躍り出るもこれがWindowsマシンでは最高の成績であり、2021年11月に30Pflopsで10位入りしたMicrosoft AzureのシステムはLinuxカーネルによるUbuntuである。
各Unixで通常使われているスケジューラだけでなく、優先度の高い計算処理にCPU資源を強制的に割り当てるギャング スケジューリング方式もサポートしたものが多い。
スーパーコンピュータの性能を引き出すためには、それが持つハードウェアの特性に合わせてアプリケーションを開発する必要がある。スーパーコンピュータ向けアプリケーションの開発で利用される技術・手法を以下に示す。
科学技術計算分野ではFortranが古くから使われ、コンパイラ最適化技術が成熟していることやアプリケーション・数値演算ライブラリなどのソフトウェア資産の蓄積が大きいことから2017年現在でも利用される。実行効率と開発効率の面から、C言語およびC++もよく用いられる。
開発効率の改善とハードウェアの並列度向上に対応するため、新たなプログラミング言語が提案されている。サン・マイクロシステムズは、2007年1月に科学技術計算向けプログラミング言語Fortressを発表し、オープンソースとして公開している。他にもIBM社のX10などさまざまな提案がある。
高い性能を求められるスーパーコンピュータ向けアプリケーションでは、ベクトルプロセッサのベクトル演算命令やSIMDなどの並列演算命令を活用し、並列度を高めることで性能向上を図っている。具体的な手法として、最適化コンパイラが並列実行可能な箇所を発見し自動並列化を行うベクトル化や、プロセッサの並列演算命令をプログラミング言語の拡張機能やアセンブラを使い、プログラム内で明示的に呼び出す方法などがある。
2013年現在主流であるコンピュータ・クラスター型のスーパーコンピュータでは、MPIを用いて、プログラマがプロセス間の通信や同期をプログラムに記述することで大規模な並列計算を行う方法が一般的である。スーパーコンピュータ向けベンチマークLINPACKの一実装であるHPLや、遺伝子の相同性検索を行うBLASTなど多くの科学技術計算アプリケーションでは、MPIを用いた並列化に対応している。
分散コンピューティングの発展系として、遠隔地のスーパーコンピュータを含めたネットワーク上の多数のコンピュータを統一的に利用する手段として、グリッドコンピューティングの技術開発が世界的に進められており、日本でもNAREGIが国家プロジェクトとして採択を受け、研究と構築が行われている。また、国内の学校を含む、研究・教育機関に教育用に導入されているPCにグリッド基盤パッケージを導入し、現時点では利用されていないCPU資産をグリッドコンピュータの一部として活用する計画への参加を呼びかけている。グリッドコンピューティングの走りとして世界中のPCが参加しているSETIやグリッドによる分散処理に向いた研究素材を集めて、共通のグリッド基盤で処理を進めるBOINC、World Community Gridといったプロジェクトが軌道に乗っており、世界各国のプロジェクトが相乗りして成果を挙げている。
グリッド・コンピューティングの特徴は、ノードとして参加している個々のクライアントが自由にリソースの稼働率を決められる点にあり、稼働中のクライアントはパフォーマンスを提供する。一方、クラウド・コンピューティングは、リソースの管理をサービスプロバイダに委ね、クライアントは単にサービスを受けるのみであり、この点ではスーパーコンピュータを補完する機能はない。しかし、増加する一途の演算量とそれを保管するストレージの管理も分散コンピューティングの重要な要素になっており、クラウドを構築しておくことで、たとえネットワークが分断されても各ノードが演算すべきデータを見失わないようすることが可能となる。
2022年時点でスーパーコンピュータを扱うメーカーは次のとおりである。
2019年6月時点でTOP500に入るスーパーコンピュータのランキング数トップ5は、レノボ、浪潮、曙光、HPE、クレイの順である。
日本のメーカーはスーパーコンピュータの出荷台数が少なく、海外への販売実績のあるNECのSXシリーズ以外は国内利用向けが主である。TOP500の上位50位内には、自社での検証機と国策のNLS用スーパーコンピュータがランクインしている。
世界各国でもスーパーコンピュータの導入は進んでおり、1990年代初頭のような日米を2極とした導入数の集中状況は解消しつつある。アメリカも日本もスーパーコンピュータによるシミュレーション能力が国際競争力の源泉であることに気が付き、次々と次世代スーパーコンピュータ構想の手を打っている（詳細は京 (スーパーコンピュータ)を参照）。さらに、日米両国はそれぞれの政府主導の下、各省単位でのHPC投資促進が続けられており、数十PFLOPSコンピュータを2010年までに構築する計画が複数進んでいる。
日本におけるスーパーコンピュータの流れは、官学主導による国策としての大型スーパーコンピュータ構想と、産業界および産学協同のより実生活や一般的な産業面に近いスーパーコンピュータの利用や設置の流れがある。この2つの流れの間で産官学での調整が行われており、トップダウン型にはWebクライアント技術、ASIC、マイクロプロセッサ）など、ボトムアップ型には通信インフラストラクチャー、プロトコル、規格化などがある。
文部科学省が推進する日本の科学技術政策では、国立大学や国立研究機関などへのスーパーコンピュータの導入に関して、以下のNLSとNISという位置づけがされている。
たとえば、数値風洞（1993年11月のTOP500で首位）やPACSのCP-PACS（1996年11月のTOP500で首位）はNLSとして使用が始まり、その後2年ほどでNISとして利用された。2004年まで2年半の長期にわたってTOP500の第1位を占めた地球シミュレータもNLSとして開発され、2007年頃からはNISとして供用された。
2009年11月、長崎大学の浜田剛助教らがゴードン・ベル賞（価格性能部門）を受賞した。市販のGPU760個の並列処理により、単精度による多体計算において、国内最速の地球シミュレータ2（倍精度LINPACKベンチマークでの測定値122.4 Tflops）を上回る158 Tflopsを開発費用3,800万円で実現した。浜田助教は「高性能の計算機は重要」としながら「（巨費を投じた従来の開発方針は）素直にいいとは言えない。方向性が逆」と発言した。GPUを大量につなげるプログラムの開発が成功の鍵とされた。
2010年11月のTOP500では東京工業大学のTSUBAME 2.0が4位を獲得した。同時期1位中国NUDTの天河一号Aと同様GPUを大幅に採用しているのが特徴であり、開発費は約30億円である（天河一号Aは約80億円、2002年世界一の地球シミュレータが600億円）。
2009年11月、日本で唯一ベクトル型を続けているNECは、インテルとのXeonを使用したスカラー型スーパーコンピュータの共同開発計画を発表した。
日本はスーパーコンピュータの省エネ化にも取り組んでおり、2013年11月21日に公開された省エネ性能ランキングでは、東京工業大学のTSUBAME-KFCが、2位に2割以上の差をつけて1位を獲得した。
2006年より文部科学省は、地球シミュレータに代わる次期NLSとして、「次世代スーパーコンピュータプロジェクト」を開始した。当初計画ではベクトル・スカラー複合機を開発して、「2012年に10ペタFLOPS」を達成し、実質的にTOP500の1位を目指す内容であった。
しかし2009年2月にアメリカで「2011年に20ペタFLOPS」を目標とするセコイアが発表され、予定通りとなれば「日本の1位奪還」にはならない見込みとなった。2009年5月にはNEC・日立が経営不振を理由に同プロジェクトから撤退し、3社によるベクトル・スカラー複合型から、富士通単独によるスカラー型へ設計変更された。
同年11月13日には行政刷新会議の「事業仕分け」で、当プロジェクトは「予算計上見送りに近い縮減」（事実上の凍結）と判定されたため多数の議論が行われたが、政府は判定を見直し、12月16日には2010年度予算に227億円の計上を決定した。
構築途上ながら2011年6月の時点において、LINPACKベンチマークの実行性能8.162ペタフロップス、実行効率93.0％を達成。2位と比べて3倍以上の実行性能を発揮し、TOP500の1位を獲得した。さらに2011年11月2日、最終構成を用いたLINPACKベンチマークの実行性能が10.51ペタフロップス（実行効率93.2%）となり、世界で初めて実行性能10ペタフロップスを超えるコンピュータとなったことを発表した。セコイアは計画より1年遅れて2012年になって稼働し、京の性能を上回った。
グラフ探査性能ベースのベンチマークに基づく性能ランキング「Graph500」では、2015年2期連続で世界1位を獲得した。
京の次期システムは、TSUBAMEシリーズの設計者で理化学研究所計算科学研究センター長の松岡聡教授が率いる開発プロジェクトにて、ARMv8アキーテクチャーのCPUA64FXを新開発し、京の100倍程度高速なシステム（1エクサプロップスのシステム）を2020年に構築する予定とした。
2020年より試行運用、2021年（令和3年）に富岳として本格稼働し、2021年11月のTOP500、HPCG、HPL-AI、およびGraph500において4期連続の4冠を達成した。
日本の国策巨大プロジェクト「富岳」には従来より多数の論争が存在するが、主な論点には以下がある。
特に、富岳によって計算時間短縮などのメリットを持つ研究も可能だが、それを商用利用する事は認められていない事がネックになっている。これを使って何をすればいいのかがはっきり定まっておらず、持て余した計算リソースを使って新型コロナウイルスの飛沫シミュレーションなどのPRを行っているのが現状である。
欧州各国においては、もともと1980年代からスーパーコンピュータのハードウェア分野にはあえて手を出さず、シミュレーションソフトやコンパイラなどのソフトウェア開発に力を注いでいた。次世代スーパーコンピュータに関しても、アメリカや日本のよりよい部分を選択・取得し、得意のソフトウェアに注力した発展と一般化したスーパーコンピュータの普及を目指して動いている。また、近年の情報社会・メディア総局の方針では、ミドルウェア開発を念頭に置いたプロジェクトを中心とすることとなっている。
科学技術と国力・軍事研究の粋を挙げてHPC技術の更改と続伸を続けており、伝統的にTOP500のランキングの多くをアメリカのスーパーコンピュータが占めている。米国の計算機開発は、核兵器維持管理のためのコンピュータシミュレーションや高信頼性代替核弾頭など各種兵器の開発設計、作戦シミュレーションなど軍事利用が多く、技術開発は国防総省国防高等研究計画局とエネルギー省国家核安全保障局核備蓄管理プログラム（先端シミュレーション・演算プログラム）の開発プロジェクトや研究費に担うところが大きく、そのフィードバックによって日本と異なり着実に国力拡大を行っている。国立科学財団（NSF）、国立衛生研究所（NIH）、航空宇宙局（NASA）などもスーパーコンピュータの設置や研究開発への資金提供を行っている。HPC技術は民間用スーパーコンピュータとしても生命科学、金融工学、VFX・コンピュータグラフィックスなど広範な分野で使用されている。2018年6月8日、オークリッジ国立研究所とIBMは、世界最高速のスーパーコンピューター「Summit」の完成を発表した。Summitは200PFLOPSの性能を有する。直近5年間では、最高速のスーパーコンピューターは中国が有していたが、5年ぶりにアメリカが返り咲いた。開発ベンダはIBMである。