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

マルチプロセッサによる並列処理で得られる高速化率(単一プロセッサのときと比べた倍率)EEを,次の式によって評価する。r=0.9r = 0.9のアプリケーションの高速化率がr=0.3r = 0.3のものの3倍となるのは,プロセッサが何台のときか。

E=11−r+rnE = \frac{1}{1 - r + \frac{r}{n}}

ここで,

  • nn: プロセッサの台数(1≦n1 \leqq n)
  • rr: 対象とする処理のうち,並列化が可能な部分の割合(0≦r≦10 \leqq r \leqq 1)

とし,並列化に伴うオーバヘッドは考慮しないものとする。

解答・解説

正解: エ. 6

問題文で与えられたアムダールの法則を表す式に、それぞれの条件を代入して方程式を立てます。

高速化率 EE の式は以下の通りです。
E=11−r+rnE = \frac{1}{1 - r + \frac{r}{n}}

  1. r=0.9r = 0.9 のときの高速化率 E0.9E_{0.9}
    E0.9=11−0.9+0.9n=10.1+0.9nE_{0.9} = \frac{1}{1 - 0.9 + \frac{0.9}{n}} = \frac{1}{0.1 + \frac{0.9}{n}}

  2. r=0.3r = 0.3 のときの高速化率 E0.3E_{0.3}
    E0.3=11−0.3+0.3n=10.7+0.3nE_{0.3} = \frac{1}{1 - 0.3 + \frac{0.3}{n}} = \frac{1}{0.7 + \frac{0.3}{n}}

「r=0.9r = 0.9 のアプリケーションの高速化率が r=0.3r = 0.3 のものの3倍となる」という条件から、次の等式が成り立ちます。
E0.9=3×E0.3E_{0.9} = 3 \times E_{0.3}

これにそれぞれの式を代入して nn について解きます。
10.1+0.9n=3×10.7+0.3n\frac{1}{0.1 + \frac{0.9}{n}} = 3 \times \frac{1}{0.7 + \frac{0.3}{n}}

両辺の逆数をとって整理すると(または両辺に分母を掛けると)、
0.7+0.3n=3(0.1+0.9n)0.7 + \frac{0.3}{n} = 3 \left( 0.1 + \frac{0.9}{n} \right)
0.7+0.3n=0.3+2.7n0.7 + \frac{0.3}{n} = 0.3 + \frac{2.7}{n}

移項してまとめます。
0.7−0.3=2.7n−0.3n0.7 - 0.3 = \frac{2.7}{n} - \frac{0.3}{n}
0.4=2.4n0.4 = \frac{2.4}{n}
n=2.40.4=6n = \frac{2.4}{0.4} = 6

したがって、プロセッサが 6台 のときであり、正解は エ です。

各選択肢の解説

  • ア(3): n=3n = 3 を代入すると、E0.9=10.1+0.3=2.5E_{0.9} = \frac{1}{0.1 + 0.3} = 2.5、E0.3=10.7+0.1=1.25E_{0.3} = \frac{1}{0.7 + 0.1} = 1.25 となり、高速化率は2倍にしかなりません。
  • イ(4): n=4n = 4 を代入すると、E0.9=10.1+0.225=10.325E_{0.9} = \frac{1}{0.1 + 0.225} = \frac{1}{0.325}、E0.3=10.7+0.075=10.775E_{0.3} = \frac{1}{0.7 + 0.075} = \frac{1}{0.775} となり、3倍にはなりません。
  • ウ(5): n=5n = 5 を代入すると、E0.9=10.1+0.18=10.28E_{0.9} = \frac{1}{0.1 + 0.18} = \frac{1}{0.28}、E0.3=10.7+0.06=10.76E_{0.3} = \frac{1}{0.7 + 0.06} = \frac{1}{0.76} となり、3倍にはなりません。
  • エ(6): 正解です。n=6n = 6 を代入すると、E0.9=10.1+0.15=4E_{0.9} = \frac{1}{0.1 + 0.15} = 4、E0.3=10.7+0.05=43E_{0.3} = \frac{1}{0.7 + 0.05} = \frac{4}{3} となり、ちょうど3倍になります。

Spineチーム