HPCの進展は10倍から始まる
Bill Sembrat

私は、様々な役割と立場で長年Seymour Crayと極めて密接に働けたことは幸運だった。私は、Control Data社でSeymourのマシンとSeymourと仕事を始めた。私は、Sid Fernbachが「リーダー」で、その後DOE担当のアカウントマネージャーだった時にローレンスリバモア国立研究所担当のアカウントマネージャーだった。その当時、私にとっては当たり前だったが、私は世界をリードする設計者と世界をリードするユーザの間で「大学院」にいたようなものだ。私は、時々のその非常に特別な組み合わせの状況を考え、それが全て当たり前と捉え、極めて特別な状況との認識が無く、さらにすべてのハイテク企業やユーザーが働いていた状況だったことと思っていた。Seymourが亡くなる前は、私もまたCray Computer社とその後のSRC Computersで彼と一緒に働いていた。Seymourが亡くなった後、私はSRC Computersを去った。
今、過去のことを反映して、そして未来に向けて、性能向上とどのように幾つかの重要な性能向上を得て来たのかについて考えてみよう。妥当な出発の目標は、少なくとも、普通に10倍を得るための道筋で10倍の性能向上を期待することである。
問題や課題を検討する。それは電力、熱およびその他の考慮事項のため、より多くのラックを追加するのは難しく、我々は他の分野をみなくてはならない。もし我々が、最も基本的な部分へ目を移し、10倍高速に切り替えるトランジスタを得ることができるのであれば、それはいいことだろう。より高速な電子伝導もいいだろう。さしあたり、放熱性と伝送遅延を無視してダイヤルを上げ、そこに到達することができるのであれば、それは簡単だろう。これがトランジスタの高速化に費やされている多大な労力がある理由である。では、ガリウム砒素トランジスタに変更することを検討してみよう。Seymourは、速度と省電力要件と幾らかの他のことを含む多くの他の特性のためにシリコンからガリウム砒素へ変更したが、それでも、我々はまだガリウム砒素の限界に直面するだろう。世界中の研究室の多くは、シリコンゲルマニウム複合体を含む高速なトランジスタに取り組んでおり、より高速なデバイスのための幾らかの希望がある。私が理解したように、これらの改善は、2〜4倍程度であるが、それでも2倍は素晴らしいことだ。さて、我々は限界に達している(そして幾つかの物理的な制限を回避することは出来ない)ために、このアプローチは、非常に遠回りな道を選ぶつもりはなく、そしてここで最も重要な問題が横たわっている。
速度を求めて1950年代後半のSeymourは、ゲルマニウムトランジスタからカリフォルニアの新たに創業した会社、Fairchild Semiconductorからの新しいトランジスタ「平面シリコントランジスタ」に変更した。勿論、それは「シリコンバレー」のラベルが存在する前のことである。Seymourも勿論「HPC」のラベルができる前であるが、HPCのためにシリコントランジスタを使用する最初のひとりだったのかも知れない。これは、Control Data Corp 6600のためだった。6600も実際のコードと実際の作業負荷の問題に対処する既存のコンピュータモデルを大幅に拡張した画期的なマシンだった。6600の「全体像」を見てみると、それが未来を予言する「RAM」モデルを活用していることが分かるだろう。我々は、すべて、ある程度既に6600で完全に活用されたモデルによって設定された道筋を歩いている。そのモデルは実際に変わっておらず、実際に我々は過去数十年にわたって行ってきたモデルを微調整し、そこかしこで改善し、並列処理の追加など全て技術改善の裾に乗っている。Cray 3とCray 4のため、より高速な逐次実行速度を求めて、Seymourはこの時、再びシリコンからガリウム砒素トランジスタに変更した。
我々は、技術が大きな改善を得ることを期待することは出来ず、したがって、我々はコードと作業負荷を処理する方法についての基本的なモデルの変更に対処しなければならない。プリンストンにある半導体企業の男らが、ランダムアクセスメモリ(RAM)としてCRTを使用するアイデアを思いついたとき、彼らは「ごきげんな状態」にあったと思えた。私の記憶として、各CRTは40ビットの40ワードだった。彼らは、幾台かのCRTを持っており、それはその当時地球上に存在していたランダムアクセスメモリの全てだった。彼らは窓から差し込む太陽の光が当たってCRTのビットを落とす結果になることを発見するまで、ビットを失っていた。彼らは、全ての窓を覆わなければならなかった。私は、彼らがRAMとCRT以外の選択肢として何を考え、検討していたのか知りたいが、しかし使わない。彼らは、自由思想家であり、RAMあるいはユーザーからその当時は邪魔され無かった。過去50年間に多くの根幹モデルの変更は、歴史、状況やその当時行われた妥協を理解することが重要であると考えられていた。
もし10倍の改善を得るためのプランを思い付くことができたとしても(我々が出来ると仮定した場合)、克服すべき多くの問題に行き着く。ここでは、どんな速度向上、メモリでも常に起こるように思える問題に取り組むが、しかし単に内容を移動、さらには、ワイヤを使用する場合の制限と対面しています。そして人は、常に平静を保ち、問題を伝達する必要がある。我々は、1度にいくつもの強固な技術の壁にぶつかる。だから、この技術主導の道筋は、容易で迅速に見えず、費用効果が良くないかも知れない。つまり、我々は任意の技術が向上することをまだ歓迎する(そして使おう!)。
技術の向上が、そこまで我々が取得するだけなので、私は、Seymourが突き動かされたように、根幹レベルのモデルの変更を考えることを勧める; これは10倍の大規模な改善を見る唯一の方法かもしれないし、当たり前に10倍以上への道筋となる。Seymourは常に速度を追求したし、多くはかなり異なっていただけでなく、Cray 4への後継マシンが全く異なるが、いつものように技術主導でもあることを知って多くがおそらく驚かされた。彼らは、コンピュータプログラムのシリアル構造を放棄することなく電気的な構成で追加の並列処理と技術の進歩によって可能となった機能の追加を含む、さらなる試みを続ける。Seymourは、「自由思想家」で常に考慮し、必要となる根源モデルの変更を考えていた。もし、幅広い歴史的知識と相まって詳細と全体像の両方を考慮した場合、根源レベルのモデルの変更がより簡単に考慮され、理解される。
もし、我々が白紙から始めることができれば、そこに電力を削減する大きな必要性があることを心に留めておくことは常に良いことであり、そしてその簡単な方法は、すべてを単によりシンプルにし、部品を排除または低減させることである。それは基本に立ち返り、そしてどのようにユーザーがマシンを使い、なぜ彼らが達成しようとするのか、再考する時である。言葉を変えれば、どのように実際のコードをマシンにロードするかを見るためにだけではなく、どのように彼らが何を達成しようとしているのかに立ち返るのである。その後、我々は異なる新しいより高速なモデルに取り組むために戻る必要がある。私は我々がいるコンピュータビジネスでユーザーにとって良いベンダーになっていないと実際に思う。我々は単に我々のマシンを使用するコンピュータ専門家になることをユーザーに強いている。ユーザーはそこの仕事を終わらせるために単に「ツール」を使用しており、我々が彼らにコンピュータを使うために理解することを強要すること全ての「技術」に実際は関心が無い。そして、複雑さは、様々なタイプの並列性、キャッシュレベル、スレッド、スレッドブロック等とともに増加するだけである。Seymourは、常により良いために、我々の周りの世界をよりよく理解するためにより良く、より速く、よりシンプルで、より簡単に使える「ツール」を他の人々に与えるために彼の「ギフト」を充てがうことを考えていた。
Seymourは時々、他に何かについて考え、そしてなぜ彼がそれを使用しないのか、もしくは別の方向に向わないのかについての私の継続的な質問に疲れていた。適切な状況を考えると、Seymourは愛想良く、率直だった。適切なタイミングではSeymourでさえも議論を歓迎し、私が思うに、それは彼が何を考えていたかについて話す機会を与えていた。彼は難しい質問や障害に来たとき、それは彼の発見のプロセスの一部であった。私は、何かを諦めようとし、そしてその答えを得るプロセスからもっと多くの事を学んだことを発見した。特に殆どの答えが極めてシンプルと思われる時 – それは「なぜ私はそのことを考えなかったのか?」の瞬間である。本当の疑問は答えにならないが、しかしむしろ、それがとてもシンプルなら、なぜ私はそれを考えなかったのか? それが本当にシンプルでは無かった、または正しい質問を尋ねていない事に直ぐに気付くかも知れない。答えを理解することは、根幹に戻り、そして歴史も理解することは、常により良く、それが出来ればはるかに豊かであり、そしてすべての「理由」を理解することができる。時々、我々全員は無闇にただ「答え」を探したがる。