メインコンテンツへ
コンピュータ構成要素コンピュータシステム

アムダールの法則において、プログラムの80%を並列化できる部分とし、残り20%は逐次処理のままとする。プロセッサを4台使用した場合の理論上の高速化率として正しいものはどれか。

ア.2.0倍
イ.1.5倍
ウ.3.0倍
エ.2.5倍正解

解説

アムダールの法則は「並列化できない部分がボトルネック」という冷酷な真実。いくらCPUを増やしても、逐次部分の20%が邪魔をして無限には速くならない——並列化の夢に水を差す法則。

なぜ エ が正解か

エが正解。アムダールの法則:S = 1 / ((1-p) + p/n)。p=並列化率=0.8、n=プロセッサ数=4。S = 1 / (0.2 + 0.8/4) = 1 / (0.2 + 0.2) = 1 / 0.4 = 2.5倍。検証:元の実行時間を1とすると、逐次部分=0.2、並列部分=0.8。並列化後:0.2 + 0.8/4 = 0.2+0.2 = 0.4。高速化率=1/0.4=2.5倍✓。

なぜ ア は間違いか

2.0倍。並列化率を0.8ではなく0.6として計算した場合:1/(0.4+0.6/4)=1/0.55≈1.8≒2.0。条件の読み違い。

なぜ イ は間違いか

1.5倍。並列部分の比率pと逐次部分(1-p)を逆に適用した場合:1/(0.8+0.2/4)=1/(0.8+0.05)=1/0.85≈1.18。1.5倍はどの正しい計算にも一致しない誤答。

なぜ ウ は間違いか

3.0倍。プロセッサを無限大(n→∞)に増やしたとき1/(1-0.8)=1/0.2=5倍が上限で、n=4では3.0倍は過大。逐次部分を無視した楽観的誤り。

出典: AI生成問題(学習用)