お役立ちコラム

キニナル・コトバ 第26回「IT業界の『~の法則』」

 前回は「ピーターの法則」をご紹介しました。
「法則」という言葉は、主に物理や天文学、数学など、主に科学の世界で作られ、広められます。
 たとえば天文学の「ハッブルの法則」といえば、「遠くの銀河はすべて我々から遠ざかっており、その速度は各銀河までの距離に比例する」というものです。
 ところで、社会学や経済学、心理学の分野など、法則はそれこそ数えきれないほどあります。中にはジョークのようなものもありますが、IT業界も例外ではありません。おおむねは経験則にもとづく金言や戒めの言葉などですが、なかなか真理をついていますので、今回はそれをいくつか紹介してみましょう。

■ゴードン・ムーアの法則

 IT関連で一番有名な「法則」といえば、「ムーアの法則」でしょう。のちに世界最大のCPUメーカーとなるインテルの創始者、ゴードン・ムーアが1965年に語った、パソコンの心臓部、CPUの進化について語られた言葉で
「大規模集積回路の部品数(密度)は18か月ごとに2倍になる」です。
 この法則はムーア自身の経験によるもので、半ば予測に近いものです。その後、ムーアは1975年に「2年ごとに2倍になる」と修正しました。でも、18か月ごとに2倍になるという予測は、その後もほぼ今も続いています。
 筆者はこの言葉を1980年代に知りましたが、当時は本当にCPUのクロック数が18か月ごとに2倍になっていたので、非常に驚きました。
 ただ、むしろこの言葉は予測ではなく、開発目標としても考えられていたようです。エンジニアたちは「ムーアの法則を達成するぞ」と皆でがんばっていたのでしょうか。当時はITブームで、ムーアの予言通りに進化していくCPUに、大きな夢を感じたものでした。
 同じようなことを、当時、サン・マイクロシステムズのエンジニアだったビル・ジョイも述べています。
「プロセッサーの最大性能は1年単位で毎年倍増する」。1983年に述べられた言葉です。

■アムダールの法則

 IBM社で長く大型コンピュータ(メインフレーム)の設計に携わり、のちにコンピュータ企業、アムダール社を創設するジーン・アムダールが1967年に学会で発表した法則です。
 この法則は数式などを用いて説明されていますが、分かりやすく言うと、「たくさんのプロセッサを使って並列処理(複数の計算を同時に行うこと)を行っても、分割できない処理があるために、スピードアップは限られている」ということです。
 問題のうち、95%を並列処理できても、残りの5%が並列処理できなかったら、その5%分(ボトルネック)の計算にかかる時間は減らせないから、その計算時間より短くはできません。
 1個のプロセッサで20時間かかる問題があって並列処理できない部分(たとえばデータ入力にかかる時間)が1時間分あるとします。すると、2000個のプロセッサを使って同時に計算しても36秒(0.01時間)にはならない、1時間以上はかかるというわけです。
 この法則に対して、1988年にジョン・グスタフソンが唱えたグスタフソンの法則があります。この法則は「十分に大きな規模の問題は、効率的に並列化して解くことができる」というものです。
 なんだか訳がわかりませんね。でも簡単に説明すると、「小さなデータ、たとえば10個のデータならアムダールの法則通りだけど、データの量を増やすと、たとえば50万個にすると、ボトルネックにかかる時間は問題ないほど小さくなるから、十分に効率的にできるよ」というものです。
 ただ、このグスタフソンの法則も、データ量を大きくできない問題も多く存在する、という点で反論がなされています。 

■90対90の法則

 この法則は、ベル研究所のトム・カーギルが考えたもので、1985年にコンピュータの学会誌のコラムで発表されました。
「プログラムの開発は最初の90%のコードが開発時間の最初の90%を占め、残りの10%のコードが、他の90%の開発時間を占める。」
 なんだか実感としてよく分かる、と思う人も多いでしょう。プログラム開発に限らず、モノづくりはなんでもそうですが、最後の10%が最初の90%くらい大変なんですよね。
 これを読んで、「あれ? どこかでよく似た格言を聞いたぞ?」と思う人もいるでしょう。
 中国の古い戦術書「戦国策」に書いてあった「百里を行くものは、九十里をもって半ばとする」ですよね。
 トム・カーギルがこの言葉を知っていたのかは分からないんですが、同じような意味です。
 私もこの言葉は実感としてよく分かります。山登りは最後のひと登りになってからがきついですし、文章も最後の1割で締める時が一番苦労します。
 それくらい世界中の人々が同じ気持ちでいるんですよね。
 まあ、最後まで気を抜かずにいきましょう。