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


3月 8, 2021

新HPCの歩み(第34回)-1964年(c)-

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

第1次人工知能ブームに水を差すように、Hubert DreyfusはRand研究所に報告書『錬金術と人工知能』を提出する。CDC社は最初のスーパーコンピュータと言われるCDC 6600を登場させ、IBM社はSystem/360の発表により汎用コンピュータの概念を変革した。

アメリカ政府関係の動き

1) ILLIAC IVの契約
Westinghouse社で進められていたSIMDコンピュータであるSOLOMON (Simultaneous Operation Linked Ordinal Modular Network)プロジェクトは1962年頃資金が停止した。開発責任者のDaniel Slotnickは当時スーパーコンピュータのメッカであるLivermoreにアプローチしたところ、非常に興味を示し、PEが浮動小数演算をサポートするよう勧めた。しかしLivermoreは、開発資金は出せないが、完成したらリースするという(虫のいい)契約を提示した。Westinghouse社は「あまりに危険」とこれを断った。ベンチャーキャピタルを探したがうまくいかなかった。

Slotnickはイリノイ大学Urbana-Champeign校に移り、ILLIAC (Illinois Automatic Computer design)チームに加わった。1964年、イリノイ大学はDARPA (Defense Advanced Research Projects Agency)と契約を結び、ILLIAC IVの開発を始めた。Burroughs社(1886年創業)とTexas Instruments社(1930年創業)も開発に加わった。ただし、この開発プロジェクトは難航した。技術面だけではなく、1970年になるとベトナム戦争反対運動がさらに盛り上がり、国防省の研究費の入っていたILLIAC IVも学生運動のターゲットとなった。そのため、Illinois大学内ではなく、NASAの研究所に設置されることになった。10年後、1974年にカリフォルニア州Moffett FieldのInstitute for Advanced Computationにおいて稼働した。1982年に稼働を終了した。ILLIAC IVの歴史については、マイナビニュースのHisa Ando氏の記事に詳しい。

ILLIAC IVが成功であったか失敗であったか種々の議論がある。『コンピュータの構成と設計』(J.L. Hennessy and D.A. Patterson)は最も不名誉なスーパーコンピュータと評しているが、その技術的影響は非常に大きい。また多くの人材を育てたことも間違いない。日本では、村岡洋一や三浦謙一などである。アメリカでもDavid KuckやLeslie Lamportなどが有名である。三浦謙一は、当HPCwire Japanの【わがスパコン人生】(2018年8月)で、「ILLIAC IVには、電電公社通信研究所から来ていた研究者の他にも日立、NEC、東芝、三菱、沖電気から企業派遣の留学生も来ていました。」と述べている。

2) 米国原子力委員会
オーストラリア国立大学の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が現在公表している年表にははっきり書かれていない。Atomic Energy Commission(原子力委員会)は、現在のエネルギー省である。いずれにせよこの頃からHPCの推進に積極的だったことは確かである。

ソヴィエト連邦の動き

 
 

国立モスクワ大学のBESM-4

出典:Moscow State University

   

1) BESM-3MとBESM-4
BESM-1とBESM-2は真空管式であったが、トランジスタ式コンピュータBESM-3MおよびBESM-4は1964年に発売された。アーキテクチャはM-20(1958)やM-220(1968)と類似しており、1語45ビットである。写真は国立モスクワ大学に1966年設置されたBESM-4である。

世界の学界の動き

1) Multics
タイムシェアリングOSの走りであるMulticsの開発は、MITを中心として、AT&T Bell LaboratoriesとGeneral Electric社の共同研究として1964年に始まった。GE社は、Multicsを効率よく動作させるため、GE-635のCPUにページングやセグメンテーションなどいくつか機能を追加しGE-645を開発した。これはCPUに複数のセキュリティ階層を持ち、仮想記憶のための命令群を備えている。

Bell Laboratoriesは1969年にプロジェクトから撤退し、係わっていた人の一部がUnix OSの開発に移行した。1970年、Honeywell社はGEのコンピュータ部門を買い取り、約80カ所の大学や研究所や政府機関でMulticsシステムが稼働した。GEのGECOS、HoneywellのGCOS、日本電気のACOSはMulticsの影響を受けている。

2) ドレイファスの人工知能批判
当時MITにいたHubert L. Dreyfusは、1964年にシンクタンクRand研究所に提出した報告書“Alchemy and Artificial Intelligence”(錬金術と人工知能)において、人工知能を批判した。「知能とは形式的規則に従って象徴を操作することだ」というAllen NewellやHerbert Simonの前提は誤っており、人工知能研究は失敗を運命づけられていると主張した。人工知能研究者からは多くの反論が出された。

3) 液体アルゴンのシミュレーション
1964年、ANL (Argonne National Laboratory, USA)においては、インド生まれのAneesur Rahman (1927-1987)が、レナード-ジョーンズ・ポテンシャルで相互作用する864個のアルゴン原子の系の分子動力学シミュレーションを、CDC 3600コンピュータを用いて行った。当時の計算能力を考えると、現実的なポテンシャルを用いて、液体物理の長時間シミュレーションを行ったことは驚異に値する。

国際会議

1) ISSCC 1964
11回目となるISSCC 1964 (1964 IEEE International Solid-State Circuits Conference)は、1964年2月19日~21日に、Pennsylvania大学Irvine AuditoriumとUniversity Museum、およびPhiladelphia Sheratonホテルを会場に開催された。主催はIEEE Professional Technical Group on Circuit Theory、IEEE Philadelphia Sections、IEEE Electronic Circuits and Systems Committee、University of Pennsylvaniaである。組織委員長はEdward O. Johnson (RCA)、プログラム委員長はG. Herzog (RCA Labs)である。電子版の会議録はIEEE Xploreに置かれている。当時、コンピュータのメモリの主力はまだ磁気コアであった。

アメリカの企業

1) CDC社(CDC 6600の登場)
CDC社 (Control Data Corporation)(1957年創業)は、1964年9月、初の科学技術用スーパーコンピュータともいうべきCDC 6600 の1号機をLLNLに出荷した。発表は1963年8月。その後、LANL、Courant Institute、CERN、LRLなどにも設置された。総出荷台数は100を超える。

Seymourは、本格的な科学技術用高速コンピュータを目指してCDC 6600を完成させた。ICではなく40万個のトランジスタを使用した。メモリは磁気コア。CDC 3600は1語48ビットであったが、CDC 6600はなんと60ビットのマシンであった。今なら64ビットとするところであろうが、当時は1文字が6ビットであったことから6の倍数が好まれたようである。100台以上販売された。筆者は使ったことがないが、CRC総研など日本にも何台か輸入された。10個の並列動作する機能ユニットを持ち、その中には浮動小数加算器(400 ns) 1台や、浮動小数乗算器(1000 ns) 2台が含まれている。Daxpyのように加算と乗算が同数とすると、1μsに加算と乗算が2回ずつ実行できるので、理論性能としては4 MFlopsと言っていいであろう。当時の文献によると、実効性能は0.5~1 MFlops程度であった。6600はまだパイプライン方式になっていない。パイプラインはCDC 7600からである。

当時、BNL (Brookhaven National Laboratory, USA) にいた筆者の先輩の日本人実験物理学者(故人)の話によると、CDC 6600がBNLに設置されたときまだまともなコンパイラが付属していなかったそうである。ところが研究所では自作のFORTRANコンパイラが曲がりなりにも動いており、「DO文の端末はCONTINUEに限る、しかも多重ループの場合には共有してはならない」などの制限があったがとにかく使用可能であった。CDC社は早速これをもらい受け、対価としてもう1台CDC 6600を置いていったとか。この話がどこまで正確かは知らないが、ベンダが提供してくれるまで待とう、などと考えずに自分で作ってしまうのがいかにも物理屋である。

2) IBM社(System/360の登場)
1964年でもうひとつ忘れてはならないことは、アメリカ時間4月7日にIBMがSystem/360を発表したことである。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月であった。

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

初期の計画では、小型機から大型機まで全機種に共通の単一OSを用いることになっていたが、開発は困難を極め、当初中小型機用にはDOS/360という違うOSが提供されたとのことである。共通のOSは1964年12月に発表され、1966年6月に実装された。これにより、シリーズ全機種の共通のOSを整備するという製品思想が打ち立てられた。S/360では文字(英数字)を8ビットで表現したが、その後世界の標準となった。これ以降はbyteが8ビットを意味するように統一された。

各社のメインフレームは、スーパーコンピュータが出るまで、多くの科学技術計算にも使われた。しかし科学技術計算の観点からは、System/360はいくつかの欠陥を持っていた。

a) 浮動小数表現
一つは16を基数とする浮動小数表現(IBM表現)を導入したことである。符号1ビット、指数7ビット、仮数24ビット(倍精度では56ビット)という内部表現は、加減算での仮数部シフトなど演算ハードウェアを簡単にするためと思われる。しかし、16を基数とする表現は、指数部のビット幅を小さくできる反面、仮数の先頭3ビットが0となることがあり、その場合精度が十進で1桁近く落ちてしまう。これは単精度の場合に大問題であった。倍精度にすればよいが、当時はメモリも高価であり、倍精度演算は単精度の何倍もの時間が掛かった。

b) 演算後の丸め
もう一つの問題は、演算後の丸めがRZ (round to zero、つまり絶対値の切り捨て)だったことである。これもハードをけちったのではないかと思われる。これで演算結果の精度がさらに半分になった。数値解析学の一つの課題は丸め誤差の伝播をどう防ぐかということであるが、IBM表現はその重荷を増加していた。

現在多く使われているIEEE754では2を基数とする表現を用いており、単精度の仮数部はIBM表現より1ビット短いが、丸めはRN (round to the nearest、つまり四捨五入というか0捨1入)である。また、正規化数では仮数の最上位ビットは必ず1で表現する必要がない。そのため単精度の場合、IEEE754の計算機イプシロンは、εM=2-24であるが、IBM表現ではεM=2-21であった。8倍も悪い。

計算機イプシロンεM

 浮動小数体系で表現可能な範囲にある任意の実数 x の浮動小数表現を fl(x) としたとき

   fl(x) = x (1+δ)  |δ|≦εM

 が成立する最小のεM のことをいう。つまり相対誤差の上限。

 

c) アドレス空間
さらに問題があるとすれば、アドレス空間を24ビット(16 MB)しか取っていなかったことである。これは同情すべきかも知れない。当時、主記憶は磁気コアメモリであり、16 MB(1億ビット強)は恐らくほとんど無限大に見えたであろう。

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

この弱点を解決するためIBMのR.M. TomasuloはIBM 360/91 (1967)の浮動小数ユニットに、後にTomasuloのアルゴリズムと呼ばれる制御方式を導入し、(浮動小数)レジスタ・リネーミングによりout-of-order実行を可能にした。このアルゴリズムはその後のout-of-order実行の基礎となり、R. M. Tomasuloは1997年のEckert-Mauchly Awardを受賞した。Model 91はCDC 6600に対抗して1964年に発表されたが、NASAで1号機が実際に稼働したのは1968年になってからである。

3) IBM Compatible Machines
IBM System/360の成功により、1970年代に入って多くのIBM Compatible Machinesが登場した。System/360対応のものと、System/370対応のものとがある。今後たくさん登場するが、ここで一覧としておこう。聞いたこともない会社・マシンもある。

会社名

マシン名

発表・発売

RCA社

Spectra-70

1964年11月

Sperry

UNIVAC 9200/9300/9400など

(RCAを吸収)

Amdahl社

Amdahl 470V/6

1975年6月

CDC社

Omega/480

1977年

Magnuson Computer Systems

Magnuson M80

1970年代後半

Trilogy Systems社

成功せず

 

Itel社

AS-4/5/6/6000/7000/9000など

 

富士通(Amdahl、Siemensなどにも提供)

FACOM Mシリーズ

1974年11月

日立製作所(Itel、BASF、Olivettiなどにも提供)

HITAC Mシリーズ(の修正版)

1974年11月

 

4) Sperry Rand社
1964年、同社は好評だったUNIVAC 1107を改良したUNIVAC 1108を発表した。同社最初のマルチプロセッサ機で、3台のCPUと2台のIOCを構成することができる。マルチプロセッサ向けにアトミック命令のTest-and-setなどが付加されている。

ヨーロッパの企業の動き

1) Bull社
1964年4月、GE社はフランスのGroupe Bullの株式51%を買収して、Bull-GEとした。

2) Siemens社
Siemens社はコンピュータ分野での技術的な遅れを取り戻すために1964年にRCA社と提携を決めた。しかし、RCA社は1971年にコンピュータ事業から撤退した。

企業の終焉

1) Olivetti社
1960年、創業者の長男が亡くなると、経営不振に陥り、イタリア財界が救済再建に乗り出した。その一環として、Olivetti社の大型コンピュータ部門は、1964年にGEにより買収された。

次は1965年である。日本学術会議は、全国8カ所に大型計算機を設置し、ネットワークで接続することを勧告した。

 

left-arrow   new50history-bottom   right-arrow