TL;DR

システムの一部を最適化して得られる全体の性能向上は、改善した部分が実際に使われる時間の割合によって制限される、という法則。1967 年に Gene Amdahl が提唱した。

仕組み

言い換えると、プロセッサを増やしても逐次処理の部分は速くならないので、プログラムの中で逐次処理の部分が多いほど、並列化するメリットは小さくなる。

改善が効く部分が実行時間に占める割合を 、その部分の速度向上率を とすると、全体の速度向上率 は次の式で表される。

をいくら大きくしても、 は を超えない。

例

処理の 95% を並列化できるとき、プロセッサをいくら増やしても、速度向上は最大で 倍にとどまる。

注意点

この法則は、後にグスタフソンの法則によって再評価され、欠点を修正された。

関連

出典