高速化率、アムダールの法則
マルチプロセッサによる並列処理で得られる高速化率(単一プロセッサのときと比べた倍率)Eは,次式によって求められます(証明)。この式をアムダールの法則といいます。
1
E=────────
1-p+(p/n)
n:プロセッサの台数(1≦n)
p:対象となる処理のうち,並列化が可能な部分の割合(0≦p≦1)
●証明
1台のCPUで処理するときの所要時間をKとし、並列処理できる部分の確率をpとすれば、
Kp は、N台で並行処理できるのだから、Kp/Nになるが、
K(1-p) は、並行処理できないので、同じ時間が必要。
それで、N台で処理するときの時間KNは、
KN=K[(1-p)+(p/N)]
となる。そして、
E=K/KN
なので、上の公式が得られる。
もし、すべて並列処理できるならば、r=1なのでE=nになります。並列処理がほとんどできないならば、p=0なので、E=1(1台のときと同じ)になります。
例えば、3台のCPUが並列にあり、並列化可能な部分の割合が0.9だとすれば、
1 1
E=─────────── = ──── =2.5
1-0.9+(0.9/3) 0.4
となります。
すなわち、3台設置したのに、実際には2.5倍の性能しか得られないのです。