Web教材一覧ハードウェアとソフトウェア

複数台数と処理速度

キーワード

高速化率、アムダールの法則


マルチプロセッサによる並列処理で得られる高速化率(単一プロセッサのときと比べた倍率)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台で処理するときの時間Kは、
   K=K[(1-p)+(p/N)]
となる。そして、
   E=K/K
なので、上の公式が得られる。

もし、すべて並列処理できるならば、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倍の性能しか得られないのです。