「アムダールの法則」何となく聞いたことある方もいるかもしれませんが、コンピュータの性能に関する法則です。
それほど、難しい法則ではないので、今回はこのアムダールの法則を解説します!
アムダールの法則とは?
コンピュータ・アーキテクトであるアメリカの「ジーン・アムダール」さんが主張した法則です。(アムダールさんはIBM社で活躍したようですね)
コンピュータにおいて、プロセッサ(CPU含めた処理装置)の数を増やすと、普通はその分システム全体が高速化になると思いますよね。
例えば、プロセッサが二つあれば、処理速度も2倍になる。
これが違うのです!
実際は、各プロセッサの処理の依存関係だったり、メモリ(主記憶)へのアクセスが競合したりと、同時に実行できる処理には限りが出てきます。
そこで、複数のプロセッサを用いた場合に、どれだけコンピュータを高速化できるかという理論上の限界値を求めるための法則がアムダールの法則です。
- E : 速度向上率
- r : 並列処理の高速化の割合
- n : プロセッサの数
アムダールの法
$$E = \frac{1}{1 - r + (r/n)}$$
グラフで表すと以下のようになりますね。
これを見ると、どんなにプロセッサの数を増やしても、速度の向上には限界があることが分かると思います。
アムダールの法則を使った例
では、アムダールの法則を使って、速度向上率を計算してみましょう!
例として、並列処理によって50%の高速化ができるコンピュータにおいて、4台のプロセッサを使用してみます。
この時の速度向上率は以下のような計算になります。
アムダールの法則の例
$$E=\frac{1}{1 - 0.5 + (0.5/4)} =\frac{1}{0.625}=1.6$$
プロセッサを4倍にしても、実際4倍の速度にはならないことが分かりますね。
また、上記のグラフからも分かるように、並列処理の割合が上がれば、それだけ高速化が実現できますが、それでも限界はありますね。
まとめ
今回はコンピュータの高速化の法則であるアムダールの法則に関して解説しました。
アムダールの法則まとめ
- CPUの高速化の値を求める計算式
- プロセッサをいくら増やしてもCPUの高速化には限界がある
プロセッサをいくら増やしても、高速化には限界がありますが、計算処理を早くすることは、様々な場面において有効なので、可能であればプロセッサを増やして、高速化を実現するのが良いですね。
その際に増やし過ぎてもコストが掛かるので、ちょうど良い数にするため「アムダールの法則」を活用しましょう。
以上です!