アムダールの法則
マルチプロセッサによる並列処理において,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 以上にならない。
更新履歴
- 2023年4月7日 新規作成
- 2023年9月8日 フォーカスキーフレーズ,メタディスクリプションを追加