
スーパーコンピュータのアーキテクチャへのアプローチは、1960年代に最初のシステムが導入されて以来、劇的な変化を遂げてきました。シーモア・クレイが先駆者となった初期のスーパーコンピュータのアーキテクチャは、コンパクトで革新的な設計と局所的な並列処理によって優れた計算ピーク性能を実現していました。[ 1 ]しかし、やがて計算能力の向上に対する需要が高まり、大規模並列システムの時代が到来しました。
1970年代のスーパーコンピュータは少数のプロセッサしか使用していなかったが、1990年代には数千のプロセッサを搭載したマシンが登場し始め、20世紀末には数万個の市販のプロセッサを搭載した大規模並列スーパーコンピュータが標準となった。21世紀のスーパーコンピュータは、高速接続で接続された10万個以上のプロセッサ(一部はグラフィックユニット)を使用できる。[ 2 ] [ 3 ]
数十年にわたり、熱密度の管理は、ほとんどの集中型スーパーコンピュータにとって重要な課題であり続けている。[ 4 ] [ 5 ] [ 6 ]システムによって発生する大量の熱は、他のシステムコンポーネントの寿命を縮めるなど、他の影響も及ぼす可能性がある。[ 7 ]熱管理には、システム全体にフルオリナートをポンプで送り込む方法から、ハイブリッド液体空気冷却システム、または通常の空調温度での空気冷却まで、さまざまなアプローチがある。[ 8 ] [ 9 ]
多数のプロセッサを備えたシステムは、一般的に 2 つの経路のいずれかをたどります。1 つのアプローチでは、たとえばグリッド コンピューティングでは、分散した多様な管理ドメインにある多数のコンピュータの処理能力が、コンピュータが利用可能なときに機会的に使用されます。[ 10 ]もう 1 つのアプローチでは、コンピュータ クラスタのように、多数のプロセッサが互いに近接して使用されます。このような集中型の大規模並列システムでは、相互接続の速度と柔軟性が非常に重要になり、最新のスーパー コンピュータは、拡張Infinibandシステムから 3 次元トーラス相互接続まで、さまざまなアプローチを使用しています。[ 11 ] [ 12 ]
1960年代後半以降、スーパーコンピュータの性能と普及は劇的に向上し、これらのシステムの基本的なアーキテクチャの方向性は大きく変化しました。初期のスーパーコンピュータは、共有メモリにアクセスする少数の密接に接続されたプロセッサに依存していましたが、21世紀のスーパーコンピュータは、高速ネットワークで接続された10万を超えるプロセッサを使用しています。[ 2 ] [ 3 ]
数十年にわたり、熱密度の管理は、ほとんどの集中型スーパーコンピュータにとって重要な課題であり続けている。[ 4 ]シーモア・クレイの「熱を外に出せ」というモットーは、彼の設計哲学の中心であり、ブルーウォーターズのような大規模実験など、スーパーコンピュータのアーキテクチャにおける重要な課題であり続けている。[ 4 ] [ 5 ] [ 6 ]システムによって発生する大量の熱は、他のシステムコンポーネントの寿命を縮めるなど、他の影響も及ぼす可能性がある。[ 7 ]

熱管理にはさまざまなアプローチがあり、たとえば、Cray 2はFluorinert をシステム全体に送り込み、 System X はハイブリッド液体空気冷却システムを使用し、Blue Gene/Pは通常の空調温度で空冷されています。[ 8 ] [ 13 ] [ 14 ] Aquasarスーパーコンピュータからの熱は、大学のキャンパスを暖めるために使用されています。[ 15 ] [ 16 ]
スーパーコンピュータによって発生する熱密度は、システムで使用されるプロセッサの種類に直接依存し、同様の基盤となる半導体技術を前提とすると、より強力なプロセッサは通常、より多くの熱を発生させます。[ 7 ]初期のスーパーコンピュータは、ローカル並列処理(パイプライン処理やベクトル処理など)を利用する、少数の高速で密集したプロセッサを使用していましたが、時間が経つにつれてプロセッサの数が増え、計算ノードはコンピュータクラスタなどにより遠く離れた場所に配置したり、グリッドコンピューティングで地理的に分散させたりできるようになりました。[ 2 ] [ 17 ]スーパーコンピュータのプロセッサの数が増えるにつれて、「コンポーネントの故障率」が深刻な問題になり始めます。スーパーコンピュータが数千のノードを使用し、各ノードが平均して年に1回故障する場合、システムは毎日数個のノードの故障を経験します。 [ 9 ]
汎用グラフィックプロセッサ(GPGPU)の価格性能比が向上したため、天河一号やネビュラなどのペタフロップ級スーパーコンピュータの多くがGPGPUに依存するようになった。[ 18 ]しかし、 Kコンピュータなどの他のシステムは、SPARCベースの設計などの従来型プロセッサを使い続けており、汎用高性能コンピューティングアプリケーションにおけるGPGPUの全体的な適用性は議論の的となっている。GPGPUは特定のベンチマークで高いスコアを出すように調整できるかもしれないが、アプリケーションをGPGPUに合わせて調整するために相当な努力をしない限り、日常的なアルゴリズムへの全体的な適用性は限られる可能性がある。[ 19 ]しかし、GPUは勢いを増しており、2012年にはJaguarスーパーコンピュータがCPUをGPUに置き換えることでTitanに生まれ変わった。[ 20 ] [ 21 ] [ 22 ]
As the number of independent processors in a supercomputer increases, the way they access data in the file system and how they share and access secondary storage resources becomes prominent. Over the years a number of systems for distributed file management were developed, e.g., the IBM General Parallel File System, BeeGFS, the Parallel Virtual File System, Hadoop, etc.[23][24] A number of supercomputers on the TOP100 list such as the Tianhe-I use Linux's Lustre file system.[4]
The CDC 6600 series of computers were very early attempts at supercomputing and gained their advantage over the existing systems by relegating work to peripheral devices, freeing the central processing unit (CPU) to process actual data. With the Minnesota FORTRAN compiler the 6600 could sustain 500 kiloflops on standard mathematical operations.[25]

Other early supercomputers such as the Cray 1 and Cray 2 that appeared afterwards used a small number of fast processors that worked in harmony and were uniformly connected to the largest amount of shared memory that could be managed at the time.[3]
These early architectures introduced parallel processing at the processor level, with innovations such as vector processing, in which the processor can perform several operations during one clock cycle, rather than having to wait for successive cycles.
In time, as the number of processors increased, different architectural issues emerged. Two issues that need to be addressed as the number of processors increases are the distribution of memory and processing. In the distributed memory approach, each processor is physically packaged close with some local memory. The memory associated with other processors is then "further away" based on bandwidth and latency parameters in non-uniform memory access.
1960年代にはパイプライン処理は革新的な技術と見なされ、1970年代にはベクトルプロセッサの使用が定着した。1980年代には多くのスーパーコンピュータが並列ベクトルプロセッサを使用していた。[ 2 ]
初期のシステムではプロセッサの数が比較的少なかったため、プロセッサが共通のメモリプールにアクセスできる共有メモリアーキテクチャを容易に使用できました。初期の頃は、プロセッサ間でメモリ位置へのアクセス時間がほぼ同じである均一メモリアクセス(UMA) を使用するのが一般的なアプローチでした。非均一メモリアクセス(NUMA)を使用すると、プロセッサは他のメモリ位置よりも高速に自身のローカルメモリにアクセスできます。一方、キャッシュ専用メモリアーキテクチャ(COMA) では、各プロセッサのローカルメモリをキャッシュとして使用できるため、メモリ値が変更されるたびに調整が必要になります。[ 26 ]
プロセッサの数が増えるにつれて、スーパーコンピュータ上での効率的なプロセッサ間通信と同期が課題となる。この目標を達成するために、いくつかの手法が用いられる可能性がある。例えば、1980年代初頭のCray X-MPシステムでは、共有レジスタが使用されていた。この手法では、すべてのプロセッサが共有レジスタにアクセスでき、データのやり取りは行われず、プロセッサ間通信と同期のみに使用された。しかし、多数のプロセッサ間で大量の共有メモリを管理することに伴う固有の課題により、より分散型のアーキテクチャへの移行が進んだ。[ 27 ]

1980年代には、計算能力に対する需要が増加するにつれて、プロセッサの数を大幅に増やす傾向が始まり、分散メモリと分散ファイルシステムを備えた大規模並列システムの時代が到来しました。[ 2 ]共有メモリアーキテクチャでは多数のプロセッサに拡張できなかったためです。[ 28 ]分散共有メモリなどのハイブリッドアプローチも、初期のシステムの後に登場しました。[ 29 ]
コンピュータクラスタリング方式では、多数の利用可能なコンピューティングノード(例えば、サーバーとして使用されるパーソナルコンピュータ)を高速なプライベートローカルエリアネットワークで接続します。[ 30 ]コンピューティングノードのアクティビティは、ノードの上に位置するソフトウェアレイヤーである「クラスタリングミドルウェア」によって調整され、ユーザーは、例えば単一のシステムイメージの概念を通して、クラスタをほぼ1つのまとまったコンピューティングユニットとして扱うことができます。[ 30 ]
コンピュータクラスタリングは、ノードをオーケストレーションされた共有サーバーとして利用できるように集中管理アプローチに依存しています。これは、多くのノードを使用するものの、はるかに分散的な性質を持つピアツーピアやグリッドコンピューティングなどの他のアプローチとは異なります。[ 30 ] 21世紀までに、TOP500組織が半年に一度発表する最速のスーパーコンピュータ500台のリストには、多くの場合、多くのクラスタが含まれています。たとえば、2011年の世界最速は、分散メモリ、クラスタアーキテクチャを備えたKコンピュータでした。[ 31 ] [ 32 ]
多数のローカル半独立コンピューティングノードを使用する場合(クラスタアーキテクチャなど)、相互接続の速度と柔軟性が非常に重要になります。現代のスーパーコンピュータは、この問題に対処するためにさまざまなアプローチを採用しています。たとえば、Tianhe-1は、 FeiTeng-1000 CPU で強化されたInfiniband QDRに基づく独自の高速ネットワークを使用しています。[ 4 ]一方、Blue Gene /L システムは、グローバル通信用の補助ネットワークを備えた 3 次元トーラス相互接続を使用しています。[ 11 ]このアプローチでは、各ノードは 6 つの最も近い隣接ノードに接続されます。同様のトーラスはCray T3Eで使用されていました。[ 12 ]
大規模な集中型システムでは、特定の用途向けに設計された専用プロセッサを使用することがあり、汎用性を犠牲にして性能を向上させるためにフィールドプログラマブルゲートアレイ(FPGA)チップを使用することもあります。専用スーパーコンピュータの例としては、チェスをプレイするためのBelle [ 33 ]、Deep Blue [ 34 ]、Hydra [ 35 ]、天体物理学のためのGravity Pipe [ 36 ]、タンパク質構造計算分子動力学のためのMDGRAPE - 3 [ 37 ]、DES暗号を解読するためのDeep Crack [ 38 ]などがあります。

グリッドコンピューティングは、分散した多様な管理ドメインで多数のコンピュータを使用します。これは、リソースが利用可能になったときにいつでも使用する機会主義的なアプローチです。[ 10 ]例として、ボランティアベースの機会主義的なグリッドシステムである BOINC があります。[ 39 ]ボランティアのリソースが利用可能になったときに、インターネットに接続された 50 万台近いコンピュータを使用することで、一部のBOINC アプリケーションはマルチペタフロップのレベルに達しています。 [ 40 ]しかし、これらのタイプの結果は、汎用のLinpackベンチマークを実行しないため、 TOP500ランキングには表示されないことがよくあります。
グリッドコンピューティングは並列タスク実行において成功を収めてきたが、気象シミュレーションや計算流体力学などの要求の厳しいスーパーコンピュータアプリケーションは、多数のタスクの信頼性の高いサブ割り当てや、特定の時点でのリソースの信頼性の高い可用性における障壁のために、依然として手の届かないものとなっている。[ 39 ] [ 41 ] [ 42 ]
準機会主義的スーパーコンピューティングでは、地理的に分散した多数のコンピュータが組み込みの安全対策によって調整されます。[ 43 ]準機会主義的アプローチは、 BOINCのような高度に分散されたシステムでのボランティアコンピューティングや、Globus のようなシステムでの一般的なグリッドコンピューティングを超え、ミドルウェアが多数のコンピューティングクラスタへのほぼシームレスなアクセスを提供することで、 FortranやCなどの言語で書かれた既存のプログラムを複数のコンピューティング リソースに分散させることができます。[ 43 ]
準機会主義的スーパーコンピューティングは、機会主義的リソース共有よりも高い品質のサービスを提供することを目指しています。[ 44 ]準機会主義的アプローチは、グリッド単位のリソース割り当て協定を確立し、フォールトトレラントなメッセージパッシングによって基盤となるリソースの障害から抽象的に保護することで、コンピュータグリッド内で要求の厳しいアプリケーションの実行を可能にし、より高いレベルの制御を可能にしながら、ある程度の機会主義を維持します。[ 10 ] [ 43 ] [ 45 ]

空冷式の IBM Blue Geneスーパーコンピュータのアーキテクチャは、プロセッサ速度を犠牲にして低消費電力を実現しており、通常の空調を使用することで、より多くのプロセッサを室温で使用できます。[ 14 ] [ 46 ]第 2 世代の Blue Gene/P システムは、ノード間通信ロジックを統合したプロセッサを備えています。[ 47 ]エネルギー効率が高く、371 MFLOPS/Wを達成しています。[ 48 ]
Kコンピュータは、水冷式で均質なプロセッサと分散メモリを備えたクラスタアーキテクチャのシステムです。[ 32 ] [ 49 ] 80,000個以上のSPARC64 VIIIfxプロセッサを使用しており、各プロセッサは8コアを持ち、合計で700,000コア以上、他のどのシステムよりもほぼ2倍の数です。800台以上のキャビネットで構成され、各キャビネットには96個の計算ノード(それぞれ16GB のメモリ)と6個のI/Oノードがあります。TOP500リストの次の5つのシステムを合わせたものよりも強力ですが、824.56 MFLOPS/Wで、現在の主要なスーパーコンピュータシステムの中で最も低い電力対性能比となっています。[ 50 ] [ 51 ] Kコンピュータの後継システムであるPRIMEHPC FX10は、同じ6次元トーラス相互接続を使用していますが、依然としてノードあたり1つのプロセッサのみです。[ 52 ]
Kコンピュータとは異なり、Tianhe-1Aシステムはハイブリッドアーキテクチャを採用し、CPUとGPUを統合しています。[ 4 ]約3,500枚のブレード上に、 14,000個以上のXeon汎用プロセッサと7,000個以上のNvidia Tesla汎用グラフィックス処理ユニット(GPGPU)を使用しています。[ 53 ] 112台のコンピュータキャビネットと262テラバイトの分散メモリを備えています。2ペタバイトのディスクストレージは、Lustreクラスタファイルによって実装されています。[ 54 ] [ 55 ] [ 56 ] [ 4 ] Tianhe-1は、独自の高速通信ネットワークを使用してプロセッサを接続しています。[ 4 ]独自の相互接続ネットワークは、 Infiniband QDRをベースに、中国製のFeiTeng-1000 CPUで強化されています。[ 4 ]相互接続の場合、システムはInfinibandの2倍の速度ですが、他のスーパーコンピュータの相互接続よりは遅いです。[ 57 ]
特定のアプローチの限界は、大規模な実験によって限界に達するにつれて引き続きテストされています。たとえば、2011 年に IBM はイリノイ大学のBlue Watersペタフロップス プロジェクトへの参加を終了しました。 [ 58 ] [ 59 ] Blue Waters アーキテクチャは IBM POWER7プロセッサに基づいており、1 ペタバイトの「グローバルにアドレス指定可能なメモリ」と 10 ペタバイトのディスク スペースを備えた 200,000 個のコアを持つことを目的としていました。[ 6 ]持続的なペタフロップスの目標は、シングル コアのパフォーマンスを最適化する設計上の選択につながり、その結果、コアの数が少なくなりました。コアの数が少ないと、多数のプロセッサにうまくスケーリングしないプログラムのパフォーマンスが向上することが期待されました。[ 6 ]大規模なグローバルにアドレス指定可能なメモリ アーキテクチャは、同じタイプのプログラムに対して、メモリ アドレスの問題を効率的に解決することを目的としていました。[ 6 ] Blue Waters は、少なくとも 1 ペタフロップスの持続速度で動作することが期待されており、熱管理のために特定の水冷方式に依存していた。運用開始から最初の 4 年間で、国立科学財団はこのプロジェクトに約 2 億ドルを費やした。IBM はその後すぐに、このプロジェクトの技術から派生したPower 775コンピューティング ノードをリリースしたが、Blue Waters のアプローチは事実上放棄した。[ 58 ] [ 59 ]
アーキテクチャの実験はさまざまな方向で続けられており、たとえばCyclops64システムは、大規模な分散プロセッサの使用から離れた方向で、「チップ上のスーパーコンピュータ」アプローチを採用しています。[ 60 ] [ 61 ]各 64 ビットの Cyclops64 チップには 80 個のプロセッサが含まれており、システム全体でグローバルにアドレス指定可能なメモリ アーキテクチャを使用しています。[ 62 ]プロセッサは、内部的にブロッキングしないクロスバー スイッチで接続され、グローバル インターリーブ メモリを介して相互に通信します。このアーキテクチャにはデータ キャッシュはありませんが、各SRAMバンクの半分をスクラッチ パッド メモリとして使用できます。[ 62 ]このタイプのアーキテクチャは、動的に非連続なメモリ システムで非構造化並列性を可能にしますが、並列アルゴリズムをマルチ コアシステムに効率的にマッピングするという課題も生み出します。[ 61 ]
{{cite journal}}: CS1 maint: 複数の名前: 著者リスト (リンク){{cite book}}:|journal=無視されました (ヘルプ)