Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Web Analytics
Cookie Policy Terms and Conditions Cray-1 - Wikipedia

Cray-1

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Cray-1(くれいわん)は、シーモア・クレイ率いるクレイ・リサーチ社が設計したスーパーコンピュータである。最初の Cray-1 システムはロスアラモス国立研究所1976年に納入された。Cray-1 は史上最も有名で、最も成功を収めたスーパーコンピュータである。

目次

[編集] 歴史

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

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

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

クレイ氏とその設計チームはCDCを辞め、CDCの研究所のすぐ近くに新たな会社を設立した。CDCの援助がなければ、新たなスーパーコンピュータを作り上げるのは不可能と思われた。資金のない小さな会社に何ができるだろう? しかし、ウォール街に行ってみると多くの投資家がクレイ氏への出資に意欲を見せた。彼らに必要なのはデザインだけであった。

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

Cray-1 の後継機は1982年Cray X-MP で、800MFLOPS の性能である。これはクレイ社の最初のマルチプロセッサ機である。1985年、後継機として革新的なCray-2が登場した。ピーク性能は 1.9GFLOPSであったが、商業的にはあまり成功しなかった。というのは、実際のアプリケーションを動作させたときに安定した高性能を発揮できなかったからである。そのため、Cray-1 や Cray X-MP を基にして拡張した Cray Y-MP1988年 に投入されることになった。

[編集] 背景

典型的な科学技術計算は大きなデータセットを読み込み、何らかの変換を加え、書き戻すというものである。通常、変換はデータセット内のデータそれぞれに等しく適用される。例えば、百万個の数値それぞれに 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でも無自覚に同じ手法でベクトル演算を繰り返しメモリにアクセスするように実装してしまった。しかし、まとめてデータをレジスタに読み込んで、まとめて結果を書き込めば性能はさらに向上する。レジスタは回路としてはコストが高いため、無制限に実装することはできない。結果としてクレイ氏の設計ではベクトルの大きさが制限されてしまった。STAR ではどんなサイズのベクトルでもよいがメモリアクセスは何度も発生するのに対して、クレイ氏の設計したマシンではデータの一部だけを読み込む。しかし、一度に複数の処理を実行できるのである。一般的な負荷を考えるとメモリアクセスを何回かに分けたとしても性能向上が期待できるとクレイ氏は考えた。

一般的なベクトル処理は小さなデータセットをベクターレジスタに読み込んで、それに対していくつかの演算を行うが、この新しいベクトルシステムは独立したパイプラインを持つよう設計された。そして、乗算ユニットと加算ユニットは別々のハードウェアとして実装されたので、内部でふたつの演算をつないで、例えば加算結果を次の乗算で使用することをパイプライン上でできた。これをクレイ氏は chaining と呼び、これによってプログラマはいくつかの命令をつないで高性能を引き出すことができたのである。

[編集] 詳細

Cray-1 はクレイ氏にとって初めて集積回路(IC)を使ったマシンである。ICは1960年代から実用化されていたが、1970年代に入ってから高速性を要求される用途にも使えるものになったのである。Cray-1で使用されたICは非常に単純であり、4つのトランジスタから成る「論理ゲート」が 4個集積されていた。Cray-1は全体で 20万ゲートで構成された。

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

設計の初期段階で発見された問題は、処理速度が基板上の信号速度限界(パルスが立ち上がる速度)に極めて近いことであった。これは信号が目的のICに到達したときにパルスが下がる時間になってしまう可能性があることを意味していたが、これを検出するのは困難だった。この問題は信号線にディレイを加えることで解決された。その方法としては、信号路に金属箔を隣接されて置いて電荷を蓄えさせるか、ICを追加して信号を中継させるのである。概算によれば、40%の論理ゲートにディレイが追加された。(訳注:電気信号にも速度がある。Cray-1 の命令サイクルは 12.5nsであり、1サイクルで電気信号が進む距離は3.75mである。個々の演算ユニットはもっと短い時間で動作するため、そのパルスはもっと短時間で変化し、基板上であってもパルスの到達距離が問題となるのである。)

いつものようにクレイ氏はサイクル時間を短くして性能を向上させるために、電気的・機械的設計に多くの時間を費やした。モジュール間の配線は高電圧回路を使用して雑音の影響を受けないようにして、受信側が高速に受け取れるようにした。モジュール間のケーブルはツイストペアケーブルとし、長さも緻密に計算してパルスの反射が起きないようにした。増幅器は均衡を保つようになっていて、ツイストペアの一方が高電圧ならもう一方は低電圧となっている。したがって電力は一定であり、スイッチングノイズを防いでいた。

高電圧であるために全体として発熱が非常に大きかった。クレイの設計者は多くの時間を冷却システムに費やした。このために2枚の基板の間に銅板を挟んで背中合わせにした。銅板は熱をケースの端へ送り出すので、そこに液体フレオンの通るパイプを設置して熱を交換し、筐体下部の冷却装置でフレオンを冷却した。最初のCray-1の完成が六ヶ月遅れたのは、この冷却機構に問題が生じたためである。コンプレッサのためにフレオンに混ぜられていた潤滑剤が漏れて、回路がショートしてしまったのである。パイプの溶接に新たな技術を導入して漏れを防いだのである。

配線の長さを少しでも短くするため、筐体は "C" のような形に配置された。速度に影響するものはその形の内側の端に置かれ、配線の長さを少しでも短くした。これによりサイクル時間は 12.5ns(80MHz)まで短縮された。彼があきらめた 8600 の 8ns よりも長いが、CDC 7600 や STAR よりずっと高速である。NCAR はシステムのスループット計測結果を概算で CDC 7600 の 4.5倍とした。

Cray-1 は 64ビットシステムであり、7600/6600 の 60ビットとは異なる(8600 でも同様の変更がなされる予定だった)。アドレスは 24ビットであり、最大で 1Mワード(8Mバイト)の主記憶を扱える。メモリは 16バンクに分割され、それぞれ 50ns のサイクル時間であり、1サイクルで4ワードを読み込むことができる。

メインレジスタセットは 8本の 64ビット・スカラー(S)レジスタと 8本の 24ビット・アドレス(A)レジスタから構成される。これらレジスタを一時退避するそれぞれ64本のレジスタ(T および B と呼ばれた)があり、こちらは演算ユニットからは見えない。ベクトル機構には別に 64本の 64ビット・ベクター(V)レジスタとベクター長(VL)レジスタ、ベクターマスク(VM)レジスタがある。そして、64ビットクロックと4本の64ビット命令バッファがあり、各命令バッファには16ビットの命令が4つ格納される。ハードウェアは1サイクル毎に1ワード分のベクター命令を命令バッファからベクトル機構に送り込むことができる。一方、アドレスおよびスカラーレジスタには1サイクル毎に2ワード分の命令を実行できる。

システムは12個の機能ユニットがあるが、並列性には制限がある。1サイクルに1命令がユニットにフェッチされるが、実行は並行して行われ、1サイクルに2個の命令が完了する。理論上の性能は 160MIPS(80MHz×2命令)だが、制限により実際の性能は 136 MFLOPSである。しかし、ベクター命令を注意深く使用して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であった。冷却システムと外部記憶装置を入れるとその倍の電力消費となる。操作用のフロントエンドとしてデータゼネラル社のSuperNova S/200が使われた。これは後にEclipseに置き換えられた。

次のモデル Cray-1S は、クロック周波数が若干上がって 12.0ns となり、メインメモリは 100万/200万/400万ワードである。データゼネラルのマシンは独自の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-1S の次には Cray-1Mが登場した。"M"は低価格なMOSベースのRAMをI/Oシステムに使用していることを表す。1Mは3つのバージョンがあり、メインメモリの容量だけで分けられている。M/1200 は 1Mワード(8バンク)、M/2200 は 2Mワード(16バンク)、M/4200 は 4Mワード(16バンク)である。いずれもI/Oプロセッサは2~4台であり、高速データチャネルがもうひとつ追加された。ユーザはMOSベースのRAMを 8~32Mワード分追加してRAMディスクとして使用することができた。

[編集] ソフトウェア

1978年、Cray-1 リリース時の最初のソフトウェアは以下の3製品から構成されていた。

[編集] 外部リンク

Wikimedia Commons
ウィキメディア・コモンズに、Cray-1に関連するカテゴリがあります。
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu