クレイ-1 | 1975

クレイ-1

クレイ-1

 クレイ-1は、クレイリサーチによって設計、製造、販売されたスーパーコンピュータです。1975年に発表され、最初のクレイ-1システムは1976年にロスアラモス国立研究所に設置されました。最終的に80台のクレイ-1が販売され、歴史上最も成功したスーパーコンピュータの一つとなりました。クレイ-1は、電源供給装置と冷却システムを覆うベンチのリングに囲まれた、比較的小さなC字型キャビネットという独特の形状で最もよく知られています。

クレイ-1は、ベクタープロセッサ設計を成功裏に実装した最初のスーパーコンピュータでした。これらのシステムは、メモリとレジスタを配置して、大量のデータセットに対して単一の操作を迅速に実行することで、数学的演算の性能を向上させます。CDC STAR-100やASCのような以前のシステムは、これらの概念を実装しましたが、性能を深刻に制限する方法で行いました。クレイ-1はこれらの問題に対処し、類似の設計よりも数倍速いマシンを生産しました。

クレイ-1の設計者はシーモア・クレイであり、主任エンジニアはクレイリサーチの共同創設者であるレスター・デイビスでした。彼らはその後も同じ基本概念を使用していくつかの新しいマシンを設計し、1990年代まで性能の王座を維持しました。

1968年から1972年まで、シーモア・クレイはコントロールデータコーポレーション(CDC)でCDC 8600に取り組みました。8600は、彼の以前のCDC 6600およびCDC 7600設計の後継機でした。8600は本質的に4台の7600をボックスにまとめ、追加の特別モードを使用してSIMD方式で動作できるようにしました。

ジム・ソーントンは、クレイのエンジニアリングパートナーとして、より急進的なプロジェクトであるCDC STAR-100を開始しました。8600の性能を追求する無慈悲なアプローチとは異なり、STARはまったく異なるルートを取りました。STARの主要プロセッサは7600よりも性能が低かったが、特に一般的なスーパーコンピュータタスクを加速するためのハードウェアと命令を追加しました。

1972年までに8600は行き詰まりました。機械が非常に複雑で、適切に動作させることが不可能でした。単一の欠陥部品でも機械を非稼働状態にすることがありました。クレイはCDCのCEOであるウィリアム・ノリスに、再設計が必要だと訴えました。当時、会社は深刻な財政問題に直面しており、STARも開発中だったため、ノリスは資金を投資できませんでした。

その結果、クレイはCDCを離れ、クレイリサーチを設立しました。彼はチッペワフォールズの近くに土地を購入し、CDCの元従業員たちと共にアイデアを探し始めました。最初は、別のスーパーコンピュータを構築するという概念は不可能に思えましたが、クレイリサーチの最高技術責任者がウォールストリートに行き、クレイを支援する投資家を見つけた後、すべてが設計だけを必要としていました。

4年間、クレイリサーチは最初のコンピュータを設計しました。1975年に80MHzのクレイ-1が発表されました。最初のマシンを巡ってローレンス・リバーモア国立研究所とロスアラモス国立研究所の間で入札戦争が勃発し、後者が最終的に勝利し、1976年にシリアル番号001を受け取りました。国家大気研究センター(NCAR)は1977年にクレイリサーチの最初の公式顧客となり、シリアル番号3に対して886万ドルを支払いました。NCARのマシンは1989年に退役しました。会社はおそらく10台程度のマシンを販売することを期待し、価格をそれに応じて設定しましたが、最終的にはすべてのタイプで80台以上のクレイ-1が販売され、価格は500万ドルから800万ドルでした。このマシンはシーモア・クレイを有名人にし、彼の会社を成功に導きました。

ウィリアム・ペリーの研究勧告に基づき、NSAは暗号解析の理論研究のためにクレイ-1を購入しました。ブディアンスキーによれば、「クレイリサーチの標準的な歴史では、会社の最初の顧客はロスアラモス国立研究所であると主張され続けましたが、実際にはNSAでした。」

160 MFLOPSのクレイ-1は、1982年に800 MFLOPSのクレイX-MPに引き継がれ、これは最初のクレイのマルチプロセッシングコンピュータでした。1985年には、1.9 GFLOPSのピーク性能を持つ非常に進んだクレイ-2が最初の2つのモデルを引き継ぎましたが、実際のアプリケーションで持続的な性能を発揮するのに問題があり、商業的成功はやや制限されました。そのため、クレイ-1とX-MPモデルの進化的な後継機として、より保守的に設計されたクレイY-MPが1988年に発売されました。

比較すると、2013年の一般的なスマートデバイス、例えばGoogle Nexus 10やHTC Oneのプロセッサは約1 GFLOPSの性能を発揮し、2019年のiPhone 11のA13プロセッサは154.9 GFLOPSの性能を発揮しますが、クレイ-1を引き継ぐスーパーコンピュータは1994年までこの性能に達しませんでした。

典型的な科学的作業負荷は、大規模なデータセットを読み込み、何らかの方法で変換し、再び書き込むことから成ります。通常、適用される変換はデータセット内のすべてのデータポイントに対して同一です。たとえば、プログラムは100万の数字のセットに5を加えるかもしれません。



単純なコンピュータでは、プログラムが100万の数字をループして5を加え、a = add b, cという百万の命令を実行します。内部的にコンピュータはこの命令をいくつかのステップで解決します。まず、メモリから命令を読み取り、デコードし、次に必要な追加情報を収集し、この場合はbとcの数字を集め、最後に操作を実行して結果を保存します。結果として、コンピュータはこれらの操作を実行するのに数十億または数百億のサイクルを必要とします。

STARでは、新しい命令が本質的にユーザーのためにループを書きました。ユーザーは、メモリ内の数字のリストが保存されている場所を機械に指示し、単一の命令を入力しました。a(1..1000000) = addv b(1..1000000), c(1..1000000)。一見すると、節約は限られているように見えますが、この場合、機械は1,000,000の命令を取得してデコードする代わりに、単一の命令を取得するため、1,000,000の取得とデコードを節約します。

実際の節約はそれほど明白ではありません。コンピュータのCPUは、単一のタスクに専念するために構成された複数の別々の部品から成り立っています。通常、命令が機械を通過する際には、常に一つの部品だけがアクティブです。これは、全体のプロセスの各順次ステップが完了するまで結果を保存できないことを意味します。命令パイプラインの追加はこれを変えます。このような機械では、CPUは「先読み」を行い、現在の命令が処理されている間に次の命令を取得し始めます。このアセンブリライン方式では、各命令は完了するのに長い時間がかかりますが、実行が完了すると次の命令がすぐ後ろにあり、その実行に必要なほとんどのステップがすでに完了しています。

ベクタープロセッサはこの技術を使用し、さらに一つのトリックを使用します。データレイアウトが既知の形式であるため、メモリに順次配置された数字のセットにより、パイプラインは取得の性能を向上させるために調整できます。ベクター命令を受信すると、特別なハードウェアが配列のメモリアクセスを設定し、データをできるだけ早くプロセッサに詰め込みます。

CDCのアプローチは、STARで知られるメモリ-メモリアーキテクチャを使用しました。これは、機械がデータを収集する方法を指します。パイプラインを設定してメモリから直接読み書きできるようにしました。これにより、STARはレジスタの長さに制限されないベクターを使用できるようになり、非常に柔軟性がありました。残念ながら、メモリが遅いため、十分な命令をフライト中に保持するためにパイプラインが非常に長くなる必要がありました。これは、機械がベクターを処理することから非ベクターオペランドに対する操作に切り替えるときに高いコストを引き起こしました。さらに、機械の低いスカラー性能は、切り替えが行われた後、機械がスカラー命令を実行しているときに性能が非常に低下することを意味しました。結果として、実際の性能は失望を招き、これはおそらくアムダールの法則によって予測できたでしょう。

クレイはSTARの失敗を研究し、そこから学びました。彼は、迅速なベクタ処理に加えて、彼の設計には優れた全体的なスカラー性能が必要であると決定しました。そうすれば、機械がモードを切り替えたときでも、優れた性能を提供できるからです。さらに、彼は作業負荷がほとんどのケースでレジスタを使用することで劇的に改善できることに気づきました。

以前の機械がほとんどの操作が多くのデータポイントに適用されるという事実を無視したように、STARも同じデータポイントが繰り返し操作されるという事実を無視しました。STARはメモリを5回読み取り、処理してデータセットに対して5つのベクター操作を適用しましたが、CPUのレジスタにデータを一度読み込み、その後5つの操作を適用する方がはるかに速いでしょう。しかし、このアプローチには限界がありました。レジスタは回路の観点から非常に高価であったため、提供できる数が制限されていました。これは、クレイの設計がベクターサイズの柔軟性を制限することを意味しました。クレイ-1は、複数回読み取る代わりに、ベクターの一部だけを読み取る必要がありましたが、その後はメモリに結果を戻す前にそのデータに対して複数の操作を実行できました。典型的な作業負荷を考慮すると、大量の順次メモリアクセスをセグメントに分割することによる小さなコストは、十分に支払う価値があるとクレイは感じました。

典型的なベクター操作は、小さなデータセットをベクターレジスタにロードし、その後複数の操作を実行することを含みます。新しい設計のベクターシステムは独自のパイプラインを持っていました。たとえば、乗算および加算ユニットは別々のハードウェアとして実装されており、一つの結果を次に内部パイプラインで渡すことができ、命令デコードは機械のメインパイプラインで既に処理されていました。クレイはこの概念をチェイニングと呼び、プログラマーが複数の命令を「チェイン」してより高い性能を引き出すことを可能にしました。

1978年、アーゴン国立研究所のチームは、クレイ-1でさまざまな典型的な作業負荷をテストしました。彼らはIBM 370/195を置き換えるためにクレイ-1を購入する提案の一環としてテストを実施しました。彼らはまた、CDC STAR-100およびバーロウズ科学コンピュータでテストする予定でしたが、そのようなテストが実施されたかどうかは発表されていません。テストはコロラド州ボルダーにある国家大気研究センター(NCAR)でクレイ-1で実施されました。当時利用可能な唯一の他のクレイはロスアラモスにありましたが、この機械にアクセスするにはQクリアランスが必要でした。

テストは2つの方法で報告されました。最初は、プログラムをエラーなしで実行するために必要な最小限の変換でしたが、クレイのベクタ化を活用しようとはしませんでした。2番目は、コードに対する適度な更新セットを含み、しばしばループを展開してベクタ化できるようにしました。一般的に、最小限の変換は370と同じ速度で実行され、約2倍の性能を示しましたが、ベクタ化は2.5倍から10倍のさらなる性能向上をもたらしました。ある例のプログラムでは、内部高速フーリエ変換を実行し、性能がIBMの47ミリ秒から3ミリ秒に向上しました。

新しい機械は、クレイ設計の中で初めて集積回路(IC)を使用しました。1960年代からICは利用可能でしたが、高速アプリケーションに必要な性能に達したのは1970年代初頭でした。クレイ-1は4種類の異なるICタイプのみを使用し、ECLデュアル5-4 NORゲート(1つの5入力および1つの4入力、各々差動出力)、アドレスファンアウトに使用される遅いMECL 10K 5-4 NORゲート、レジスタに使用される16×4ビット高速(6ns)静的RAM(SRAM)、および主メモリに使用される1,024×1ビット48ns SRAMです。これらの集積回路はフェアチャイルドセミコンダクターとモトローラから供給されました。クレイ-1は約200,000のゲートを含んでいました。

ICは最大144のICが搭載された大型5層プリント回路基板に取り付けられました。基板は冷却のために背中合わせに取り付けられ、24の28インチ高(710mm)のラックに72のダブルボードが配置されました。典型的なモジュール(独立した処理ユニット)は1または2枚の基板を必要としました。全体の機械は113種類の1,662モジュールで構成されていました。

モジュール間の各ケーブルはツイストペアで、信号が正確な時間に到着するように特定の長さに切断され、電気反射を最小限に抑えました。ECL回路によって生成された各信号は差動ペアであり、信号がバランスを保っていました。これにより、電源供給装置への需要がより一定になり、スイッチングノイズが減少しました。電源供給装置への負荷が非常にバランスが取れていたため、クレイは電源供給装置が非調整式であると自慢しました。全体のコンピュータシステムは、電源供給装置にとって単純な抵抗器のように見えました。

高性能ECL回路はかなりの熱を生成し、クレイの設計者たちは冷却システムの設計に他の機械設計と同じくらいの努力を注ぎました。この場合、各回路基板は、背中合わせに配置された2番目の基板とペアになり、その間に銅のシートが置かれました。銅のシートは熱をケージの端に伝え、ステンレス鋼のパイプ内を流れる液体フロンがそれを冷却ユニットに引き寄せました。最初のクレイ-1は冷却システムの問題により6か月遅れました。通常、フロンと混合される潤滑剤がシールを通じて漏れ、最終的に基板に油をコーティングして短絡を引き起こしました。新しい溶接技術がチューブを適切に密封するために使用されました。

機械の最大速度を引き出すために、全体のシャーシは大きなC字型に曲げられました。システムの速度依存部分はシャーシの「内側の端」に配置され、配線の長さが短くなりました。これにより、サイクル時間を12.5ns(80MHz)に減少させることができ、8600の8nsには及びませんでしたが、CDC 7600やSTARを上回るのに十分でした。NCARはシステムの全体的なスループットがCDC 7600の4.5倍であると推定しました。

クレイ-1は64ビットシステムとして構築され、7600/6600は60ビット機械でした。アドレッシングは24ビットで、最大1,048,576の64ビットワード(1メガワード)の主メモリを持ち、各ワードには8ビットのパリティビットがあり、合計72ビットになります。メモリは50nsのサイクル時間を持つ16のインターリーブされたメモリバンクに分散され、サイクルごとに最大4ワードを読み取ることができました。小さな構成では0.25または0.5メガワードの主メモリを持つことができました。最大集約メモリ帯域幅は638Mbit/sでした。

主レジスタセットは8つの64ビットスカラー(S)レジスタと8つの24ビットアドレス(A)レジスタで構成されていました。これらは、機能ユニットからは見えないSおよびAの一時保存用の64のレジスタセットによってサポートされていました。ベクターシステムは、さらに8つの64要素64ビットベクター(V)レジスタと、ベクター長(VL)およびベクターマスク(VM)を追加しました。最後に、システムには64ビットのリアルタイムクロックレジスタと、各々64の16ビット命令を保持する4つの64ビット命令バッファが含まれていました。ハードウェアは、ベクターレジスタがサイクルごとに1ワード供給されるように設定されており、アドレスおよびスカラーのレジスタは2サイクルを必要としました。対照的に、全体の16ワード命令バッファは4サイクルで満たされることができました。

クレイ-1は12のパイプライン機能ユニットを持っていました。24ビットアドレス算術は加算ユニットと乗算ユニットで行われました。システムのスカラー部分は、加算ユニット、論理ユニット、人口カウント、先行ゼロカウントユニット、シフトユニットで構成されていました。ベクター部分は加算、論理およびシフトユニットで構成されていました。浮動小数点機能ユニットはスカラーおよびベクター部分間で共有され、これらは加算、乗算および逆数近似ユニットで構成されていました。

システムは限られた並列性を持っていました。サイクルごとに1つの命令を発行できるため、理論的な性能は80 MIPSでしたが、ベクターフローティングポイントの乗算と加算が並列で発生するため、理論的な性能は160 MFLOPSでした。(逆数近似ユニットも並列で動作できましたが、真の浮動小数点結果を提供せず、完全な除算を達成するには2つの追加の乗算が必要でした。)

機械は大規模なデータセットを処理するように設計されていたため、設計はI/Oにかなりの回路を割り当てました。CDCの以前のクレイ設計では、このタスクのために専用のコンピュータが含まれていましたが、もはや必要ありませんでした。代わりに、クレイ-1はそれぞれ4サイクルごとに主メモリにアクセスできる6チャネルコントローラを4つ含んでいました。チャネルは16ビット幅で、3つの制御ビットと4つのエラー訂正ビットを含んでおり、最大転送速度は100nsごとに1ワード、つまり全体の機械で毎秒500,000ワードでした。

初期モデルであるクレイ-1Aは、フロン冷却システムを含めて10,500ポンド(4,800kg)の重さがありました。100万ワードの主メモリを構成した機械とその電源は約115kWの電力を消費し、冷却とストレージはこの数値を2倍以上に超えた可能性があります。データジェネラルスーパー・ノバS/200ミニコンピュータは、メンテナンス制御ユニット(MCU)として使用され、システムのブート時にクレイオペレーティングシステムをシステムに供給し、使用中にCPUを監視し、オプションでフロントエンドコンピュータとして使用されました。ほとんどのクレイ-1Aは、後続のデータジェネラルエクリプスをMCUとして使用して提供されました。

クレイ-1Aの信頼性は、今日の基準では非常に低かったです。ヨーロッパ中期気象予報センターでは、1979年にハードウェア故障の平均間隔が96時間であると報告されました。シーモア・クレイは、速度のために信頼性を犠牲にする設計決定を意図的に行いましたが、この問題について質問された後、彼の後の設計で改善されました。同様に、クレイオペレーティングシステム(COS)は非常に基本的で、初期にはほとんどテストされず、毎週または毎日更新されていました。

クレイ-1Sは1979年に発表された改良版のクレイ-1で、1、2、または4百万ワードのより大きな主メモリをサポートしました。より大きな主メモリは、25nsのアクセス時間を持つ4,096 x 1ビットバイポーラRAM ICを使用することで可能になりました。データジェネラルミニコンピュータは、オプションで80 MIPSで動作する社内の16ビット設計に置き換えられました。I/Oサブシステムは主機械から分離され、主システムに6 Mbit/sの制御チャネルと100 Mbit/sの高速データチャネルを介して接続されました。この分離により、1Sは数フィート離れた2つの「半クレイ」のように見え、必要に応じてI/Oシステムを拡張できるようになりました。システムは、I/OがないS/500から0.5百万ワードのメモリを持つS/4400まで、さまざまな構成で購入できました。

クレイ-1Mは1982年に発表され、クレイ-1Sを置き換えました。1Mは、より速い12nsのサイクル時間を持ち、主メモリにより安価なMOS RAMを使用しました。1Mは、8つのバンクに1百万ワードを持つM/1200、2百万ワードを持つM/2200、および4百万ワードを持つM/4200の3つのバージョンで提供されました。これらの機械にはそれぞれ2、3、または4つのI/Oプロセッサが含まれ、システムにはオプションの第2高速データチャネルが追加されました。ユーザーは、8百万から32百万ワードのMOS RAMを持つソリッドステートストレージデバイスを追加することができました。

1978年、クレイ-1のための最初の標準ソフトウェアパッケージがリリースされ、3つの主要製品で構成されていました:クレイオペレーティングシステム(COS)(後の機械はクレイのUNIXバージョンであるUNICOSを実行します)、クレイアセンブリ言語(CAL)、自動的にベクタ化される最初のフォートランコンパイラであるクレイフォートラン(CFT)。アメリカ合衆国エネルギー省は、ローレンス・リバーモア国立研究所、ロスアラモス科学研究所、サンディア国立研究所、および高エネルギー物理学のための国家科学財団スーパーコンピュータセンターから資金を提供しました。LLLのクレイタイムシェアリングシステム(CTSS)は、動的メモリフォートランで書かれ、CDC 7600で実行され、クレイ-1に対するベクタ化が追加されるとCVC(発音:「シビック」)と名付けられました。クレイリサーチはこれらのサイトを適切にサポートしようとしました。これらのソフトウェアの選択は、後の「クレイエット」として知られるミニスーパーコンピュータに影響を与えました。

NCARは独自のオペレーティングシステム(NCAROS)を持っています。国家安全保障局は独自のオペレーティングシステム(フォークロア)と、クレイパスカルおよびC、フォートラン90のポートを持つ言語を開発しました。ライブラリは、クレイリサーチの独自の提供とネットリブから始まりました。他のオペレーティングシステムも存在しましたが、ほとんどの言語はフォートランまたはフォートランベースでした。ベル研究所は、ポータビリティの概念と回路設計の証明として、最初のCコンパイラをクレイ-1に移動しました(非ベクタ化)。この行為は、後にクレイ-2のUNIXポートに対するCRIの6か月の先行を提供し、ETAシステムの損害を引き起こし、ルーカスフィルムの最初のコンピュータ生成テスト映画「アンドレとウォリーBの冒険」を可能にしました。

アプリケーションソフトウェアは、一般的に分類されたもの(例:核コード、暗号解析コード)または独占的なもの(例:石油貯蔵モデル)に分かれます。これは、顧客と大学の顧客間でソフトウェアがほとんど共有されなかったためです。気候学的および気象プログラムは数少ない例外でしたが、NSFが日本の第5世代コンピュータシステムプロジェクトに対応してスーパーコンピュータセンターを設立するまで、ほとんどコードが共有されることはありませんでした。その時でさえ、共有されたコードはほとんどありませんでした。

クレイは宣伝に興味があったため、クレイブリッツの開発を支援し、1983年と1986年の世界コンピュータチェス選手権で優勝し、1983年と1984年の北米コンピュータチェス選手権でも優勝しました。1970年代に支配的だったプログラム「チェス」は、コントロールデータコーポレーションのスーパーコンピュータで実行されていました。

이 블로그의 인기 게시물

콜러서스 컴퓨터 [Colossus computer | December 1943]

NTDS [Naval Tactical Data System | 1961]

에니악 [ENIAC | December 10, 1945]