いくつもの厨房、本当の同時
厨房が何個もあれば、交代ではなく同じ瞬間に本当に一緒に働きます。
厨房が一つでなかったら
今までは厨房が一つでした。一人の働き手が、この仕事を少し、あの仕事を少しと、素早く交代でやっていました。
でも厨房が二つ、三つあったらどうでしょう。働き手もその分いて、それぞれ自分の厨房で同時に料理します。交代ではなく、同じ瞬間に本当に何人もが働くのです。
コンピュータのこの「いくつもの厨房」をコアと呼びます。コアが何個もあれば、いくつもの仕事を同じ瞬間に本当に一緒に処理できます。
厨房が一つなら交代、何個もなら同じ瞬間に本当に同時
コアが何個もあれば、いくつもの仕事を同じ瞬間に本当に一緒に処理します。
本当に一緒か、ただ素早い交代か
前に、一人の働き手が素早く交代すると同時にやっているように見えると言いました。あれは錯覚でした。実際にはある一瞬には一つだけをやっていたのです。
厨房が何個もあると違います。まったく同じ一瞬を覗いても、この厨房でもあの厨房でも、本当に同時に仕事が進んでいます。交代ではありません。
だから差が出ます。錯覚の同時は速く見えるだけで、本当の同時は同じ時間に本当にもっと多くの仕事を終えます。
一つの厨房の素早い交代は錯覚、何個もの厨房は本当の同時
一つのコアの交代は同時に見えるだけで、何個ものコアは本当に一緒に進みます。
厨房を増やしてみます
終わらせる仕事が山ほど積まれています。厨房の数を自分で変えてみてください。
厨房が一つなら、仕事を一つずつ順に処理します。厨房を増やすと、いくつもの仕事が同時に処理されて、同じ量をもっと早く終えます。
厨房が二つならだいたい半分の時間、四つならもっと短くなります。増やしてみて、積まれた仕事がどれだけ早く減るか見てください。
厨房の数を変えながら、同じ仕事がどれだけ早く終わるか見てください
厨房が多いほど同じ仕事を早く終えますが、すぐに限界にも出会います。
二倍だから二倍速い、とはいきません
厨房を二倍に増やせば二倍速くなりそうですね。でもいつもそうとは限りません。
ある仕事は分けられません。生地が膨らむのを待つ間は、厨房が十個あっても速くなりません。それに、働き手みんなが同じ一つの材料を同時に使おうとすると、互いに待たなければなりません。
だから厨房を増やしても、最初はぐんぐん速くなり、ある時点からは増やしたほど速くならなくなります。分けられる仕事は限られているからです。
分けられない仕事と互いの待ちのため、コアを増やしても限界がある
コアを増やせば速くなりますが、分けられない仕事があるので無限には速くなりません。
一枚にまとめます
三つだけ覚えれば大丈夫です。
一つ目、コアが何個もあると本当に同時に働きます。一人の働き手が素早く交代する錯覚ではなく、いくつもの厨房で同じ瞬間に一緒にです。
二つ目、だから同じ仕事を早く終えます。仕事を分けて何個もの厨房に任せるからです。三つ目、それでも限界があります。分けられない仕事と互いの待ちのため、コアを二倍にしてもちょうど二倍速くはなりません。
何個ものコアは本当の同時、だから速い、ただし限界あり