アムダールの法則

Amdahl’s Law

仕事で「アムダールの法則」を学んだ。と言っても、この法則に基づいて計算ができるようになったわけではない。理解するのにすごく時間がかかったので、書き残しておこう。またいつかどこかで役に立つ日が来るかもしれないから。

要はこんな感じ。

カレーを作るとき、まずは材料を切る。じゃがいも、人参、玉ねぎ、肉、などを切る。考えただけでも面倒くさいし、腱鞘炎になりそう。でも、この下ごしらえは、複数の人と分担すれば時間を短縮できる。1)じゃがいも、2)人参、3)玉ねぎ、4)肉、5)カレールー、で5人いれば、一人だと30分かかる作業が短縮できるのではないか。並列処理による高速化が図れそうだ。

「30分を5人で割るから、6分だろ?」

いやいや、6分ではない。包丁が2本しかなかったりすると、そう単純にはいかない。しかも、2本しかない包丁を奪い合い、喧嘩が始まると、余計な時間がかかる。5人でおしゃべりに花を咲かせて、手がおろそかになる可能性もある。ここはやはりプロジェクトマネージャーもいたほうがいいかもしれない。面倒くさい話になってきたが、それでも、一人で全部やるよりは、時間が短縮できて、疲れなさそうだ。

材料を切り終わったら、今度は、その材料を鍋に入れてぐつぐつ煮る。ところがこの煮作業は、並列処理ができない。5人で1つの鍋を一緒に煮ても時間は短縮できないどころか、バカバカしい。1人いれば十分だ。レシピに「30分コトコト煮る」と書いてあれば30分ばっちりかかる。この作業では、並列処理による高速化はできない。圧力鍋を買えば高速化はできるが、ここではあくまでも「並列処理」の話。

で、結局、カレーを作る作業は、並列処理で一体どれくらい高速化できるのか? その計算をするときに、「アムダールの法則」を使う。

ここまでわかりましたか?

このカレーの例を夫婦の家事分担に置き換えてみよう。たとえば、夫が「俺さ、今日カレー作ってやるからさ、材料切っておいてよ!」と妻に連絡してきたとしよう。

妻はそのメッセージを見て、ブチ切れる。理由はおわかりですね? 夫が「アムダールの法則」をまったく考えていないからです。

あるいは洗濯。夫が「俺さ、今日洗濯してやったんだぜ」と洗濯機の「洗う」ボタンを押したことを自慢している。しかし賢明な妻は知っている。洗濯物を干す、畳む作業は、並列処理による高速化が可能な作業であることを。なのに夫はそこまで頭が回らず、妻の不気味な沈黙を勘違いし、「もっと感謝してほしいなぁ。冷たいなぁ」とのたまう。

賢明な妻は、「そうね、ありがとう。助かった」とまず言ってから、夫にこう言うのです。

「ねぇ、アムダールの法則って知ってる? 明日からはこの法則に基づいて家事を分担しましょう」

でもアムダールの法則のウィキページに行っても、書いてあることが難しすぎる。そこでいいですか? このブログを夫に見せてあげてくださいね。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s