マルチコア わかりやすく
厨房がいくつもあれば、交代ではなく、同じ瞬間に本当に一緒に働けます。今回は本当の同時を見ます。
厨房が一つではなかったら
これまで厨房は一つでした。一人の働き手が、この仕事を少し、あの仕事を少しと、すばやく交代でこなしていました。
でも、厨房が二つ、三つあったらどうでしょう。働き手もその分いて、それぞれ自分の厨房で同時に料理します。交代ではなく、同じ瞬間に本当に何人もが働いているのです。
コンピュータのこの「いくつもの厨房」をコアと呼びます。コアがいくつもあれば、いくつもの仕事を同じ瞬間に本当に一緒に処理できます。
最近のスマートフォンやノートパソコンに4コア、8コアと書いてあるのも、厨房がいくつあるかを数えたものです。
厨房が一つなら交代、いくつもあれば同じ瞬間に本当の同時。
コアがいくつもあれば、いくつもの仕事を同じ瞬間に本当に一緒に処理できます。
本当に一緒か、速い交代か
前に、一人の働き手がすばやく交代すれば同時にしているように見えると話しました。それは錯覚でした。実際には、一瞬には一つのことしかしていなかったのです。
厨房がいくつもあれば違います。同じ一瞬をのぞいても、この厨房でもあの厨房でも、本当に同時に仕事が進んでいます。
だから差が生まれます。錯覚の同時は速く見えるだけですが、本当の同時は同じ時間に実際にもっと多くの仕事を終えます。
一つの厨房をどれだけすばやく交代させても、終える総量は増えず分け合うだけですが、厨房が増えれば、処理できる総量そのものが大きくなります。
一つの厨房のすばやい交代は錯覚、いくつもの厨房は本当の同時です。
一つのコアの交代は同時に見えるだけで、いくつものコアは本当に一緒に進みます。
厨房を増やしてみる
終えなければならない仕事が山ほどたまっています。厨房の数を自分で変えてみましょう。
厨房が一つなら、仕事を一つずつ順番に処理します。厨房を増やすと、いくつもの仕事が同時に処理されて、同じ量を早く終えます。
厨房が二つならおよそ半分の時間、四つならもっと短くなります。増やしながら、たまった仕事がどれくらい速く減るかを見てみましょう。
だから写真を何枚も一度に変換したり動画を作ったりする重い仕事も、小分けにしていくつもの厨房に配れば、ずっと早く終わります。
厨房の数を変えると、同じ仕事がどれくらい早く終わるかがわかります。
厨房が多いほど同じ仕事を早く終えますが、やがて限界にもぶつかります。
二倍でも二倍速くはならない
厨房を二倍にすれば、二倍速くなりそうです。でも、いつもそうとは限りません。
分けられない仕事もあります。パン生地がふくらむのを待つあいだは、厨房が十あっても速くなりません。また、働き手たちが同じ材料一つを同時に使おうとすれば、おたがいに待たなければなりません。
だから厨房を増やすと、はじめはぐんぐん速くなりますが、あるところからは増やした分ほど速くならなくなります。分けられる仕事に限りがあるからです。
結局、どれだけ厨房を増やしても、最後まで分けられないその部分が、全体の速さの天井を決めてしまいます。
分けられない仕事とおたがいの待ちのせいで、コアを増やしても限界があります。
コアを増やせば速くなりますが、分けられない仕事があるので、限りなく速くはなりません。
一枚にまとめる
覚えておくことは三つだけです。
一つ目、コアがいくつもあれば、本当に同時に働きます。一人の働き手がすばやく交代する錯覚ではなく、いくつもの厨房で同じ瞬間に一緒にです。
二つ目、だから同じ仕事を早く終えます。仕事を分けて、いくつもの厨房に任せるからです。三つ目、それでも限界があります。分けられない仕事とおたがいの待ちのせいで、コアを二倍にしてもちょうど二倍速くはなりません。
結局、どれだけ速くなるかは、厨房の数よりも、その仕事をどれだけ細かく分けられるかで決まります。
いくつものコアは本当の同時、だから速い、ただし限界あり。