ワン)は、シーモア・クレイ率いるクレイ・リサーチ社が設計したベクトル型スーパーコンピュータである。この種類のコンピュータの基本構成を確立し、当時世界最高速であった。1976年に納入された。Cray-1のアーキテクトはシーモア・クレイ、主任技術者はクレイ・リサーチの共同創設者であるレスター・デーヴィスだった[1]。いう新しいマシンの開発に従事していた。8600は4台の7600をひとつの筐体に収めたもので、追加された特別なモードによって全体でSIMD的な動作をすることができるものであった。呼ばれるプロジェクトを開始した。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年代の凋落までは成功を収めたのである。次の世界最高速のスーパーコンピュータとなった。1985年、後継機として革新的なCray-2が登場した。1.9GFLOPSであったが、商業的にはあまり成功しなかった。その理由は、高い理論ピーク性能に比べて実際のアプリケーションを動作させたときの性能が(メモリバンド幅がネックとなり)十分には発揮できなかったからである。科学技術計算は大きなデータセットを読み込み、何らかの変換を加え、書き戻すというものである。通常、変換はデータセット内のデータそれぞれに等しく適用される。加算するというようなプログラムが考えられる。一般的なコンピュータでは、百万回ループして個々の数値に5を加算していく。ような命令を百万個生成するようなものである。コンピュータ内部では、この命令を実行するためにいくつかの過程を踏む。命令を読み込んで解読(デコード)する。次に必要な追加情報を集める。加算を実行して結果を格納する。「ベクトル計算機」も参照STARでは、新たな命令でループを表す。一見してあまり変化がないようにも思われるが、この場合マシンは百万個ではなくひとつの命令を読み込んで解読すればよい。そのため全体の約4分の1の時間が節約される。実際の時間短縮はそれほどはっきりしていない。コンピュータのCPUは、特定の仕事をするいくつかの部分から構成される。加算を実行する部分やメモリを読み込む部分などである。命令を処理する場合、CPUの一部分だけが働いていて、命令処理はCPUの中の部分から部分へと流れていくのである。命令パイプラインの追加によってこれが変わった。CPUは先読みをして、前の命令を処理中に次の命令を読み込む。この流れ作業的手法では、ひとつの命令は時間がかかっているが、全体としてみれば命令が次々と処理されていくのである。ベクタープロセッサは、これにあるトリックを追加して使用する。データの配置は分かっているので(メモリ上に順番に数値が並んでいる)、データ読み込み性能を上げるようにパイプラインを調整する。ベクトル命令を受け付けると、特別なハードウェアを指定された配列を読み込むように設定し、プロセッサに数値を次々と送り込むのである。CDCがSTARで使用した手法は、今日では「メモリ・メモリ・アーキテクチャ」として知られている。これはデータを集める方法を意味していて、パイプラインは直接メモリを読み書きするように設定される。この場合、いかなる長さのベクトルでも使用可能で、非常に汎用的である。遅いメモリにアクセスしてもパイプラインが埋まるようにするために、パイプラインの段数が極めて長くないと性能が出せない。これは、ベクトル演算から通常の命令処理への切り替えに時間がかかることを意味する。通常の命令処理の性能が悪いため、ベクトルからの切り替え時間との相乗効果で通常の命令処理は極めて性能が低下する。結果的に実際のアプリケーション性能は残念なものとなった。これは、設計者がアムダールの法則を考慮していれば最初からわかったことかもしれない。クレイの手法編集クレイはSTARの技術的失敗を見て学ぶことが出来た。彼はベクトル処理の高速化に加えて、一般のスカラー命令も高速化することを決断した。すれば、マシンのモードが切り替えられても高速に動作できる。彼らはベクトルを格納するレジスタを導入することで性能を劇的に向上できることに気づいた。初期のマシンは演算を行うたびにメモリ上のデータを頻繁に読み書きしていたため、無自覚にSTARでも同様にベクトル演算がベクトルの要素に演算を施すたびにメモリへ繰り返しアクセスするように実装してしまった。まとめてデータをベクトル用のレジスタに読み込んで、まとめて演算を施し、まとめて演算結果を書き込むならば性能はさらに向上する(まとめたことで、データ1語あたりのメモリへのアクセスレイテンシが減らせるほかに、パイプライン化された演算器のレイテンシも遮蔽できる)。回路としてはコストが高いレジスタは、無制限に実装するわけにはいかないので、クレイの設計ではベクトルレジスタ内部の要素数は64語に制限された。STARではベクトルは任意長でもよいがメモリアクセスが何度も発生するのに対して、クレイの設計したマシンでは長いベクトルデータに対してはその一部(64語以内の)だけをまとめて読み込む。そのひとかたまりに対して要素ごとに同じ演算処理をまとめて実行できるのである。一般的な処理においてより長いベクトルを扱う場合にはそれを64語ずつに区切ってメモリアクセスを何回かに分けても性能向上を期待できるとクレイは考えた。一般的なベクトル処理は小さなデータのかたまりをベクターレジスタに読み込んで、それに対していくつかの演算を行うが、この新しいベクトルシステムは独立した演算パイプラインを持つよう設計され、乗算器と加算器は独立したハードウェアとして実装されたので、内部でふたつの演算処理をつないで、例えば加算の結果を次の乗算で使用することがパイプライン上でできた。(チェイニング)と呼び、これをプログラマが意識して用いることで複数の命令をつないで使うことでベクトルレジスタとメモリの間の読み書きを減らすことにより高い性能を引き出すことができた。詳細編集Cray-1はクレイにとって初めて集積回路(IC)を使ったマシンである。ICは1960年代から実用化されていたが、1970年代に入ってから高速性を要求される用途にも使えるものになったのである。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つの信号が均衡を保つようになっている。したがって消費電力はさらに一定となり、電圧変動が低減される。電源から見ればコンピュータシステム全体が単純な抵抗器のように見える。ECL回路は高速であり、全体として発熱が非常に大きかった。クレイの設計者は多くの時間を冷却システムに費やした。このために2枚の基板の間に銅板を挟んで背中合わせにした。銅板は熱をケースの端へ送り出すので、そこにフロンの通るパイプを設置して熱を交換し、筐体下部の冷却装置でフロンを冷却した。最初のCray-1の完成が6カ月遅れたのは、この冷却機構に問題が生じたためである。コンプレッサのためにフロンに混ぜられていた潤滑剤が漏れて、回路がショートしてしまったのである。パイプの溶接に新たな技術を導入して漏れを防いだ。Cray-1について出願された特許は冷却システムの設計に関するものだけだった。ような形に配置された。速度に影響するものはその形の内側の端に置かれ、配線の長さを少しでも短くした。これによりサイクル時間は12.5ns(80MHz)まで短縮された。STARよりずっと高速である。Cray-1は64ビットシステムであり、7600/6600の60ビットとは異なる(8600でも同様の変更がなされる予定だった)。アドレスは24ビットであり、最大で1,048,571の64ビットワード(1Mワード)の主記憶を扱える。各ワードには8ビットのパリティビットが付属し、1ワードは実際には72ビットとなっている[5]。メモリインターリーブにより16バンクに分割され、それぞれ50nsのサイクル時間であり、1サイクルで4ワードを読み込むことができる。小さい構成では、主記憶を0.25Mワードあるいは0.5Mワードとすることも可能である。8本の64ビット・スカラー(S)レジスタと8本の24ビット・アドレス(A)レジスタから構成される。呼ばれた)があり、こちらは演算ユニットからは見えない。64本の64ビット・ベクター(V)レジスタとベクター長(VL)レジスタ、ベクターマスク(VM)レジスタがある。64ビットのリアルタイムクロック・レジスタと4本の64ビット命令バッファがあり、各命令バッファには16ビットの命令が4つ格納される。ハードウェアは1サイクル毎に1ワード分をベクターレジスタに供給し、アドレスおよびスカラーレジスタには1サイクル毎に2ワード分を供給する。16ワードの命令バッファ全体を4サイクルで満たすことができる。システムは12個のパイプライン型機能ユニットがある。24ビットのアドレス演算に加算ユニット1つと乗算ユニット1つを使用する。システムのスカラー部には加算ユニット、論理演算ユニット、ハミング重み計算ユニット、前置ゼロ計数ユニット、シフト演算ユニットがある。ベクター部には、加算ユニット、論理演算ユニット、シフト演算ユニットがある。浮動小数点演算ユニット群はスカラー部とベクター部で共有しており、加算ユニット、乗算ユニット、逆数近似ユニットからなる。システムは12個の機能ユニットがあるが、並列性には制限がある。1サイクルに1命令がユニットにフェッチされるが、実行は並列に行われ、1サイクル毎に最大で2個の命令が完了する。136MFLOPSである。ベクター命令を注意深く使用してchainを作るようにすれば最高で250MFLOPSの性能を出すことができる。Cray-1は大きなデータセットを処理するよう設計されているため、I/O回路の設計にも時間がかけられた。クレイがCDCで設計したものにはI/O専用のコンピュータが含まれていたが、それは必要とされなかった。代わりにCray-1は4台の6チャネル・コントローラを持ち、各コントローラが4サイクルに1回メモリにアクセスできるようにした。チャネルは16ビット幅で、制御ビットとして3ビット、エラー訂正用に4ビットを使用する。最大転送速度は100nsに1ワードであり、マシン全体では500Kワード/sとなる。最初のモデルCray-1Aは、フロン冷却システムを含めて重量5.5トンであった。RAMを100万ワード搭載した場合、消費電力は115kWであった。冷却システムと外部記憶装置を入れるとその倍の電力消費となる。S/200が使われた。これを使って起動時にオペレーティングシステムを本体に送り込み、動作中のCPUを監視し、オプションとして操作用としても使用した。これは後にEclipseに置き換えられた。次のモデルCray-1S(1979年)は、クロック周波数が若干上がって12.0nsとなり、メインメモリは100万/200万/400万ワードである。主記憶の大容量化は、25nsのアクセス時間で動作する4096ビットのバイポーラRAM集積回路によって実現できた[6]。データゼネラルのマシンは独自の16ビットマシン(80MIPS)に置き換えられた。I/Oシステムはメインのマシンとは分離され、6MB/sの制御チャネルと100MB/sの高速データ転送チャネルで接続された。この分離によって1Sの外観はCray-1Aをふたつに分けて少し離したように見えた。これによりI/Oシステムは必要に応じて拡張できるようになった。システムはいくつかの構成から選ぶことができた。S/500はI/O無しで0.5Mワードメモリであり、S/4400は4Mワードメモリで4台のI/Oプロセッサを持つ。次にはCray-1M(1982年)が登場した[7]。"M"は低価格なMOSベースのRAMをI/Oシステムに使用していることを表す。1Mは3つのバージョンがあり、メインメモリの容量だけで分けられている。2Mワード(16バンク)、M/4200は4Mワード(16バンク)である。いずれもI/Oプロセッサは2~4台であり、高速データチャネルがもうひとつ追加された。ユーザはMOSベースのRAMを8から32Mワード分追加してソリッドステートドライブとして使用することができた。ソフトウェア編集1978年、Cray-1リリース時の最初のソフトウェアは以下の3製品から構成されていた。X-MPで使用されたオペレーティングシステム。1984年にUNIX系統のUNICOSに置き換えられた。