# Development of supercomputers in Japan: Hardware and software > [!abstract] 概要 > 日本の産業界におけるスーパーコンピュータの開発活動を概観する。過去 20 年間の日本のスーパーコンピュータシステムのアーキテクチャとソフトウェアを記述し、論じる。特にシステム間の類似点と相違点に重点を置く。 ## 論文情報 - 著者: [[Yoshio Oyanagi]](東京大学 情報科学科) - 掲載: Parallel Computing, Vol. 25, 1999 年, pp. 1545–1567(1998 年 12 月 19 日受領、同月 29 日改訂受領) - キーワード: Supercomputers, Japan, Vector processing, Architecture, Compiler - 対象: [[Fujitsu]]、[[Hitachi]]、[[NEC Corporation]] の市販スーパーコンピュータ。実験機と専用機は対象外(同誌同号の別論文が扱う)である。 - 書誌は PDF 本文から確定した。DOI と URL は確認できなかったため記載しない。 ## 概要 1980 年代前半以降に日本の 3 社が製造した市販ベクトル型スーパーコンピュータを、1970 年代の先駆機と 4 つの世代に分けて概観し、最後にコンパイラを扱う。著者は 3 社の機種の共通点を、メインフレームの延長として作られたこと、非専門家向けの自動ベクトル化コンパイラを備えること、社内で半導体チップを生産できることに整理する。一方で 1990 年代に入ると 3 社の方針は互いに大きく分かれ、共有メモリ型マルチプロセッサ、分散メモリ型ベクトル並列、共有メモリ型ノードのクラスタ、RISC ベースの擬似ベクトル処理という別々の道をたどったと述べる。 ## 問題設定 - 3 社は 1980 年代前半から高性能機を作ってきたが、英語圏では記事が少なく、あまり知られていない。著者は 15 年間の歴史と、ハードウェアおよびソフトウェアの特徴を分析する。 - 対象は商用システムに限る。実験機は含めない。 - 叙述は 4 つの世代区分(1980 年代前半、後半、1990 年代前半、1990 年代後半)と、先駆機の節、コンパイラの節で構成する。 ## 提案手法 本論文は新手法の提案ではなく、機種ごとの構成を年代順に整理した調査である。以下に要点を世代ごとに述べる。 **先駆機(1970 年代)。** [[Cray-1]] の出荷は 1976 年で、その数年後に日本各社もベクトル機能付きの計算機を出した。Fujitsu の FACOM 230-75 APU は日本初のベクトルプロセッサで、1977 年に航空宇宙技術研究所へ設置された。90 ns サイクルの APU を主機と同じ階層に接続する異機種マルチプロセッサで、ベクトル演算の最大性能は 22 MFLOPS、拡張言語の AP-FORTRAN を持つ。Hitachi(M-180 IAP、1978 年。M-200H IAP、1979 年。M-280H IAP、1982 年)と NEC(ACOS-1000 IAP、1982 年、28 MFLOPS)は、最上位メインフレームの CPU に組み込んだメモリ間方式の統合アレイプロセッサ(IAP)を作った。Hitachi は科学技術計算ベンチマークの解析から少数のベクトル命令を選び、実行ステップの約半分をベクトル化できると見た。総和・内積・一次漸化式という Cray-1 に無い演算が性能に決定的だと分かり、これらを IAP と後継のスーパーコンピュータに実装した。M-280H IAP のコンパイラは、IF 文を含む DO ループの自動ベクトル化を世界で初めて支えたとする。 **第 1 世代(1983〜84 年)。** 3 社とも大容量ベクトルレジスタを持つが、詳細な構成は互いに全く異なる。 | 機種 | 発表・出荷 | 性能・サイクル | 特徴 | |---|---|---|---| | Hitachi S-810/20 | 1982 年 8 月発表、1983 年 10 月出荷 | 最大 630 MFLOPS、14 ns | 乗算器 2、乗除算器 2、演算論理ユニット、マスクプロセッサが独立動作。256 語のベクトルレジスタ 32 本、マスクレジスタ 8 本。拡張記憶(最大 1024 MB)を主記憶とディスクの間に置く。制御プログラムは VOS3/HAP | | Fujitsu VP-100/200 | 1982 年 7 月発表、VP-200 初号機は 1983 年 12 月設置 | 285 / 570 MFLOPS、7 ns | 加減・乗・除・マスク・ロードストア 2 本の 6 パイプ。VP-200 のベクトルレジスタは 8K 語で、1024 要素×8 本から 32 要素×256 本まで動的に再構成できる。OS は VSP。VP-50(140 MFLOPS)と VP-400(1140 MFLOPS、パイプは 4 重複製、のち VP-400E で 1700 MFLOPS)を 1985 年に追加 | | NEC SX-1/2 | 1983 年 4 月発表、1985 年 6 月出荷 | 570 / 1300 MFLOPS、SX-2 は 6 ns(SX-1 は 7 ns) | SX-2 はベクトルパイプ 16 本、スカラーレジスタ 128 本、最大 256 MB(512 バンク)の主記憶、最大 2 GB の拡張記憶。制御プロセッサと演算プロセッサから成る異機種マルチプロセッサで、パイプの自動チェイニングを採る。OS は SXCP | 3 機種の構成を Figure 1(S-810/820/3800 のプロセッサ構成)、Figure 2(VP-200 のアーキテクチャ)、Figure 3(SX-2 のアーキテクチャ)に示す。 ![[_attachments/Development-of-supercomputers-in-Japan--Hardware-and-software/fig01-hitachi-s810-organization.png]] ![[_attachments/Development-of-supercomputers-in-Japan--Hardware-and-software/fig02-vp200-architecture.png]] ![[_attachments/Development-of-supercomputers-in-Japan--Hardware-and-software/fig03-sx2-architecture.png]] 第 1 世代の特徴として著者は次を挙げる。S-810 と VP のスカラーユニットはメインフレームとほぼ同一である。日本の機種は 1 つの制御プロセッサが多数のベクトルパイプを束ねて性能を出し、Cray X-MP(1982 年)は少数パイプのプロセッサを並列化する方向をとった。ベクトルレジスタは Cray より大きく、リスト指定ベクトル命令(Cray 用語でギャザ/スキャッタ)は最初から実装され、Cray-1 と初期の X-MP には無かった。S-810 と SX-1/2 は X-MP の SSD に相当する半導体拡張記憶を持てる。著者は日本のスーパーコンピュータをメインフレーム技術の延長と位置づけ、3 社が世界有数の半導体チップ供給者である点を強みとする。この時期はメインフレームの技術がスーパーコンピュータへ移った。 **第 2 世代(1980 年代後半)。** 先代の設計を引き継ぎ、半導体技術で性能を上げた。Fujitsu と NEC は Cray X-MP/Y-MP のような共有メモリ型マルチプロセッサを採った。 | 機種 | 発表・出荷 | 性能・サイクル | 特徴 | |---|---|---|---| | Hitachi S-820 | 1987 年 7 月発表、同年 12 月出荷 | 0.25〜3 GFLOPS(5 モデル)、4 ns | 最上位モデル 80 は加算論理 4、乗加算 4、除算 1、ロード 4、ロードストア 4、512 語のベクトルレジスタ 32 本。主記憶最大 1024 MB、拡張記憶最大 24 GB。「リンキング」(前のチェインの完了前に次を開始)と「シグナリング」(ベクトル処理の途中でスカラープログラムを開始)、要素ごとの並列処理を採る | | Fujitsu VP2000 | 1988 年 12 月発表 | 0.5〜5 GFLOPS(10 モデル) | 単一プロセッサ、スカラー 2 重(2 つのスカラーユニットが 1 つのベクトルユニットを共有)、4 重(2 組を密結合)のモデルがある。高位機 VP2600 は 2 本のパイプ、ベクトルレジスタ計 128 KB。主記憶最大 2 GB(最大 512 ウェイのインターリーブ)、システム記憶最大 8 GB。VP シリーズと完全な上位互換 | | NEC SX-3 | 1989 年 4 月発表、1990 年 12 月出荷 | 690 MFLOPS〜22 GFLOPS(8 モデル)、2.9 ns(SX-3R は 2.5 ns) | 演算プロセッサ(AP)を最大 4 個備える対称型並列。ベクトルパイプ 4 組、VAR(256 語×8)と高速プログラム可能キャッシュとして動く VDR。AP 間同期に通信レジスタを使う。OS は AT&T System V UNIX を拡張した Super-UX | 第 2 世代の各社のベクトルユニットの多重度は控えめで(VP2000 で 2、SX-3 で 4)、Cray Y-MP の 8 に及ばない。技術移転の向きは逆転し、VP2000 の技術は Fujitsu のメインフレーム M-1800(1990 年)へ、SX-3 の技術は NEC の ACOS-3800(1990 年)へ移った。この方式によって、競争力あるスーパーコンピュータの研究開発費を数百台のメインフレームで償却できたと著者は述べる。 **第 3 世代(1990 年代前半)。** 各社が大きく方針を変えた。 | 機種 | 発表・出荷 | 性能・サイクル | 特徴 | |---|---|---|---| | Hitachi S-3800/S-3600 | 1992 年 3 月発表 | ベクトルプロセッサ 1 台あたり 8 GFLOPS、最大 32 GFLOPS(モデル 480) | Hitachi 初のマルチプロセッサ。水冷の S-3800 はモデル 160 から 480 までの 6 機種で、空冷の S-3600 が併売される。ベクトル命令を S-820 から 9 命令拡張し、マルチプロセッサ用の制御命令 5 つを追加。主記憶最大 2048 MB、拡張記憶最大 32 GB。バンク競合を避けるスキュード方式のメモリマッピング。OS は HI-OSF/1-MJ か VOS3/AS | | Fujitsu VPP500 | 1992 年 10 月発表 | 1.6 GFLOPS のベクトルプロセッサを部品とし、4〜222 台(制御プロセッサ 2 台を含め最大 224 台)、10 ns | 分散メモリ型ベクトル並列。PE は 3 命令を同時発行できる 64 ビット LIW のスカラーユニット、ベクトルユニット、主記憶(最大 1 GB、32 バンク)、データ転送ユニットを 1 枚の基板に載せる。PE 間を単段クロスバー網で結び、PE あたり 400 MB/s のポート 2 本を持つ。著者は、この構成が木・メッシュ・トーラス型に対して衝突が無く、プログラムしやすく、分割しやすく、障害に強いと評価する | | NEC SX-4 | 1994 年 11 月発表、1995 年 11 月出荷 | 1 GFLOPS〜1 TFLOPS、8 ns(SX-3R の 2.5 ns から遅くなった) | NEC 初の CMOS 高位機。1 ノードは最大 32 CPU の共有主記憶で、最大 16 ノード(512 CPU)を内部ノード間クロスバースイッチ(IXS)または HIPPI で結ぶ。出荷された最大構成は 4 ノード(128 CPU)。ベクトルパイプ組は 8 組、スカラーは 2 ウェイのスーパースカラー。主記憶帯域は最大 512 GB/s。IXS は 1 ノードあたり 8 GB/s。IEEE、IBM、Cray の 3 種のデータ形式に対応 | 著者は第 3 世代を、Hitachi が共有メモリ型マルチプロセッサ(ECL)、Fujitsu が GaAs とシリコンによる分散メモリ型ベクトル計算機、NEC が共有メモリ型マルチプロセッサのクラスタへ進み、アーキテクチャの分岐が顕著になった時期とまとめる。 **第 4 世代(1990 年代後半)。** | 機種 | 発表・出荷 | 性能・サイクル | 特徴 | |---|---|---|---| | Fujitsu VPP300/700 | 1995 年(VPP300)と 1996 年(VPP700)発表 | PE あたり 2.2 GFLOPS、7 ns。VPP300E/700E(1997 年発表)は 2.4 GFLOPS、6.5 ns | CMOS と空冷。ベクトルパイプ 7 本、ベクトルレジスタ 128 KB、PE あたり最大 2 GB の SDRAM。VPP300 は最大 16 PE、VPP700 は外部クロスバー網で最大 256 PE。クロスバー網にバリア同期のハードウェアを持つ。OS は UXP/V | | Hitachi SR2201/SR8000 | SR2201 は 1995 年 7 月発表、1996 年 2 月設置。SR8000 は 1998 年 5 月発表、同年 12 月出荷 | SR2201 の PU は 150 MHz で 300 MFLOPS。SR8000 は 128 ノードで最大 1 TFLOPS | PA-RISC 1.1 に擬似ベクトル機能を載せた RISC プロセッサ(Tsukuba 大学との共同研究に由来)。主記憶の非ブロッキング直接ロード(プリロード)を使う。SR2201 は最大 2048 PU を多次元クロスバー網とリモート DMA(ゼロコピー、非ブロッキングのメッセージ転送)で結ぶ。SR8000 は COMPAS(1 ノード内の全マイクロプロセッサを単一アドレス空間で同時起動)によりノード単位でベクトルプロセッサ相当の性能を出す | | NEC SX-5 | 1998 年 6 月発表、同年 12 月出荷 | 4 ns、CPU あたり 8 GFLOPS(16 組のベクトルパイプ) | SX-4 の延長。CPU あたり 16 組のパイプは SX-4 の 2 倍で、CMOS で最速のクロックである。1 ノードは最大 16 CPU、主記憶最大 128 GB、帯域 1 TB/s。最大 32 ノード(512 CPU、4 TB、4 TFLOPS)を IXS で結ぶ | Figure 4 は VPP300/700 のシステム構成と PE 構成、Figure 5 は SR2201/8000 のシステム構成、Figure 6 は SX-5 のマルチノード構成である。 ![[_attachments/Development-of-supercomputers-in-Japan--Hardware-and-software/fig04-vpp300-700-configuration.png]] ![[_attachments/Development-of-supercomputers-in-Japan--Hardware-and-software/fig05-sr2201-8000-configuration.png]] ![[_attachments/Development-of-supercomputers-in-Japan--Hardware-and-software/fig06-sx5-multinode-configuration.png]] 著者は、NEC と Fujitsu は先代を継承する一方、Hitachi は伝統的な意味のベクトル計算機ではなくなったとまとめる。Figure 4 のシステム構成図は VPP300E/700E の PE 図を含み、本文の 2.4 GFLOPS の値と一致する。 **コンパイラ(第 7 節)。** ベクトル機向けの言語は、専用ベクトル言語、標準言語の拡張、自動ベクトル化の 3 種に分類される。Fujitsu の FACOM 230-75 APU の AP-FORTRAN は拡張言語である。Cray の FORTRAN の自動ベクトル化は最初期のものだが制限が強く、多くのシステム定義関数を使う必要があった。著者は、日本の機種がメインフレームに慣れた非専門家向けに作られ、システム定義関数に頼らない完全な自動ベクトル化が普及に不可欠だったと述べる。 - Nobayashi と Eoyang による多数のベクトルコンパイラの解析(24 本の Livermore Fortran Kernels)では、日本の 3 社のコンパイラ、特に Hitachi のものが、Cray、Alliant、Titan、Convex より僅かにベクトル化能力で上回った。Argonne 国立研究所のテストスイートでは、Fujitsu が全領域で安定し、Hitachi は高いがばらつきがあり、日本の 3 社ともイディオム認識とベクトル化で最良だった。Cray の CFT77 は依存関係解析と言語の完全性で最強だが、ベクトル化とイディオム認識は相対的に弱かった。 - Hitachi。最初の日本のベクトル化 FORTRAN コンパイラは M-180 IAP 向けである。総和・内積・一次漸化式と IF 文つき DO ループをベクトル化する。S-810 と S-820 の FORTRAN 77/HAP は、IF 文の下にある変数の依存関係に新しいデータフローアルゴリズムを導入した。チューニング用に VECTIZER(静的な診断メッセージ、ベクトル化率、実行後のループごとのベクトル実行率)を持つ。応用向け高水準言語として偏微分方程式を書ける DEQSOL を開発し、翻訳器がベクトル化しやすい FORTRAN コードを自動生成する。 - Fujitsu。FORTRAN77/VP は、単純なループに加えて入れ子ループと内積などのマクロ演算をベクトル化し、漸化式を検出して分離する。条件文つきループは、真の割合とロードストア頻度に応じて、マスク付き演算・圧縮/伸張・間接アドレス指定の 3 通りを切り替える。再構成可能なベクトルレジスタを活かすため、ループごとの実効ベクトル長をコンパイラが解析する。デバッグ支援、性能解析器、対話型ベクトル化ツール、ベクトル版科学技術計算ライブラリ SSL II/VP を備える。VPP 向けには並列化指示行と並列化コンパイラを含む FORTRAN90/VPP を開発した。 - NEC。FORTRAN77/SX は ANSI 規格準拠の自動ベクトル化・最適化コンパイラで、ベクトル化できないループにはその理由を診断メッセージで示す。VECTORIZER/SX と ANALYZER/SX は対話型のチューニングツールで、OPTIMIZER はインライン展開とループ融合を行うプリプロセッサである。これらは統合開発環境 PSUIE に統合された。ASL/SX は行列演算・連立一次方程式・FFT の科学技術計算ライブラリである。SX-4 と SX-5 では MPI の効率的な実装を重視し、HPF コンパイラの実装にも力を入れる。 ## 新規性 - 英語圏ではあまり知られていない日本の 3 社の市販スーパーコンピュータを、1970 年代の先駆機から 1998 年までの通史として整理し、アーキテクチャとソフトウェアを比較した点が貢献である。 - 日本の機種の共通の設計思想を、メインフレームの延長、非専門家向けの自動ベクトル化、社内での半導体生産という 3 点で整理し、Cray の設計との対比を示した。 - 世代ごとに、メインフレームとスーパーコンピュータの間で技術移転の向きが変わったことを指摘した。 ## 実験設定 本論文は新しい実験を持たず、各社の技術者(Hitachi の Shun Kawabe、Fujitsu の Kenichi Miura、NEC の Tadashi Watanabe)から提供を受けたデータの調査である。コンパイラの評価は Nobayashi と Eoyang の既存の解析を引用している。 ## 実験結果 新しい測定結果は無い。上の表に、原論文が示す各機種の主要な諸元を整理した。主なまとめは次のとおり。 - 第 1 世代の最大性能は S-810/20 の 630 MFLOPS から SX-2 の 1300 MFLOPS まで、第 2 世代は最大 22 GFLOPS(SX-3 の 4 プロセッサ機)、第 3 世代は最大 32 GFLOPS(S-3800/480)、第 4 世代は 3 社とも 1 TFLOPS 級のシステムを目標とした。 - ベクトルパイプの多重度は、第 2 世代の 2〜4 から SX-5 の 16 組にまで増えた。 - クロックは SX-3R の 2.5 ns が最速のバイポーラ機、SX-5 の 4 ns が CMOS 最速であり、SX-4 の 8 ns は CMOS への転換によるクロックの後退と引き換えに、コストと持続性能で優れるとされる。 ## 考察 著者の結論は次のとおり。第 1 に、日本のスーパーコンピュータは専門家だけでなく一般の利用者を対象に、優れた自動ベクトル化コンパイラと使いやすさを提供する。並列化は非専門家には容易でないため、単体システムで比較的高い性能を出すことを重視する。第 2 に、メインフレームの延長として設計され、メインフレーム利用者が障壁を感じずにスーパーコンピュータへ移れる。第 3 に、3 社は世界有数の半導体供給者であり、自社の素子技術と高密度実装技術が競争力になる。 一方で現在の設計方針は互いに分かれている。SGI/Cray はベクトルアーキテクチャの比重を下げ、汎用 RISC チップによる MPP へ移りつつあるが、Fujitsu と NEC は専用チップの CMOS ベクトルスーパーコンピュータを作り続け、Hitachi は従来型のベクトルプロセッサから RISC チップの擬似ベクトル処理へ路線を変えた。3 社は 21 世紀初頭のマルチ TFLOPS 機を目指す。 ## 強み / 弱点・課題 強み: - 3 社の機種を同じ観点(演算パイプ、レジスタ、主記憶、拡張記憶、OS、コンパイラ)で並べ、世代ごとの共通点と相違点を追える。 - メインフレームとの間の技術移転の向きが世代で入れ替わるという、設計思想に関わる観察を示す。 - Cray 機との比較(パイプの多重度、レジスタの大きさ、リスト指定ベクトル、拡張記憶)が第 1 世代の節に明記されている。 弱点・課題: - 性能の数値は各社提供の諸元(ピーク性能)に頼り、持続性能や実アプリケーションでの比較はコンパイラ評価を除いて示されない。 - 「非専門家に使いやすい」という主張は、Nobayashi と Eoyang の解析でベクトル化能力が優れることを挙げるものの、ユーザーの生産性を測る証拠は本論文内に無い。 - 対象は商用機に限り、実験機や専用機は含まれない。SGI/Cray が MPP に移るという予想も 1998 年時点の展望である。 - 本文中の数値に表記ゆれがある(VPP500 の最大 PE 数が 222 台と 224 台)。後者は制御プロセッサ 2 台を含む数と読める。