システムアーキテクト試験 2018年 午前219


1台のCPUの性能を1とするとき、そのCPUをn台用いたマルチプロセッサの性能Pが、
P=n1+n1aP = \frac{n}{1 + (n - 1) a}
で表されるとする。ここで、aはオーバヘッドを表す定数である。例えば、a=0.1, n=4とすると、P≒3なので、4台のCPUから成るマルチプロセッサの性能は約3になる。この式で表されるマルチプロセッサの性能には上限があり、nを幾ら大きくしてもPはある値以上には大きくならない。a=0.1の場合、Pの上限は幾らか
5
10(正解)
15
20

解説

マルチプロセッサの性能上限計算問題【午前2 解説】

要点まとめ

  • 結論:オーバヘッド定数a=0.1a=0.1のとき、性能PPの上限は1010である。
  • 根拠:性能P=n1+(n1)aP=\frac{n}{1+(n-1)a}nn \to \inftyの極限を計算すると、P1aP \to \frac{1}{a}となるため。
  • 差がつくポイント:極限の考え方を理解し、分母の増加による性能の頭打ちを正しく把握できるかが鍵。

正解の理由

性能PPはCPU台数nnに依存し、オーバヘッドaaがあるため無限に性能が上がるわけではありません。
式を変形すると、
P=n1+(n1)a=n1+ana=nan+(1a)P = \frac{n}{1 + (n-1)a} = \frac{n}{1 + an - a} = \frac{n}{an + (1 - a)}
nnが非常に大きくなると、ananが支配的になるため、
limnP=limnnan+(1a)=1a\lim_{n \to \infty} P = \lim_{n \to \infty} \frac{n}{an + (1 - a)} = \frac{1}{a}
よってa=0.1a=0.1ならば、性能の上限は1/0.1=101/0.1=10となり、選択肢の中ではが正解です。

よくある誤解

性能はCPU台数に比例して無限に増えると誤解しがちですが、オーバヘッドの影響で必ず上限があります。
また、オーバヘッドaaの意味を理解せずに単純計算するミスも多いです。

解法ステップ

  1. 性能の式を確認する:P=n1+(n1)aP = \frac{n}{1 + (n-1)a}
  2. nnを大きくしたときの極限を考える。
  3. 分母を展開し、nnに関する項を整理する。
  4. nn \to \inftyの極限を計算し、P1aP \to \frac{1}{a}を導く。
  5. a=0.1a=0.1を代入し、性能上限1010を求める。
  6. 選択肢から該当する値を選ぶ。

選択肢別の誤答解説

  • ア: 5
    1/a=101/a=10なので、5は性能上限として小さすぎる。計算の極限を誤った可能性がある。
  • イ: 10
    正解。1/a=101/a=10で性能上限を正しく求めている。
  • ウ: 15
    a=0.1a=0.1から導かれる上限ではなく、誤った計算や誤認識による。
  • エ: 20
    a=0.1a=0.1の逆数は10なので、20は明らかに大きすぎる。

補足コラム

この式は「Amdahlの法則」に類似しており、並列処理の性能向上には限界があることを示しています。
オーバヘッドaaは通信や同期の遅延を表し、これが大きいほど性能の頭打ちが早くなります。
並列化の効果を正しく評価するために、こうした理論的な上限を理解することが重要です。

FAQ

Q: なぜ性能の上限は1/a1/aになるのですか?
A: nnが非常に大きくなると、分母の(n1)a(n-1)aの項が支配的になり、PPnan=1a\frac{n}{an}=\frac{1}{a}に近づくためです。
Q: オーバヘッドaaが0の場合はどうなりますか?
A: a=0a=0ならばオーバヘッドがなく、性能は理論上nnに比例して無限に増加します。

関連キーワード: マルチプロセッサ性能, オーバヘッド, Amdahlの法則, 並列処理, 性能上限
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ