Broadly speaking, back then, systems using CPUs like POWER and SPARC, along with commercial UNIX, were the ones that provided the necessary performance and operating environment for HPC in a comprehensive package. Later, systems using mass-produced components and Linux also became capable of delivering the required performance, and offered advantages in terms of price and procurement flexibility. Rather than simply saying that "older systems used specialized components," it's easier to understand if you think of it as a shift in the rational choices available. (IBM)
Here, we will primarily focus on the transition from the 1990s to the 2000s and explain the situation with CPUs and operating systems separately.
1. Why CPUs like POWER and SPARC?
Actively Investing Performance in the Areas Necessary for Scientific and Technological Computing
In HPC, it's not just clock speed that matters. Factors such as how many floating-point operations can be processed, and how quickly data can be supplied from memory to the arithmetic unit, are also important.
High-performance RISC machines at the time were designed to enhance these aspects. For example, IBM's POWER2 featured two floating-point units and increased cache capacity and memory-to-cache transfer bandwidth. The subsequent POWER3 utilized 64-bit address space and large shared memory. It was designed to handle large-scale numerical calculations, including the memory system, not just the CPU itself. (Wayback Machine)
The RISC architecture also played a role here. By organizing the instruction set and efficiently implementing a pipeline that streamlines instruction processing, the goal was to achieve high performance. IBM's RS/6000 was also deployed as a high-performance workstation/server for scientific and engineering applications. (IBM)
However, it's not accurate to say that "RISC is always faster than x86." The classification of instruction sets and the actual arithmetic units, cache, and memory bandwidth of a product are different things. Even with the same instruction set, the type of computation it excels at changes depending on how resources like circuits and power are allocated.
The same distinction is important for SPARC. For example, the SPARC64 VIIIfx used in "Kei" wasn't simply a large number of standard SPARC CPUs; it was a CPU developed with a focus on performance, power efficiency, and reliability through error correction and instruction re-execution for scientific and technological computing. The reason it was chosen wasn't simply because it was "SPARC," but because its specific implementation was well-suited to the system's goals. (Fujitsu Archives Information)
It should be noted that IBM's POWER and PowerPC are related series, but they are not strictly the same name. PowerPC was created based on POWER through collaboration between IBM, Apple, and Motorola. Both appeared in the history of HPC. (IBM)
2. Why OSs like AIX instead of Linux?
You Were Buying the Entire Computing System, Not Just Choosing an OS Freely
This is particularly important.
Today, people tend to think of "first buying a server and then installing Linux," but in older vendor-made HPC systems, the hardware and the software environment that fully utilized it were closely linked.
For example, IBM's SP system included not only AIX but also high-speed inter-node communication, C/Fortran compilers, the ESSL numerical calculation library, a parallel execution environment including MPI, job management with LoadLeveler, and a parallel file system with GPFS. IBM's parallel execution environment at the time depended on AIX and the POWER platform. (Wayback Machine)
Therefore, from the user's perspective, the choice was:
"Which of AIX or Linux should I use on the same machine?"
rather than
"Choosing the combination of hardware, development environment, and operating environment that can perform the required calculations."
It's more appropriate to see it as a shift in the nature of the choice.
A different OS simply running on the CPU doesn't create an equivalent HPC system. It needs to be usable, including support for communication devices, compiler optimization, parallel execution, and fault diagnosis.
AIX Had Established Track Record as a Product
AIX has been around since 1986 and is a product that has been used for critical business operations in companies. In HPC, it wasn't just about speed; there was value in being able to operate it continuously and have problems investigated and fixed. Utilizing an existing product base was rational. (IBM Community)
However, this is not to say that "using AIX makes the OS execute floating-point operations particularly faster." The CPU performs the core numerical calculations, and the compiler and numerical calculation libraries generate and select the instructions. While the OS has an impact through memory management and communication, the reason for its adoption is not the speed of the OS itself, but the overall performance and completeness.
Also, saying that "Linux at the time couldn't be used for HPC" is an exaggeration. In 1994, the Beowulf project began at NASA, using open-source software like Linux and off-the-shelf components. Commercial UNIX machines and Linux clusters coexisted and transitioned depending on the application and scale. (Beowulf)
3. Why the Shift to x86 + Linux?
x86's Numerical Computing Capabilities Were Enhanced
x86 didn't remain the same in terms of performance. For example, SSE2 introduced SIMD instructions for processing double-precision floating-point numbers in batches, and subsequent AVX instructions expanded the arithmetic functions. Functions necessary for scientific and technological computing were incorporated into widely available CPUs. (Intel)
What's important here is that x86 didn't need to be the highest-performing for all applications. If the calculation can be sufficiently parallelized, the criterion is not just "the highest performance of a CPU when purchased," but how much computation can be done with the entire system for the same budget.
The Advantages of Using Mass-Produced Components and a Common Parallel Software Stack Became Significant
If you can use CPUs, memory, and network components supplied in large quantities for the PC market, you can benefit from price competition and economies of scale compared to building an HPC system with dedicated components. Furthermore, the price-performance ratio of networks and the common parallel programming environment such as MPI enhanced the practicality of clusters using mass-produced components. These are also factors in the development of Beowulf. (Beowulf)
However, it wasn't as if "Linux clusters appeared, and that's when people started connecting multiple computers." The IBM SP mentioned earlier was also a parallel system. The key change was that parallelization was not invented, but rather, it became possible to build parallel machines with more widely available components and common software. (Wayback Machine)
Linux Could Inherit UNIX Usage and Become a Common Platform
Linux reimplements UNIX functions and aims for compatibility with POSIX, making it an OS that is easy to adapt to UNIX-based development and operations. It was originally developed for x86 but supports many CPU architectures. (kernel.org)
Being open source was also important. In fact, in early Beowulf, the Linux driver was modified to improve network performance. It wasn't just about saving on license fees; the advantage was that it could be investigated and modified as needed, and a common environment could be developed by many organizations. (Beowulf)
4. The "Shift to x86" and the "Shift to Linux" Are Different Phenomena
These two progressed together, but they are not the same thing. Examples make this clear:
| System | CPU | OS |
|---|---|---|
| Kei [2011 system] | SPARC64 VIIIfx | Linux |
| Summit [2018 system] | IBM POWER9 + NVIDIA GPU | Red Hat Enterprise Linux |
Kei used SPARC but ran Linux, and Summit also used a POWER-based CPU with Linux. In other words, adopting a non-x86 CPU and adopting commercial UNIX such as AIX are not necessarily a set. (TOP500)
In summary, in the past, the value of manufacturers providing a complete, integrated computing system, including software, was significant, and later, the value of combining widely available components with a common OS and software became significant.
It's not that "RISC and AIX were wrong choices," but rather that the optimal configuration for performing the necessary calculations quickly and reliably for the same budget has changed.
なぜ昔のHPCではPOWERやSPARC、AIXが使われていたのか
大きく言うと、当時は「HPCに必要な性能と運用環境を、ひとまとまりで提供していたのが、POWER/SPARCなどのCPUと商用UNIXを使うシステムだった」からです。 その後、量産部品とLinuxを使うシステムでも必要な性能を得られるようになり、価格や調達の自由度が効いてきました。単に「昔は特殊なものを使っていた」というより、合理的な選択肢が変わった、と考えると理解しやすいです。(IBM)
ここでは主に1990年代から2000年代の移行を中心に、CPUの事情とOSの事情を分けて説明します。
1. なぜPOWERやSPARCなどのCPUだったのか
科学技術計算に必要な部分へ、積極的に性能を投入していた
HPCで重要なのは、クロック周波数だけではありません。浮動小数点演算をどれだけ処理できるか、演算器へメモリから十分な速さでデータを供給できるか、といった部分が重要です。
当時の高性能RISC機では、そうした部分が強化されていました。例えばIBMのPOWER2は、浮動小数点演算器を2基備え、キャッシュ容量やメモリからキャッシュへの転送帯域も拡大していました。その後のPOWER3では64bitアドレス空間や大容量の共有メモリも利用できました。CPU単体だけでなく、メモリ系まで含めて大きな数値計算を処理する設計だったわけです。(ウェイバックマシン)
ここにはRISCという設計方針も関係しています。命令体系を整理し、命令の処理を流れ作業にするパイプラインなどを効率よく実装することで、高性能を目指しました。IBMのRS/6000も、科学技術・工学用途に使われる高性能なワークステーション/サーバーとして展開されています。(IBM)
ただし、「RISCだから必ずx86より速い」という意味ではありません。 命令セットの分類と、実際の製品が備える演算器・キャッシュ・メモリ帯域は別の話です。同じ命令セットでも、どこへ回路や電力の予算を配分するかで、得意な計算は変わります。
SPARCについても、その区別が重要です。例えば「京」のSPARC64 VIIIfxは、単に一般的なSPARC CPUを大量に並べたというより、科学技術計算向けの性能、電力効率、エラー訂正や命令再実行による信頼性を重視して開発されたCPUでした。選ばれた理由は「SPARCという名前」ではなく、その具体的な実装がシステムの目標に適していたことです。(富士通アーカイブス情報)
なお、IBMのPOWERとPowerPCは関連する系列ですが、厳密には同じ名称ではありません。PowerPCはPOWERを基に、IBM・Apple・Motorolaの協業で生まれました。HPCの歴史では両方が登場します。(IBM)
2. なぜOSもLinuxではなくAIXなどだったのか
OSだけを自由に選ぶのではなく、計算システム全体を購入していた
ここが特に重要です。
現在の感覚では「まずサーバーを買い、そこへLinuxを入れる」と考えがちですが、当時のベンダー製HPCでは、ハードウェアと、それを十分に活用するソフトウェア環境が密接に結び付いていました。
例えばIBMのSPシステムには、AIXだけでなく、高速なノード間通信、C/Fortranコンパイラ、数値計算ライブラリのESSL、MPIを含む並列実行環境、ジョブ管理のLoadLeveler、並列ファイルシステムのGPFSなどが用意されていました。当時のIBMの並列実行環境は、AIXとPOWERプラットフォームに依存していました。(ウェイバックマシン)
したがって利用者から見ると、選択は、
「同じ機械で、AIXとLinuxのどちらを入れようか」
というより、
「必要な計算を実行できる、ハードウェア・開発環境・運用環境の組み合わせを選ぶ」
という性格が強かった、と捉えるのが適切です。
別のOSがCPU上で起動するだけでは、同等のHPCシステムにはなりません。通信装置の対応、コンパイラによる最適化、並列実行、障害の診断まで含めて使える必要があるからです。
AIXには、先に蓄積された製品としての実績があった
AIXは1986年から続くOSで、企業の重要業務などでも使われてきた製品です。HPCでも、単に計算が速いだけでなく、継続して運用できることや、不具合を調査・修正してもらえることに価値があります。既存の製品基盤を利用するのは合理的でした。(IBM Community)
ただし、これは「AIXを使うと、OSが浮動小数点演算を特別に速く実行してくれる」という話ではありません。 数値計算の中心部分を実行するのはCPUであり、その命令を生成・選択するのはコンパイラや数値計算ライブラリです。OSにもメモリ管理や通信などを通じた影響はありますが、採用理由はOS単体の速さというより、全体としての性能と完成度です。
また、「当時のLinuxはHPCに使えなかった」とするのも言い過ぎです。1994年には、NASAでLinuxなどのオープンなソフトウェアと量産部品を用いるBeowulfプロジェクトが始まっています。商用UNIX機とLinuxクラスタは、用途や規模に応じて並存しながら移行したのです。(Beowulf)
3. では、なぜx86+Linuxへ移っていったのか
x86側の数値計算能力が強化された
x86も同じ性能のままではありませんでした。例えばSSE2では、倍精度浮動小数点数をまとめて処理するSIMD命令が導入され、その後はAVXなどで演算機能が拡張されました。科学技術計算に必要な機能が、広く流通するCPUにも取り込まれていったわけです。(Intel)
ここで大事なのは、x86があらゆる用途で最高性能になる必要はなかった、ということです。十分に並列化できる計算なら、判断基準は「CPUを1個買ったときの最高性能」だけでなく、同じ予算でシステム全体としてどれだけ計算できるかになります。
量産部品と、共通の並列ソフトウェアを使う利点が大きくなった
PC市場向けに大量に供給されるCPU、メモリ、ネットワーク部品などを利用できれば、HPC専用の部品だけで構成するより、価格競争や大量生産の恩恵を受けやすくなります。さらに、ネットワークの価格性能比の向上と、MPIなどの共通の並列プログラミング環境が、量産部品を使ったクラスタの実用性を高めました。これらはBeowulfの発展要因としても挙げられています。(Beowulf)
ただし、「Linuxクラスタが登場して初めて、複数の計算機をつなぐようになった」わけではありません。前述のIBM SPも並列システムです。変化の中心は、並列化の発明ではなく、より広く流通する部品と共通ソフトウェアで並列機を構築できるようになったことです。(ウェイバックマシン)
Linuxは、UNIXの使い方を引き継ぎつつ共通基盤になれた
LinuxはUNIXの機能を再実装し、POSIXなどとの互換性を目指しているため、UNIX系の開発・運用の考え方を引き継ぎやすいOSです。また、もともとはx86向けに開発されましたが、多数のCPUアーキテクチャに対応しています。(kernel.org)
オープンソースであることも重要でした。実際、初期のBeowulfではネットワーク性能を改善するためにLinuxのドライバが改修されています。単なるライセンス費の節約だけでなく、必要に応じて調査・変更でき、共通の環境を多くの組織で育てられることが利点でした。(Beowulf)
4. 「x86への移行」と「Linuxへの移行」は別の現象
この2つは重なって進みましたが、同じことではありません。実例を見ると明確です。
| システム | CPU | OS |
|---|---|---|
| 京〔2011年のシステム〕 | SPARC64 VIIIfx | Linux |
| Summit〔2018年のシステム〕 | IBM POWER9+NVIDIA GPU | Red Hat Enterprise Linux |
「京」はSPARCでありながらLinuxを使い、SummitもPOWER系CPUでLinuxを使っていました。つまり、非x86のCPUを採用することと、AIXなどの商用UNIXを採用することは、必ずしもセットではありません。 (TOP500)
まとめると、昔は「高性能な計算機を、メーカーがソフトウェアまで一体で完成させる」ことの価値が大きく、後には「広く流通する部品と共通のOS・ソフトウェアを組み合わせる」ことの価値が大きくなった、という変化です。
「RISCやAIXが間違った選択だった」のではなく、同じ予算で、必要な計算を速く、確実に終わらせるための最適な構成が変わったと見るのが本質です。
Top comments (0)