アムダールの法則

マルチプロセッサによる並列処理において,1 プロセッサのときに対する性能向上比はアムダールの法則 (Amdal’s Law) で説明することができる。

性能向上比 = 1 / {(1 - 並列化可能部の割合) + 並列化可能部の割合 / プロセッサ数}

並列化可能部の割合(高速化部分率)が 0.5 の場合,プロセッサ数をいくら増やしても性能向上比が 2 を超えることはない。

これは,アムダールの法則の本質である「性能向上には限界がある」ことを示している。

オーバヘッドの割合

問題によっては,並列化可能部の割合(高速化部分率)ではなく,オーバーヘッドの割合(1 – 高速化部分率)で与えられることがある。

例題 マルチプロセッサの性能

1 台の CPU の性能を 1 とするとき,その CPU を n 台用いたマルチプロセッサの性能 P が,

P = n / (1 + (n - 1) * a)

で表されるとする。ここで,a はオーバヘッドを表す定数である。例えば,a = 0.1,n = 4 とすると,P ≠ 3 なので,4 台の CPU から成るマルチプロセッサの性能は約 3 になる。この式で表されるマルチプロセッサの性能には限界があり,n を幾ら大きくしても P はある値以上にならない。a = 0.1 の場合,P の上限は幾らか。

解答と解説

与えられた数式の n を無限大に接近させる極限値を計算すると,次式となる。

P = 1 / a

よって,a = 0.1 の場合,n を幾ら大きくしても P は 10 以上にならない。

a = 0.1,0.2,0.4 の場合,CPU の台数 n とマルチプロセッサの性能 P との関係を下図に示す。

  • a = 0.1 の場合,n を幾ら大きくしても P は 10 以上にならない。
  • a = 0.2 の場合,n を幾ら大きくしても P は 5 以上にならない。
  • a = 0.4 の場合,n を幾ら大きくしても P は 2.5 以上にならない。
図 CPU の台数 n とマルチプロセッサの性能 P との関係

更新履歴

  • 2023年4月7日 新規作成
  • 2023年9月8日 フォーカスキーフレーズ,メタディスクリプションを追加

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です