1台のCPUの性能を1とするとき、そのCPUをn台用いたマルチプロセッサの性能Pが、
P=1+(n−1)an
で表されるとする。ここで、aはオーバヘッドを表す定数である。例えば、a=0.1, n=4とすると、P≒3なので、4台のCPUから成るマルチプロセッサの性能は約3になる。この式で表されるマルチプロセッサの性能には上限があり、nを幾ら大きくしてもPはある値以上には大きくならない。a=0.1の場合、Pの上限は幾らか
解説
マルチプロセッサの性能上限計算問題【午前2 解説】
要点まとめ
- 結論:オーバヘッド定数a=0.1のとき、性能Pの上限は10である。
- 根拠:性能P=1+(n−1)anのn→∞の極限を計算すると、P→a1となるため。
- 差がつくポイント:極限の考え方を理解し、分母の増加による性能の頭打ちを正しく把握できるかが鍵。
正解の理由
性能PはCPU台数nに依存し、オーバヘッドaがあるため無限に性能が上がるわけではありません。
式を変形すると、
P=1+(n−1)an=1+an−an=an+(1−a)n
nが非常に大きくなると、anが支配的になるため、
n→∞limP=n→∞liman+(1−a)n=a1
よってa=0.1ならば、性能の上限は1/0.1=10となり、選択肢の中ではイが正解です。
よくある誤解
性能はCPU台数に比例して無限に増えると誤解しがちですが、オーバヘッドの影響で必ず上限があります。
また、オーバヘッドaの意味を理解せずに単純計算するミスも多いです。
解法ステップ
- 性能の式を確認する:P=1+(n−1)an
- nを大きくしたときの極限を考える。
- 分母を展開し、nに関する項を整理する。
- n→∞の極限を計算し、P→a1を導く。
- a=0.1を代入し、性能上限10を求める。
- 選択肢から該当する値を選ぶ。
選択肢別の誤答解説
- ア: 5
1/a=10なので、5は性能上限として小さすぎる。計算の極限を誤った可能性がある。
- イ: 10
正解。1/a=10で性能上限を正しく求めている。
- ウ: 15
a=0.1から導かれる上限ではなく、誤った計算や誤認識による。
- エ: 20
a=0.1の逆数は10なので、20は明らかに大きすぎる。
補足コラム
この式は「Amdahlの法則」に類似しており、並列処理の性能向上には限界があることを示しています。
オーバヘッドaは通信や同期の遅延を表し、これが大きいほど性能の頭打ちが早くなります。
並列化の効果を正しく評価するために、こうした理論的な上限を理解することが重要です。
FAQ
Q: なぜ性能の上限は1/aになるのですか?
A: nが非常に大きくなると、分母の(n−1)aの項が支配的になり、Pはann=a1に近づくためです。
Q: オーバヘッドaが0の場合はどうなりますか?
A: a=0ならばオーバヘッドがなく、性能は理論上nに比例して無限に増加します。
関連キーワード: マルチプロセッサ性能, オーバヘッド, Amdahlの法則, 並列処理, 性能上限