2015年11月15日の日記です


追悼:ジーン・アムダール  2015-11-15 18:32:22  コンピュータ 今日は何の日

アムダール氏が11月10日に亡くなられていたらしい。


IBM System/360 の設計主任を務めた方。


IBM の機械は、科学計算用、事務処理用、などとラインナップが分かれていた。

これは当時のコンピューターとしてはごく自然なこと。


科学計算用なら速度が重視されるし、事務処理用なら正確さが重視された。


今でもコンピューターの計算は正確だ、と思っている人がいるけど、正確なんかじゃない。

科学計算なら、宇宙を表現するような大きな数値も扱えないといけない。その一方で、科学の世界には「有効桁数」という概念があり、ある程度の桁数が保証できれば、計算が正確である必要はない。


#むしろ、話は「正確とは何か」という哲学的領域になる。

 機械的にただ計算をすることを正確だとは、決して言わない。


正確さは不要で、速度だけが重視されるので、コンピューターが得意な2進数で計算を行う。



その一方で、事務処理用では国家予算を扱えるほどの大きな値も、1セント単位の細かな値も、どちらも正確に扱える必要がある。


話が複雑化するので詳細は省くが、コンピューターは「1セント」を正確に表現できない。

小数点以下を表現する「2進数」は、小数点以下を表現する「10進数」に正確に変換できないためだ。


#1セントは、0.01ドル。


そのため、事務処理機では、コンピューターが苦手な10進数で計算を行うように作ってある。

コンピューターは2進数で計算している、と現代では言われるが、そうではない時代もあったのだ。


とはいえ、コンピューターの苦手な方法で計算をしているので、当然速度は遅い。

でも、事務処理用では、小数点以下の10進数も正確に計算できることのほうが大切だった。




System/360 (1964) は、こうした「専用機」ではなく、汎用の計算機を目指して設計された。

浮動小数点演算も、BCD 演算も両方とも使えるように設計されていた。


それまでのコンピューターは、1バイトが 6bit のものも多かった。英語の文章を記述するには、これで十分だからだ。


しかし、System/360 は1バイトを 8bit とした。

System/360 自体は 32bit を1ワードとして動作し、最大4ワード(128bit)までを一度に計算できた。



System/360 は大ヒットし、それ以降のコンピューターを規定してしまった。

今の PC も、浮動小数点と BCD の演算を両方とも行えるように設計され、8bit を1バイトとしているものが多い。


その意味では、アムダール氏の考案したコンピューターの子孫だ。




どんな世界でも、新しい世界を切り拓くのには予想外の困難が待ち受ける。


この時代、まだコンピューターはハードウェアを直接プログラムして計算を行うものだった。

でも、「なんにでも使える」 System/360 は、非常に幅広い要求にこたえるため、システムを扱いやすくするためのソフトウェアを必要とした。


後の世にいう「OS」、オペレーティング・システムの誕生だ。


アムダール氏とは直接関係ないが、System/360 用の OS である、OS/360 の開発は困難を極めた。

これまでは、コンピューターとはハードウェアを作るものであり、ソフトはおまけのようなもの、簡単に作れるものだと考えられていた。


OS/360 の開発は従来考えられていたものよりも、はるかに困難だった。

ここで初めて、コンピューターにとって一番重要なものは、ハードウェアではなくソフトウェアだ、という認識が生まれる。


OS/360 の開発困難は、後に原因などが整理され、書籍「人月の神話」として刊行される。


これ、今でも役立つ話が多い。

プログラマ向けの話ではなくて、プロジェクトマネージャー向けの話だし、もっと言えばコンピューター業界に限らず、あらゆるプロジェクトにおいて参考になる。


一言でいえば、「知的生産活動は、工場で製品を作るような人月計算で見積もれるものではない」ということを解説している。


なんだ、そんなことわかっているよ、経験しているよ、という人も多いかもしれないけど、当時も「なんとなく肌で感じていた」という人が多くても、理論だってなぜそうなるのかを解説している本はなかった。

いや、今でも少ない。


そして、この本では「じゃぁ、どうやって見積もればよいか」ということもちゃんと解説している。

プロジェクトが見積もり通りに進まずにデスマーチ進行になった、という経験を持っている人は、この本を読むべきだ。


ちなみに、デスマーチプロジェクトから「自分の身を守る」方法を知りたい人は、「デスマーチ」も併せて読むこと。

「デスマーチ」は人月の神話を読んでいることを前提に書かれているのだけど、もう一歩話を踏み込んで、失敗しそうなプロジェクトを立て直す方法と、「巻き込まれて自分がひどい目に合わないように」するための方法を書いている。




さて、話を戻す。

アムダール氏は、System/360 を設計した後にさらに良いコンピューターの提言を IBM に対して行ったのだけど、この提案は却下された。


当時の IBM は、コンピューターを作りたかったわけではない。

IBM はビジネスに役立つサービスを提供する会社で、コンピューターはそのための道具に過ぎなかった。


この考え方は、非常に大切だ。今だって重要だと思うけど、多くのコンピューター会社はコンピューターそのものを目的としている。

それで何をするか、というのはユーザーの責任で、コンピューター会社は知ったこっちゃない。


ともかく、IBM では、コンピューターは道具に過ぎなかった。

コンピューターが安定していることを重視したし、そのためには新製品を矢継ぎ早に出す必要はなかった。



アムダールは IBM をやめ、アムダール社を作る(1970)。

そして、System/360 互換でもっと良いコンピューターを作り始める。互換機ビジネスだ。


そのころ、日本では国策として IBM 互換機を作ろうとしていた。

正確にいえば、コンピューターを作る技術を持った会社6社を、政府主導で3グループに分け、どのようなコンピューターを作るか政府が決めた。


1グループは、独自アーキテクチャのもの。

1グループは、IBM 互換機。

1グループは、IBM に対抗しうる会社の互換機。



IBM 互換機グループは、富士通と日立が割り振られた。

互換機とはいえ、IBM の回路を真似してしまうと IBM との訴訟になる可能性がある。


同じソフトが動くようにしつつ、独自設計をする必要があった。




富士通は、アムダール社と提携する。

アムダール氏は System/360 を設計し、回路が何を目的としているか熟知していた。


そこで、アムダール社では、IBM の回路とは違う形で、全く同じ目的を実現するように設計を行っていた。

そのアムダール社と提携するのであれば、IBM との訴訟問題はおこらない。


後にアムダール社は富士通の子会社になるが、そのずっと前に、アムダールは自ら興した会社を去っている。




アムダール氏は、「アムダールの法則」の提唱者としても知られている(1967年提唱)。


プロセッサの数を2倍に増やしても、性能は2倍にはならない、とする法則。

今なら誰もが当たり前に知っているが、昔は計算装置が増えれば、増えた分だけ性能は増加する、と考えられていた。


これを、論理的に「そうじゃない」と示したのがアムダールの功績。

一時期は過大に評価され、マルチプロセッサ化は全く無駄だ、という主張も聞かれていた。


後にジャック・デニスが超並列を研究し、マルチプロセッサ環境で速度を上げるための方法論を示している(1990年代)。


これを受け、最近ではマルチプロセッサが流行している。

もちろんアムダールの法則は今でも有効だが、性能を上げるための方法論がかなり進み、十分マルチプロセッサを有効活用できるようにはなったようだ。




なんかとりとめのない話になった。

アムダール氏は、名前は知っていても、それほど詳しいわけではないし、どうしても話が散漫としてしまう。


コンピューター業界にとって重要人物の一人ではあった、と認識している。


氏のご冥福をお祈りいたします。




同じテーマの日記(最近の一覧)

コンピュータ

今日は何の日

関連ページ

デイビッド・パターソン 誕生日(1947)【日記 15/11/16】

別年同日の日記

01年 11/14

12年 再度JAMSTECグッズ

13年 Intel 4004 の発売日(1971)

16年 新しい文盲


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

1000

-- follow --




- Reverse Link -