世界のスーパーコンピュータとそれを動かす人々


提 供

7月 21, 2014

HPCの歩み50年(第2回)-1964年(b)-

小柳 義夫 (高度情報科学技術研究機構)

前回は、この年CDC 6600が登場し、HPC元年となったことを述べた。この年にはさらに色々なことが起っている。

IBM System/360の登場

この年で忘れてはならないのが、IBMがSystem/360を発表したことである(4/7)。5月から出荷開始。IBMはパンチカードシステムの商売を19世紀末から行っており、当初「電子」計算機についてはそれほど積極的ではなかったと言われる。1948年には真空管式のコントロールパネルでプログラム可能なIBM 604 Electronic Computing Punchを発売している。Thomas J. Watsonが1943年に言ったとされる「世界中には恐らく5台分のコンピュータ市場しかない」という言葉は伝説のようであるが、IBMは最初コンピュータビジネスにちょっと出遅れた感がある。実際、1950年頃、商用コンピュータのビジネスをまず始めたのは、ENIACの流れを継ぐEckert-Mauchly Computer社を1950年に買収したRemington Rand社で、1951年にUNIVAC Iの1号機を米国国勢調査局に納入した。IBMが最初の商用計算機IBM 701を発売したのは1952年4月であった。

これを一気に挽回しようとしたのが、System/360の導入である。それまで事務処理用と科学技術計算用に分かれていたコンピュータを統合し、全方位の用途を包括するところから360と名付けられた。また、小型から大型まで互換性を持った種々の機種(ファミリー)を用意した。いわゆるメインフレーム(mainframe汎用コンピュータ)の始まりである。System/360は、当時まだ不安定であったチップ上の集積回路 (monolithic IC)は採用しなかったが、Solid Logic Technologyと言う一種の独自のハイブリッド集積回路を用いている。京セラがIBM社からIC用セラミックパーツの大量受注を得たという話を聞いて、System/360用かと思ったが、注文を受けたのは1966年なので、ちょっと後のことのようである。IBMに続き、アメリカや日本の多くのコンピュータベンダがメインフレームを開発した。各社のメインフレームは、スーパーコンピュータが出るまで、多くの科学技術計算にも使われた。

しかし科学技術計算の観点からは、System/360はいくつかの欠陥を持っていた。一つは16を基数とする浮動小数表現(IBM表現)である。符号1ビット、指数7ビット、仮数24ビット(倍精度では56ビット)という内部表現は、演算ハードウェアを簡単にするためと思われる。しかし、16を基数とする表現は、仮数の先頭3ビットが0となることがあり、その場合精度が十進で1桁近く落ちてしまう。これは単精度の場合に大問題であった。倍精度にすればよいが、当時はメモリも高価であり、倍精度演算は単精度の何倍もの時間が掛かった。

現在多く使われているIEEE754では2を基数とする表現を用いており、仮数部はIBM表現より1ビット短いが、丸めはRN (round to the nearest、つまり四捨五入というか0捨1入)である。また、正規化数では仮数の最上位ビットは必ず1で表現する必要がない。そのため単精度の場合、計算機イプシロンは、εM=2-24であるが、IBM表現ではεM=2-21であった。8倍も悪い。
もう一つの問題は、演算後の丸めがRZ (round to zero、つまり絶対値の切り捨て)だったことである。これもハードをけちったのではないかと思われる。これで演算結果の精度がさらに半分になった。数値解析学の一つの課題は丸め誤差の伝播をどう防ぐかということであるが、IBM表現はその重荷を増加していた。
さらに問題があるとすれば、アドレス空間を24ビット(16 MB)しか取っていなかったことである。これは同情すべきかも知れない。当時、主記憶は磁気コアメモリであり、16 MB(1億ビット強)は恐らくほとんど無限大に見えたであろう。

掲載後平木敬氏に指摘されたことであるが、System/360が浮動小数レジスタ(64ビット)を4個しか持っていなかった点も大きな問題であった。時代とともにメモリ階層が増加し、(演算時間に比べて)データを読み込む時間が増大する傾向がある。浮動小数レジスタが多数あれば、データを先読みしておくことによりメモリアクセス・レイテンシを隠蔽することができるし、時間的局所性がある演算はメモリにアクセスすることなく実行できる。京コンピュータがコア当たり256個もの浮動小数レジスタを持っているのはそのためである。System/360の命令形式では浮動小数レジスタ番号のために4ビット確保してあるが、(0, 2, 4, 6)の値しか許さない。当初はハードウェア的に制限されていたのであろうが、IBMが、ESA/390アーキテクチャ(1990年)でも浮動小数レジスタの数を4個のままにしているのは注目に値する。互換性のためか、浮動小数演算を重視していなかったのか?

この弱点を解決するためIBMのR.M. TomasuloはIBM 360/91 (1967)の浮動小数ユニットに、後にTomasuloのアルゴリズムと呼ばれる制御方式を導入し、(浮動小数)レジスタ・リネーミングによりout-of-order実行を可能にした。このアルゴリズムはその後のout-of-order実行の基礎となり、この業績によりR. M. Tomasuloは1997年のEckert-Mauchly Awardを受賞した。

ILLIAC IVの契約

ILLIAC4

ILLIAC IV

SIMDコンピュータであるSolomonプロジェクト(Westinghouse社、1962年中止)は実現しなかったが、開発者の一人Daniel Slotnickはイリノイ大学に移った。1964年、イリノイ大学はDARPA (Defense Advanced Research Projects Agency)と契約を結び、ILLIAC IVの開発を始めた。Burroughs社(1886年創業)とTexas Instruments社(1930年創業)も開発に加わった。ただし、この開発プロジェクトは難航し、稼動し始めたのは1970年代になってからである。ILLIAC IVが成功であったか失敗であったか種々の議論があるが、少なくとも多くの人材を育てたことは間違いない。日本では、村岡洋一氏や三浦謙一氏などである。

その他の動き

オーストラリア国立大学のGregory V. Wilson は1993年に作った並列処理の年表の1964年の欄に「Atomic Energy Commission urges manufacturers to look at “radical” machine structures. This leads to CDC Star-100, TI ASC, and ILLIAC-IV.」と書いている。残念ながら確認は得られていない。Wilsonが現在公表している年表
http://webdocs.cs.ualberta.ca/~paullu/C681/parallel.timeline.html
にははっきり書かれていない。Atomic Energy Commission(原子力委員会)は、現在のエネルギー省である。いずれにせよこの頃からHPCの推進に積極的だったことは確かである。
あと、1964年、米国のダートマス大学において、BASIC言語が開発された。

日本の動き

1) 日立

1964年9月、日立はトランジスタ方式、磁気コアメモリ使用のHITAC 5020を完成した。このコンピュータの1号機は翌年4月に京都大学(どの部局か不明)に納入され、続いて電電公社に、そして東京大学大型計算機センターに2台納入された。東大の1台は1966年10月、より高速化した5020Eに更新された。後に筆者の愛用したコンピュータである。

2) 東芝

東芝(1984年以前は東京芝浦電機株式会社)は、TOSBAC 3400を京大と共同開発するとともに、アメリカのGE社と技術援助契約を結んだ。

3) 松下

松下電器産業は、オランダのフィリップス社と提携し大型コンピュータ事業に進出する計画を進めていたが、松下幸之助会長は1964年10月、進出計画の中止を決断した。

また、背景はよく分からないが、電子計算機技術研究組合は、FONTECという磁気コアメモリ、1語42ビット、二進法のマシンを日本電子工業振興会の納入した(11月)。

(画像出典:Computer History Museum)

left-arrow 50history-bottom right-arrow