平成 30 年度 秋期 システムアーキテクト試験 午前Ⅱ 問題 問19

1台のCPUの性能を1とするとき, そのCPUをnn台用いたマルチプロセッサの性能PPが,

P=n1+(n−1)aP = \frac{n}{1 + (n - 1)a}

で表されるとする。ここで, aaはオーバヘッドを表す定数である。例えば, a=0.1a = 0.1, n=4n = 4とすると, P≒3P \fallingdotseq 3なので, 4台のCPUから成るマルチプロセッサの性能は約3になる。この式で表されるマルチプロセッサの性能には上限があり, nnを幾ら大きくしてもPPはある値以上には大きくならない。a=0.1a = 0.1の場合, PPの上限は幾らか。

解答・解説

正解: イ. 10

正解は イ です。

解法のポイント

マルチプロセッサの性能 PP を表す式において、CPUの台数 nn を限りなく大きくしたとき(n→∞n \to \infty)の極限値を求めることで、性能 PP の上限を計算できます。

  1. 与えられた式の変形
    問題文で与えられた性能 PP の式は以下の通りです。
    P=n1+(n−1)aP = \frac{n}{1 + (n - 1)a}
    分母を展開して nn について整理します。
    P=n(1−a)+naP = \frac{n}{(1 - a) + na}
    分子と分母の両方を nn で割ると、次のようになります。
    P=11−an+aP = \frac{1}{\frac{1 - a}{n} + a}

  2. nn を限りなく大きくしたときの上限の計算
    a=0.1a = 0.1 を代入すると、式は以下のようになります。
    P=10.9n+0.1P = \frac{1}{\frac{0.9}{n} + 0.1}
    ここで、nn を限りなく大きくすると、0.9n\frac{0.9}{n} は 00 に近づきます(lim⁡n→∞0.9n=0\lim_{n \to \infty} \frac{0.9}{n} = 0)。
    したがって、性能 PP の上限は次の値に収束します。
    P=10+0.1=10.1=10P = \frac{1}{0 + 0.1} = \frac{1}{0.1} = 10

(別解として、n=10000n = 10000 などの十分に大きな値を実際に代入してみることでも、PP が 1010 に近づくことを確認できます。)

各選択肢の解説

  • ア(5): 誤りです。上限が 55 になるのは、オーバヘッドを表す定数が a=0.2a = 0.2(10.2=5\frac{1}{0.2} = 5)の場合です。
  • イ(10): 正解です。a=0.1a = 0.1 のとき、nn をどれだけ大きくしても性能 PP は 1a=10.1=10\frac{1}{a} = \frac{1}{0.1} = 10 を超えることはありません。
  • ウ(15): 誤りです。a=0.1a = 0.1 の場合、性能 PP の上限は 1010 となるため、1515 には達しません。
  • エ(20): 誤りです。上限が 2020 になるのは、オーバヘッドを表す定数が a=0.05a = 0.05(10.05=20\frac{1}{0.05} = 20)の場合です。

Spineチーム