Cray-1
[Wikipedia|▼Menu]
ドイツ博物館に保管されているCray-1 内部が見えるよう展示されているEPFLのCray-1

Cray-1(クレイ ワン)は、シーモア・クレイ率いるクレイ・リサーチ社が設計したベクトル型スーパーコンピュータである。この種類のコンピュータの基本構成を確立し、当時世界最高速であった。最初のCray-1システムはロスアラモス国立研究所1976年に納入された。Cray-1のアーキテクトはシーモア・クレイ、主任技術者はクレイ・リサーチの共同創設者であるレスター・デーヴィスだった[1]目次

1 歴史

2 背景

2.1 ベクトル計算機

2.2 クレイの手法


3 詳細

4 Cray-1S

5 Cray-1M

6 ソフトウェア

7 日本における導入実績

8 博物館

9 Cray-1の画像

10 脚注・出典

11 外部リンク

歴史

1970年代初め、シーモア・クレイはCDCCDC 8600 という新しいマシンの開発に従事していた。8600はクレイがかつて設計した CDC 6600CDC 7600 の後継機である。8600は4台の7600をひとつの筐体に収めたもので、追加された特別なモードによって全体でSIMD的な動作をすることができるものであった。

クレイの初期設計のパートナーだったジム・ソーントンはさらに先進的な CDC STAR-100 と呼ばれるプロジェクトを開始した。8600の力ずくの性能向上手法とは異なり、STARは全く異なる方法を採用した。STARのメインプロセッサは7600よりも性能が悪かったが、科学技術計算の性能向上のための特別なハードウェアと命令を追加していた。

1972年に、開発中の8600はマシンがあまりにも複雑であったために、部品のどれかひとつが故障してもシステム全体が動作できなくなり、正常に動作させることができなかった。そこでクレイはCDC社長のウィリアム・ノリスと会い、設計を最初からやり直す必要があることを告げた。しかし当時のCDCは深刻な財政的問題を抱えており、また並行するSTAR?100の開発もあったため、社長ノリスは8600へのこれ以上の追加投資ができないとして開発中止を決定した。

結果として、クレイはCDCを辞め、CDCの研究所のすぐ近くに新たな会社を設立した。チッペワフォールズ(英語版)に土地を購入し、彼とCDCの元従業員らはアイデアを探し始めた。当初、小規模なベンチャー企業にはスーパーコンピュータの構築は不可能と思われたが、クレイの最高技術責任者ウォール街に行ってみると、多くの投資家がクレイへの出資に意欲を見せた。彼らに必要なのは設計だけであった。

1975年、クロック80MHzでピーク性能160MFLOPSのCray-1が発表された。反響は大きく、ローレンスリバモア国立研究所ロスアラモス国立研究所が第一号機(SN-1)の争奪戦を繰り広げたほどである。結局、後者が勝ち、半年後の1976年に第一号機が納入された。クレイ・リサーチ社の公式の最初の顧客はアメリカ大気研究センター(NCAR)であり、1977年7月に886万ドルを支払い(790万ドルが本体、100万ドルがディスクの代金である)、3号機を入手した。NCARのマシンは1989年1月まで使用された[2]。クレイ・リサーチ社は1ダースほどの販売を予定していたが、実際にはCray-1は80台以上販売されて、価格は500万から800万ドルであった。このマシンによってクレイは名士となり、会社は1990年代の凋落までは成功を収めたのである。

80MFLOPS(ピーク160MFLOPS)のCray-1の後継機は、1982年の800MFLOPSCray X-MP である。これはクレイ社初のマルチプロセッサ機であり、X-MP/48 は Cray-1 の次の世界最高速のスーパーコンピュータとなった。1985年、後継機として革新的なCray-2が登場した。ピーク性能は 1.9GFLOPSであったが、商業的にはあまり成功しなかった。その理由は、高い理論ピーク性能に比べて実際のアプリケーションを動作させたときの性能が(メモリバンド幅がネックとなり)十分には発揮できなかったからである。そのため、Cray-1や Cray X-MP を基にして拡張した Cray Y-MP が1988年に投入されることになった。
背景

典型的な科学技術計算は大きなデータセットを読み込み、何らかの変換を加え、書き戻すというものである。通常、変換はデータセット内のデータそれぞれに等しく適用される。例えば、百万個の数値それぞれに 5 を加算するというようなプログラムが考えられる。一般的なコンピュータでは、百万回ループして個々の数値に5を加算していく。つまり、a = add b, c

のような命令を百万個生成するようなものである。コンピュータ内部では、この命令を実行するためにいくつかの過程を踏む。まず、命令を読み込んで解読(デコード)する。次に必要な追加情報を集める。この命令の場合、数値 b と c を集めることになる。そして加算を実行して結果を格納する。
ベクトル計算機「ベクトル計算機」も参照

STARでは、新たな命令でループを表す。まず「数値の大きな列」がメモリのどこにあるのかをマシンに教え、ひとつの命令a(1..1000000) = addv b(1..1000000), c(1..1000000)

を実行させる。一見してあまり変化がないようにも思われるが、この場合マシンは百万個ではなくひとつの命令を読み込んで解読すればよい。そのため全体の約4分の1の時間が節約される。

しかし実際の時間短縮はそれほどはっきりしていない。コンピュータのCPUは、特定の仕事をするいくつかの部分から構成される。例えば加算を実行する部分やメモリを読み込む部分などである。命令を処理する場合、CPUの一部分だけが働いていて、命令処理はCPUの中の部分から部分へと流れていくのである。しかし、命令パイプラインの追加によってこれが変わった。CPUは先読みをして、前の命令を処理中に次の命令を読み込む。この流れ作業的手法では、ひとつの命令は時間がかかっているが、全体としてみれば命令が次々と処理されていくのである。

ベクタープロセッサは、これにあるトリックを追加して使用する。データの配置は分かっているので(メモリ上に順番に数値が並んでいる)、データ読み込み性能を上げるようにパイプラインを調整する。ベクトル命令を受け付けると、特別なハードウェアを指定された配列を読み込むように設定し、プロセッサに数値を次々と送り込むのである。

CDCがSTARで使用した手法は、今日では「メモリ・メモリ・アーキテクチャ」として知られている。これはデータを集める方法を意味していて、パイプラインは直接メモリを読み書きするように設定される。この場合、いかなる長さのベクトルでも使用可能で、非常に汎用的である。しかし、遅いメモリにアクセスしてもパイプラインが埋まるようにするために、パイプラインの段数が極めて長くないと性能が出せない。これは、ベクトル演算から通常の命令処理への切り替えに時間がかかることを意味する。さらに通常の命令処理の性能が悪いため、ベクトルからの切り替え時間との相乗効果で通常の命令処理は極めて性能が低下する。結果的に実際のアプリケーション性能は残念なものとなった。これは、設計者がアムダールの法則を考慮していれば最初からわかったことかもしれない。
クレイの手法

クレイはSTARの技術的失敗を見て学ぶことが出来た。彼はベクトル処理の高速化に加えて、一般のスカラー命令も高速化することを決断した。そうすれば、マシンのモードが切り替えられても高速に動作できる。さらに彼らはベクトルを格納するレジスタを導入することで性能を劇的に向上できることに気づいた。

初期のマシンは演算を行うたびにメモリ上のデータを頻繁に読み書きしていたため、無自覚にSTARでも同様にベクトル演算がベクトルの要素に演算を施すたびにメモリへ繰り返しアクセスするように実装してしまった。しかし、まとめてデータをベクトル用のレジスタに読み込んで、まとめて演算を施し、まとめて演算結果を書き込むならば性能はさらに向上する(まとめたことで、データ1語あたりのメモリへのアクセスレイテンシが減らせるほかに、パイプライン化された演算器のレイテンシも遮蔽できる)。回路としてはコストが高いレジスタは、無制限に実装するわけにはいかないので、クレイの設計ではベクトルレジスタ内部の要素数は64語に制限された。STARではベクトルは任意長でもよいがメモリアクセスが何度も発生するのに対して、クレイの設計したマシンでは長いベクトルデータに対してはその一部(64語以内の)だけをまとめて読み込む。しかし、そのひとかたまりに対して要素ごとに同じ演算処理をまとめて実行できるのである。一般的な処理においてより長いベクトルを扱う場合にはそれを64語ずつに区切ってメモリアクセスを何回かに分けても性能向上を期待できるとクレイは考えた。

一般的なベクトル処理は小さなデータのかたまりをベクターレジスタに読み込んで、それに対していくつかの演算を行うが、この新しいベクトルシステムは独立した演算パイプラインを持つよう設計され、乗算器と加算器は独立したハードウェアとして実装されたので、内部でふたつの演算処理をつないで、例えば加算の結果を次の乗算で使用することがパイプライン上でできた。これをクレイでは chaining (チェイニング)と呼び、これをプログラマが意識して用いることで複数の命令をつないで使うことでベクトルレジスタとメモリの間の読み書きを減らすことにより高い性能を引き出すことができた。
詳細

Cray-1はクレイにとって初めて集積回路(IC)を使ったマシンである。ICは1960年代から実用化されていたが、1970年代に入ってから高速性を要求される用途にも使えるものになったのである。Cray-1で使用しているICは、ECLによるNANDゲート2個(1つは5入力、もう1つは4入力)を実装したもの[3]、アドレス出力に使用するやや低速なMECLによるNANDゲートIC、レジスタ用の高速小容量(6ns, 16×4ビット)SRAM、主記憶用の1024×1ビットのSRAM(50ns)の4種類だけだった[4]。それらのICはフェアチャイルドセミコンダクターおよびモトローラ製である。Cray-1は全体で約20万ゲートで構成されている。

ICは5層のプリント基板上に実装され、基板1枚に最大144個のICが搭載されている。基板は冷却のために背中合わせに実装され、24台の28インチ高のラックに72組の背中合わせの基板がセットされた。モジュール(個別の演算ユニット)は1枚か2枚の基板で構成される。マシン全体では113種類、1,662モジュールが使われている。

モジュール間のケーブルはツイストペアケーブルとし、長さも緻密に計算してパルスの反射を低減し、定常波による誤動作が起きないようにした。ECL回路の生成する信号は差動形であり、2つの信号が均衡を保つようになっている。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:31 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef