スーパーコンピュータ

スーパーコンピュータ（英: supercomputer）とは、大規模で超高速のメインフレームのことであり、なかでも科学技術計算のために用いられる、きわめて高性能のメインフレームコンピュータのことである。日本国内での略称は「スパコン」。

歴史

歴史的には、その時点で最高速のコンピュータ、特に科学技術計算で必要な浮動小数点演算が重視されたコンピュータが、「スーパーコンピュータ」と呼ばれ、初期のころには主として軍事用に使われる事が多かった。
1960年代にはCDC社、1970年代にはクレイ社が、ベクトル演算を中心としたスーパーコンピュータでシェアを伸ばし、また各種シミュレーションなどで民間の需要も拡大した。
1980年代にはNECなどの日本のメーカーが海外にも進出し、日米スパコン貿易摩擦にも発展した。
1960年～1980年ころのベクトル型スーパーコンピュータは、特化され専用度合が高く、巨大で高価であったため、（現在では揶揄も含めつつ）「巨艦主義」と呼ばれることもある（この表現は海戦史を踏まえたものであり、第一次世界大戦から第二次世界大戦にかけては、海戦では戦艦の攻撃力が勝負の鍵を握り、各国は戦艦を巨大化・巨砲化させることを競ったものの、第二次世界大戦中に、いつのまにか勝利の鍵が巨大戦艦ではなく空母や戦闘機の性能のほうに移ってしまい、戦艦の存在の無意味化が起き、日本の戦艦大和や戦艦武蔵などもむなしく撃沈されてしまったことになぞらえたものである）。
しかし1990年代後半からは、安価なx86やPOWERなどの汎用プロセッサを大量に使用して並列処理を行うスカラー型のスーパーコンピュータの性能が向上し、TOP500でも上位を占めるようになった。またスカラー型は小型化も容易なため、中規模の企業や研究所などでもスーパーコンピュータを導入して科学技術計算を行うことができるようになった。
2010年代に入り、中国がスーパーコンピュータのシェアでアメリカを超え、世界最高速をめぐり日米と争い、米中貿易戦争の対象にもなった。

主な用途

初期段階では主に軍事用に用いられた。
現在のスーパーコンピュータは、高速演算、大量演算を必要とする分野に広く利用されており、たとえば量子力学、天気予報、気象研究、計算化学（構造体、化合物、生物学上の高分子、ポリマー、結晶などの性質の計算）、物理的なシミュレーション（航空機の風洞シミュレーション、核兵器の爆発シミュレーション、核融合の研究）などに用いられている。
なお、「計算能力によるコンピューティング」と、「計算容量によるコンピューティング」は、関連はあるものの異なるものである。一方の「計算能力によるコンピューティング」は、典型的には「大きな問題を最大のコンピューティングパワーを使用して最短時間で解決する」考え方であり、あるシステムで解決できるサイズや複雑さの問題が、他のコンピュータでは解決できない。他方、「計算容量によるコンピューティング」はそれとは対照的に、大小の問題を解決したりシステムの稼動準備をするために、コンピューティングパワーを効率的な費用対効果で使用する考え方である。

構成要素

スーパーコンピュータといえども、プロセッサ、メモリ、ストレージ、ネットワーク等のハードウェアと、その上で動くオペレーティングシステム（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などのワークステーションやサーバ向けの汎用プロセッサが、組み合わされるメモリーが安価なこととあいまって徐々にスーパーコンピュータにも導入され始め、90年代後半では一部のハイエンドなものを除いて汎用プロセッサベースのシステムが主流となった。そのようなシステムはコンピュータ・クラスターとも呼ばれ、プロセッサを多数搭載することで高いスループットを狙っている。
さらに、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マシンでは最高の成績であり、2015年11月時点でゼロにまで減っており、OSは依然としてUnix系が大多数である。

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

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

ソフトウェア開発環境

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

プログラミング言語

科学技術計算分野ではFortranが古くから使われ、コンパイラ最適化技術が成熟していることやアプリケーション・数値演算ライブラリなどのソフトウェア資産の蓄積が大きいことから2017年現在でも利用される。実行効率と開発効率の面から、C言語およびC++もよく用いられる。
開発効率の改善とハードウェアの並列度向上に対応するため、新たなプログラミング言語が提案されている。サン・マイクロシステムズは、2007年1月に科学技術計算向けプログラミング言語Fortressを発表し、オープンソースとして公開している。他にもＩＢＭ社のX10などいろいろな提案がある。

並列化API、フレームワーク

高い性能を求められるスーパーコンピュータ向けアプリケーションでは、ベクトルプロセッサのベクトル演算命令やSIMDなどの並列演算命令を活用し、並列度を高めることで性能向上を図っている。具体的な手法として、最適化コンパイラが並列実行可能な箇所を発見し自動並列化を行うベクトル化や、プロセッサの並列演算命令をプログラミング言語の拡張機能やアセンブラを使い、プログラム内で明示的に呼び出す方法などがある。
2013年現在主流であるコンピュータ・クラスター型のスーパーコンピュータでは、MPIを用いて、プログラマがプロセス間の通信や同期をプログラムに記述することで大規模な並列計算を行う方法が一般的である。スーパーコンピュータ向けベンチマークLINPACKの一実装であるHPLや、遺伝子の相同性検索を行うBLASTなど多くの科学技術計算アプリケーションでは、MPIを用いた並列化に対応している。

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

分散コンピューティングの発展系として、遠隔地のスーパーコンピュータを含めたネットワーク上の多数のコンピュータを統一的に利用する手段として、グリッドコンピューティングの技術開発が世界的に進められており、日本でもNAREGIが国家プロジェクトとして採択を受け、研究と構築が行われている。また、国内の学校を含む、研究・教育機関に教育用に導入されているPCにグリッド基盤パッケージを導入し、現時点では利用されていないCPU資産をグリッドコンピュータの一部として活用する計画への参加を呼びかけている。グリッドコンピューティングの走りとして世界中のPCが参加しているSETIやグリッドによる分散処理に向いた研究素材を集めて、共通のグリッド基盤で処理を進めるBOINC、World Community Gridといったプロジェクトが軌道に乗っており、世界各国のプロジェクトが相乗りして成果を挙げている。
グリッド・コンピューティングの特徴は、ノードとして参加している個々のクライアントが自由にリソースの稼働率を決められる点にあり、稼働中のクライアントはパフォーマンスを提供する。一方、クラウド・コンピューティングは、リソースの管理をサービスプロバイダに委ね、クライアントは単にサービスを受けるのみであり、この点ではスーパーコンピュータを補完する機能はない。しかし、増加する一途の演算量とそれを保管するストレージの管理も分散コンピューティングの重要な要素になっており、クラウドを構築しておくことで、たとえネットワークが分断されても各ノードが演算すべきデータを見失わないようすることが可能となる。

メーカー

2016時点でのスーパーコンピュータベンダは、日本のNEC、日立、富士通と、アメリカのIBM、HPE、SGI、クレイ、およびそれらの派生品を扱う欧州ベンダであるBullなど、中国の国家機関、レノボ、浪潮、曙光がある。（SGIは2006年5月に連邦倒産法第11章の適用を申請し受理されたが、2006年11月に第11章適用対象から外れ再生を果たした。2016年にはHPEがSGIを買収すると発表した。）
2019年6月時点でTOP500に入るスーパーコンピュータの出荷台数トップ5は、レノボ、浪潮、曙光、HPE、クレイの順である。日本のベンダについては、作成するスーパーコンピュータの台数は少なく、海外への販売実績のあるNECのSXシリーズ以外は国内利用向けが主である。TOP500の上位50位内には、自社での検証機と国策のNLS用スーパーコンピュータがランクインしている。

性能比較、評価、賞

スーパーコンピュータの性能比較や、スーパーコンピューティングの技術を評価する賞として有名なものには以下のものなどがある。

スーパーコンピュータの性能比較はTOP500ランキングが広く知られている。TOP500は評価基準にベンチマークのLINPACKを使用し、世界で最も高速なコンピュータの上位500位を発表している。LINPACKは主にプロセッサの演算性能のピーク値を測定するもので、異なる時代や異なる設計思想のコンピュータ間を含めて比較しやすいが、低価格な汎用プロセッサを多数搭載して並列処理を行うスカラー型のスーパーコンピュータが上位を占めやすく、目的とする個々の業務における使い易さや実際の処理性能を示すものとは限らない。
より実際の業務における評価基準を目指したものにはHPCチャレンジベンチマークなどがあり、一般的な科学技術計算で多用されている複数のベンチマークから構成されており、4部門の1位がHPCチャレンジ賞（HPCC）として発表されている。
またスーパーコンピュータのエネルギー消費効率を評価するプロジェクトにはGreen500があり、電力当たりの性能を評価基準にして上位500位をランキングしている。性能値はTOP500の結果を使用して、消費電力はコンピュータ本体の測定値を使用している。
また大規模データ処理の処理性能を競うGraph500がある。
スーパーコンピューティングの成果に対する賞には、研究成果に対するゴードン・ベル賞や、研究者に対するシーモア・クレイ賞やシドニー・ファーンバック賞などがある。

世界

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

次世代スーパーコンピュータプロジェクト

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ペタフロップスを超えるコンピュータとなった事を発表した。セコイアは計画より一年遅れて2012年になって稼働し、京の性能を上回った。
ビッグデータと呼ばれる膨大な情報の処理に関係する国際的なスパコン性能ランキング「グラフ500」では、2015年2期連続で世界1位を獲得した。
京の次期システムとして、TSUBAMEシリーズの設計者で理化学研究所計算科学研究センター長の松岡聡教授が率いる開発プロジェクトにて、ARMv8アキーテクチャーのCPU A64FXを新開発し、京の100倍程度高速なシステム（１エクサプロップスのシステム）を2020年に構築する予定。

アメリカ合衆国

地球シミュレータによるコンピュートニクショックの後、その潜在的に大きな科学技術と国力・軍事研究の粋を挙げてHPC技術の更改と続伸を続けており、2006年8月現在、TOP500のランキングの上位50%以上をアメリカのスーパーコンピュータが占めている。近年の米国の計算機開発は、核兵器維持管理のためのコンピュータシミュレーションや高信頼性代替核弾頭など各種兵器の開発設計、作戦シミュレーションなど軍事利用が多く、技術開発は国防総省国防高等研究計画局とエネルギー省国家核安全保障局核備蓄管理プログラム（先端シミュレーション・演算プログラム）の開発プロジェクトや研究費に担うところが大きい。国立科学財団（NSF）、国立衛生研究所（NIH）、航空宇宙局（NASA）などもスーパーコンピュータの設置や研究開発への資金提供を行っている。HPC技術は民間用スーパーコンピュータとしても生命科学、金融工学、VFX・コンピュータグラフィックスなど広範な分野で使用されている。2018年6月8日、オークリッジ国立研究所とIBMは、世界最高速のスーパーコンピューター「Summit」の完成を発表した。Summitは200PFLOPSの性能を有する。直近5年間では、最高速のスーパーコンピューターは中国が有していたが、5年ぶりにアメリカが返り咲いた。開発ベンダはIBMである。