NEC SX
出典: フリー百科事典『ウィキペディア(Wikipedia)』
SXシリーズは日本電気 (NEC) が開発したスーパーコンピュータのシリーズ名である。また、地球シミュレータの構成要素でもある。
SXシリーズは、最初、SX-2とSX-1が開発された。その後、廉価版としてSX-0が販売された。その後は、新機種毎に末尾の数字を1つづつ増やしたものが発表、販売されている。また、同じシリーズ(SX-3等)のサブモデルを指定する数字や英字などが付く。改良版にそれを示す文字が付く場合もあった(SX-2A、SX-3 Rなど)。
目次 |
[編集] SX-2,SX-1
SXシリーズで最初に登場したのは、SX-2である(1983年発表)。SX-2の下位モデルとして、SX-1,SX-0が提供されている。また、改良版として、SX-2A等が提供された。SX-2は世界で最初にGFLOPSを越えたスーパーコンピュータである。
[編集] SX-3
1989年4月に発表。オペレーティングシステム (OS) をUNIXベースに切り替えたモデルである。その後、1990年に低価格モデル、1992年1月に改良型モデル(SX-3 R)を発表。最大4つのAPが構成できる。メモリを共有して動作する。CPも2つ構成できる。ベクトルレジスタの容量、パイプラインの本数、とAPの台数によって、1Lから44まで、10個のサブモデルがある。
[編集] SX-4
1994年発表。SX-3まではバイポーラICを使っていたが、SX-4ではCMOSを使うようになった。そのため、SX-3Rで2.5nsまで高速化されていたクロックが8nsになった。そのかわり、チップ密度が向上し、1CPUモジュールで使用されるチップ数は37、その大きさは38.6cm x 45.7cmというものだった。 ノードあたり64GFLOPS、システムあたり最大1024GFLOPSとなった。SX-3同様ノード単位でメモリを共有するが、ノード間では分散したシステム間で協調動作を行なう。コンパクトモデル、シングルノードモデル、マルチノードモデルがある。 なお、1つのノードは1つの処理単位、言い替えればオペレーティングシステム (OS) が動作する単位である。
[編集] SX-5
1998年6月発表。シングルノードの最大CPU数は16個(128GFLOPS)、最大共有メモリ容量は128GB、主記憶バンド幅は1024GB/sであった。 SX-4と同様のCMOSプロセスを採用し、集積化を進めチップの処理速度向上施策と共に廃熱設計/多層配線などにより全体の処理速度の向上を図ったモデルがSX-5であり、クロックが4ns(250MHz)、16本ベクトルパイプラインとSX-4に比べ1CPUモジュールの性能が4倍の8GFLOPSとなった。1CPUモジュールは32チップから構成された。SX-5の1CPUモジュールをベースに1チップLSI化を目指したものが地球シミュレータのCPUである。 1999年5月にはベクトルパイプラインを半分の8本にした廉価版モデルSX-5Sを発表。2000年6月クロックを約3.2nsに向上させた1CPUモジュール10GFLOPSのモデルが発表。このCPU演算性能強化モデルではシングルノードの最大演算性能は160GFLOPSと向上したが主記憶バンド幅は640GB/sに低下した。
[編集] SX-6,SX-6i
2001年10月発表。シングルノードの最大CPU数は8個(64GFLOPS)、最大共有メモリ容量は64GB、主記憶バンド幅は256GB/sであった。 地球シミュレータのシングルノードを改良(メモリ容量が2倍)したものを用いたものがSX-6である。 従来はスカラー部とベクトル部は同期動作だったが、地球シミュレータ同様にベクトル部がスカラー部の倍速動作するように改良された。 クロック2ns(500MHz)で動作するスカラ演算ユニットとクロックが1ns(1GHz)で動作する8本のベクトルパイプラインを持つ1チップベクトルプロセッサから構成されている。0.15μmCMOSプロセスを採用。 2001年11月には最大8GBメモリ搭載の1CPUモデルSX-6iを発表。 2003年9月に9GFLOPS CPUとシングルノード当たりの最大メモリ容量が2倍(128GB,主記憶バンド幅289GB/s)になった機種を発表。
[編集] SX-7
2002年10月発表。シングルノードの最大CPU数は32個(282GFLOPS)、最大共有メモリ容量は256GB、主記憶バンド幅は1131GB/sである。基本的にはSX-6をシングルノード内のCPU数と最大共有メモリ量を拡張したモデル。0.15μmCMOSプロセスを採用。
[編集] SX-8,SX-8i
2004年10月発表。シングルノードの最大CPU数は8個(128GFLOPS)、最大共有メモリ容量は64GB(FCRAM)/128GB(DDR2-SDRAM)、主記憶バンド幅は512GB/sである。1ノード1モジュールを達成しCPUとメモリモジュール間にSX-6/7まで有った同軸布線20,000本を廃しカード化(ケーブルレス化)を高密度実装(15インチUXGAディスプレイの画素と同じ密度の外部接続ピン密度)を用いて実現した。90nmCMOSプロセスを採用。クロックが SX-6比2倍、スカラ演算ユニット1ns(1GHz), ベクトル演算ユニット0.5ns(2GHz)となり1CPUあたり16GFLOPSを達成。SXシリーズとしては初のSQRT命令のハードウェアサポートを実現。 2005年9月SX-8i発表。1CPUモデルSX-6iの後継。SX-6iで不評だった1ノード最大メモリを32GBと大幅に改善し64GB/sの主記憶バンド幅を提供。
[編集] SX-8R
2006年10月発表。ベクトルプロセッサ(CPU)の中枢機能であるベクトル加算器と乗算器を倍増し、CPU当たりの性能を従来機に比べ2倍以上の35.2GFLOPS(従来は16GFLOPS)に向上した。同時に、1CPU(シングルコア)当たりの最大ベクトル性能で100GFLOPSを超える1チップベクトルプロセッサを搭載した次期ベクトルスーパーコンピュータを開発中であることを表明した。
[編集] SX-9
2007年10月発表。 ペタフロップス級の性能を視野に入れ開発されたのがベクトルスーパーコンピューター「SX-9」である。 当初の予定通り1チップベクトルプロセッサを採用し、プロセッサ当たりの性能は100GFLOPSを越える。(発表時点ではシングルプロセッサとして世界最高性能)これに伴い、性能当たりの電力を大幅に向上させている。最大で8192台のCPUを接続できる。
またノード間の接続速度も見直され、最大で256GB/S(128GB/S×2)となった。オペレーティングシステムはSUPER-UXを継続採用している。
[編集] アーキテクチャ
アーキテクチャはSX-3以前(SX-2まで)とそれ以降は多少差はあるが、ここでは全体的な特徴について説明する。 大きく分けて2つのユニットから構成されている、非対称密結合マルチプロセッサ構成をとっている。この構造は、同時期に開発された、富士通や日立のスーパーコンピュータと構造を異にする部分である(富士通や日立はメインフレームの拡張という形で設計されている)。
また、モデル毎に高速化をはかる機能が追加されてきている。たとえば、パイプラインの増加、命令セットの強化(8バイト演算命令の追加など)、データのロード/ストア用のバスの分離や強化などがあげられる。
[編集] 制御プロセッサ(CP)
[編集] SX-2までのアーキテクチャ
いわゆる汎用コンピュータ的な仕事をする所である。オペレーティングシステム (OS) はこのプロセッサ上で実行される。データの入出力、プログラムの編集やコンパイル作業などを行なう。SX-2まではACOS-4系の汎用コンピュータである。CPはさらに、通常の演算を行なうEPUとシステム制御部(SCU)から構成される。入出力を行なうIOPもSCUから接続される。
[編集] SX-3以降のアーキテクチャ
SX-3以降はUP4800等のUNIXサーバとなった。CP単独で処理をする、というようなイメージではなくなった。APの制御、入出力処理の制御を行なうためのプロセッサという役割になった。
[編集] 演算プロセッサ(AP)
数値演算のプログラムを実行するだけのプロセッサである。アーキテクチャはSXシリーズ用に新たに開発された。RISC形式風の命令セットであり、1命令は4バイトまたは8バイトである。基本的に64ビットマシンである。大きく分けてスカラ演算ユニット(SU)、ベクトル演算ユニット(VU)とインターフェースユニット(IU)から構成される。
APはSX-2,SX-1,SX-0は1システムに1ユニットであるが、SX-3以降は1システムに複数ユニット構成できるようになった。そのため、各APは共有メモリ型マルチプロセッサを構成している。
数値演算を高速に行なうために、ベクトル演算機能が用意されている。スカラ演算は、RISC風のため、SX-2シリーズにおいては、同社で当時最新の汎用コンピュータ S1000の3.5倍以上を目標に設計されていた。ベクトル演算機能とスカラ演算機能(汎用レジスタ)は独立しているため、並行に動作可能である。キャッシュメモリは、命令キャッシュとオペランドキャッシュが独立している。
データを高速に処理するための工夫が用意されている。たとえば、SX-2,1においては、メモリは512ウェイインターレス(最大)構成をとっていて、6nSクロックのスピードと共に、最大11Gバイト/Sのデータ転送能力(SX-2において)、1.3G FLOPS(SX-2)の性能を誇る。クロックはSX-3Rで2.5nsまで高速化されたが、SX-4ではデバイスがCMOSになったため、8nsまで遅くなった。
[編集] レジスタ
SX-2のレジスタはおおよそ以下のとおりである。なお、SX-1ではベクトル関係のレジスタはSX-2の半分になる。SX-3以降も基本的にはこの構成をとっている。
[編集] ベクトル演算機能
ベクトル演算機能は4つのパイプライン(SX-3まで、SX-4は最大8つ、モデルによって本数は変わる)を持っている。そのため、1サイクルで複数の演算を同時に行なうことが出来る。また、ベクトル演算機能は、加算、乗算、論理演算、シフト演算の4つの演算機能が別々に用意されている。そのため、それぞれの演算を独立して行なうことが出来る。たとえば、
DO 100 I=1,100 100 C(I) = A(I) + B(I)
というようなDOループはベクトル演算命令の1マシン命令にコンパイルされ、実行される(ベクトル化。詳しくはベクトル化のページを参照のこと)。もちろん、浮動小数点数だけではなく整数に対してもベクトル処理が可能である。
また、ベクトルマスク機能を使い、ベクトル内で演算対象のものだけをふるい分けたり、ベクトルをマスクの価によって圧縮、伸張するような演算を行なうことが出来る。そのため、より高速な演算が可能である。この機能は、DOループ内にあるIF文内のベクトル演算(条件付き演算)を高速に行なうために用意されている。
そのほか、累和を高速に求める機能や、浮動小数点数の0.5倍/2倍を高速に行なう機能も用意されている。
[編集] スカラ演算機能
さらに、SX-3では、命令の Out of Order 実行機能が加わった。
SX-4ではスーパースカラー化されている。同時に2命令のデコード、フェッチと分岐を含め、最大4命令が同時に実行可能である。固定小数点数演算用の演算器が2つ、浮動小数点数演算用の演算器が1つ、乗算器が1つある。固定小数点数演算は1マシンサイクル、浮動小数点数演算も2マシンサイクルで実行可能であり、極めて高速な演算が可能になっている。
[編集] 命令セット
命令セットは3オペランド形式である。演算はすべてレジスタで行なわれる。RISC風のため、演算命令とロード/ストア命令が分かれている(メモリ上のデータをレジスタ上の値と演算を行なう命令はない)。
スカラ演算用の命令とベクトル演算用の命令が分かれている。スカラ演算用の命令(RX型)は1命令1ワード(4バイト)または2ワード(8バイト)である。1バイトのオペコードの後に、3つのオペランドが続く。オペランドはレジスタ、インデックスレジスタ、あるいは即値である。
ベクトル演算用の命令(RR型/RV型)も、1バイトのオペコードの後に3つのオペランドが続く。主な命令は
などが用意されている。演算は、ベクトルとベクトルの演算だけではなく、ベクトルとスカラーの演算なども用意されている。このため、ベクトルに特定の価を足したり掛けたりするようなDOループが、ハードウェア的な1命令で実行できる。
また、数値演算専用のプロセッサのため、いわゆる10進演算等の命令は用意されていない。基本的にワード(64ビット)単位の処理であるが、ロード/ストア命令についてはバイト/16ビット単位のものが用意されている。
SX-3では、64ビット整数演算命令、最大値/最小値検索命令等が追加されている。
SX-4では、浮動小数点演算に、IBM形式、CRAY形式の他に、IEEE形式もサポートするようになった。
ベクトル命令は、複数のオペランドを持つが、1つのベクトルのオペランドを全て処理してから次のベクトル命令を実行すると処理が遅くなる。SXシリーズでは、1つのベクトルのオペランドが演算を終えた後、次のベクトル命令の処理を開始する機能がハードウェアによって用意されている。このため、ベクトル命令の高速化が可能である。
[編集] 実装
[編集] 筐体形状
SX-2(SX-1を含む)では、配線を最適化するために、APとメモリ部分がY型になっている。APの先に、CPやIOPが接続される。冷却機構は別筐体である。水冷のため、SX-2本体はそばによっても熱を感じず、ひんやりとして、音も静かであるが、冷却機構の空気吹き出し口(機構の上部)は猛烈に熱い風が吹き上げている。
SX-3では各筐体が平行に並び、その装置間をインタフェースユニットが接続している。
SX-4では、1つのユニットの筐体が人の形に似た、非常に特徴のある形状になっている。
[編集] 水冷方式
SX-2以降、AP、CPとも主要部分は水冷方式となっている。SX-2では複数のICを集積したICモジュールに10cm四方の水冷ユニットが取り付けられている。 SX-3では、APのみLCM(リキッドクーリングモジュール)と呼ばれる30×20cm程度のモジュールが採用され複数の集積回路と水冷機構が一体となっている。CPはUNIXサーバとなったため空冷化となり、外部に設置する設備の大幅な縮小が可能となった。
SX-4ではチップがCMOSになったため、空冷になっている。
[編集] ソフトウェア
[編集] OS
[編集] SX-2までのOS
SX-2、SX-1は、ACOS-4をベースとしたSX-OSというオペレーティングシステム (OS)で動作している。 ACOS-4系で提供されている機能がほとんどすべて動作可能である。また、ACOS-4/MVP XE と疎結合マルチプロセッサ構成をとることが出来る(ディスクの共有)。
さらに、チェックポイントリスタート機能を有している。この機能を使うことで、 長期間処理を行なうジョブを分割して実行したり、出力制限値を越えてしまって アボートしたジョブのリスタートも可能になる。長い数値計算を行なう処理には 便利である。
[編集] SX-3以降のOS
SX-3以降は、メインフレームベースのオペレーティングシステム (OS) をやめ、UNIXベース(System V ベース)のOS、SUPER-UXとなった。ベースは System V ではあるが、4.3BSDの機能を取り入れ、ネットワーク関係等が強化されているTCP/IPだけではなく、OSIへの対応もなされている。そのほかの特徴は以下のとおり。
- マルチプロセッサ対応
- 2つのページサイズ
- 32Kバイトと1Mバイトのページサイズを提供している。UNIXコマンドのような小さなプログラムは32Kバイト、科学技術計算には1Mバイトのページサイズを割り当てている。どちらを使うかは、実行可能バイナリファイルに設定されている。
- オーバレイ機能
- スケジューリング機能の大幅な変更
- 通常の処理(UNIXコマンドによる対話的な処理)と、数値演算のようなバッチ的な処理のスケジューリングを適切に行なうために、ドメイン、スケジューリンググループという機能を用意している。
- ドメイン
- 会話処理ドメインとバッチ処理ドメインが用意されている。それぞれに対して、CPU配分、メモリ配分を設定できる。
- スケジューリンググループ
- ユーザ毎にスケジュール方法を設定できる。従来のUNIX風のスケジュール方法の他に、固定的にスケジュールを設定する機能も、バッチ的な処理のために用意されている。
- ファイルシステムの改良
- NQS機能
SX-4対応のOSでは、SVR4.2MP (System V Release 4.2 MP) 対応になった。また、並列処理も、SX-3ではタスクライブラリというFortran指向のライブラリを用意していたが、SX-4ではPOSIXスレッドを使えるようになった。但し、より並列度が上がるように、粒度を向上したり、アトミック命令が追加されている。
[編集] コンパイラ
[編集] SX-2まで
SX-2、SX-1では、AP上で実行するバイナリを生成する FORTRAN77/SXと、CP上で実行可能なバイナリを生成するFORTRAN77が提供されている。CP上では、FORTRAN77以外にもCOBOLやPL/Iなど、他の言語もコンパイル、実行可能である。しかし、AP上で処理可能な高水準言語は、FORTRAN77しかない。
CP上実行可能なFORTRANは、デバッグ用途である。また、FORTRANのソースコードを整形するBEAUTIFIERや、動作を解析する(動的/静的)ANALIZER/SX、対話的にベクトル化を推進するVECTRIZER/SXも用意されている。
[編集] SX-3以降
SX-3以降のSUPER-UX向けには、新しいハードウェアに対応して、コンパイラも機能強化されている。たとえば、8バイト整数、ベクトルレジスタの容量拡大対応などである。機能的にも、外部手続きをインラインで展開したり、行列演算を認識して、関数呼び出しに変えたり、ループ数を減らして、ループ内演算を増やして(ループアンローリング)、メモリアクセスの軽減、ベクトルレジスタの効率的な利用をはかるように改良されている。
さらに、APが複数あることを利用し、並列実行を行なう機能が用意されている。並列実行は、サブルーチンレベルで並列化を行なう、マクロタスク機能、ループ内演算を並列化する、マイクロタスク機能がある。マクロタスク機能はソースコードレベルでの修正が必要だが、マイクロタスク機能機能では自動的に並列化が行なわれる。さらに、より高度な並列化を行なうために、並列化を指示するような命令や、並列実行のための補助的な命令も追加されている。
また、SUPER-UXでベースとなっているオペレーティングシステム (OS) がUNIXであるので、UNIXに関係が深いC言語もサポートしている。C言語でもFORTRANと同様、ベクトル化機能を有効に使えるようなコード生成を行なえるようになっている。
性能向上のためのツールは、新たに、ANALIZER-P/SXと、PARALLELIZER/SXが提供されている。
SX-4からはFORTRAN90が提供されている。 また、SX-4用のコンパイラは、SX-4で新たに追加された命令や、高速化のためのアーキテクチャの改良を取り込んで最適化を行なっている。さらに、マルチノードにも対応している。
[編集] アメリカによるダンピング課税問題
SXシリーズは、アメリカ合衆国 (米国) においてダンピングを行っていると大幅に課税されたことがある。これは、当時、米国社製のスーパーコンピュータに比べ、SX-3等の価格が安かった為でもある。当時、米国にはSX-3は殆ど輸出されておらず、専ら米国国外でSX-3の出荷が順調に進み、米国社製のスーパーコンピュータの販売がしにくくなった為でもある。
米国などのスーパーコンピュータメーカでは制御系を専用マシンで補わなければならないためこの製作が高額であった。これに対し日本メーカーは自社の汎用マシンで補い、さらに、SX-3等では小型汎用サーバに置き換える事により大幅な価格差が生じる結果となった。
米国では軍事産業保護の観点からスーパーコンピュータも保護すべき対象となっていた為、安価であった日本のスーパーコンピュータの導入は一向に進まなかった。 後に、米国国内でも安価なスーパーコンピュータが使えない事に抗議の声が上がり、この問題は消え去ることとなった。2001年2月28日に、日本電気 (NEC) はクレイ社にSXシリーズをOEMすることで合意している。なお、詳しい経緯については日米スパコン貿易摩擦を参照されたい。
[編集] 参考文献
- SXシステムの開発背景、NEC技報,Vol39 No1/1986
- SXシステムの概要、NEC技報,Vol39 No1/1986
- SXシステムの科学演算処理装置、NEC技報,Vol39 No1/1986
- SXシステムの制御プログラム、NEC技報,Vol39 No1/1986
- SX-3シリーズの開発背景と概要、NEC技報,Vol45 No2/1992
- SX-3シリーズのハードウェア構成、NEC技報,Vol45 No2/1992
- オペレーティングシステム SUPER-UX NEC技報,Vol45 No2/1992
- SX-3シリーズの言語プロセッサと開発支援ツール、NEC技報,Vol45 No2/1992
- SX-4シリーズの開発背景と概要 NEC技報,Vol48 No11/1995
- SX-4シリーズのハードウェア構成 NEC技報,Vol48 No11/1995
- オペレーティングシステム SUPER-UX NEC技報,Vol48 No11/1992
- SX-4シリーズの言語プロセッサと開発支援ツール、NEC技報,Vol48 No11/1992