マルチプロセッサの性能上限|科目A-1(応用情報技術者) 令和6年 春期午前試験 問14
出典:令和6年春期 午前 問14
分野:システム構成要素 / システムの構成
1台のCPUの性能を1とするとき,そのCPUをn台用いたマルチプロセッサの性能Pが,
P = n / {1 +(n - 1)a}
で表されるとする。ここで,aはオーバーヘッドを表す定数である。例えば,a = 0.1,n = 4とすると,p ≒ 3なので,4台のCPUからなるマルチプロセッサの性能は約3倍になる。この式で表されるマルチプロセッサの性能には上限があり,nを幾ら大きくしてもある値以上には大きくならない。a = 0.1の場合,その値は幾らか。
P = n / {1 +(n - 1)a}
で表されるとする。ここで,aはオーバーヘッドを表す定数である。例えば,a = 0.1,n = 4とすると,p ≒ 3なので,4台のCPUからなるマルチプロセッサの性能は約3倍になる。この式で表されるマルチプロセッサの性能には上限があり,nを幾ら大きくしてもある値以上には大きくならない。a = 0.1の場合,その値は幾らか。
- ア:5
- イ:10
- ウ:15
- エ:20
TSUNAGARU-ADVICE
まず押さえたいこと
CPU台数nを増やしたときの性能上限を考える問題では、nを非常に大きくしたときに式がどの値へ近づくかを考えます。分子・分母をnで割って整理すると、nが大きくなるにつれて無視できる項が分かり、性能の上限を求められます。
迷ったときの判断軸
CPUを増やせば性能が際限なく比例して向上するわけではなく、オーバーヘッドが上限を決めます。この式では、nを十分大きくすると性能の上限はオーバーヘッドを表す定数aの逆数に近づくと捉えるのがポイントです。有限のCPU台数での性能と、理論上の上限を混同しないようにしましょう。
科目Bにつなげるために
特にプロフェッショナルデジタルスキル(システム)試験合格を目指す方は、この考え方を並列処理のスケーラビリティとオーバーヘッドに結び付けましょう。CPUやノードを追加しても通信・同期などの負荷によって性能向上が頭打ちになることは、並列システムの性能評価や構成設計でも重要です。
式にa = 0.1を代入すると、
P = n ÷ {1 + (n - 1) × 0.1}
となります。
まず、CPUを100台に増やした場合を考えます。
P = 100 ÷ {1 + (100 - 1) × 0.1}
= 100 ÷ (1 + 9.9)
= 100 ÷ 10.9
≒ 9.17
さらに、CPUを1,000台に増やすと、
P = 1,000 ÷ {1 + (1,000 - 1) × 0.1}
= 1,000 ÷ (1 + 99.9)
= 1,000 ÷ 100.9
≒ 9.91
さらに10,000台まで増やすと、
P = 10,000 ÷ {1 + (10,000 - 1) × 0.1}
= 10,000 ÷ 1,000.9
≒ 9.99
このように、CPUの台数nを非常に大きくしても、性能Pは10に近づいていくだけで、10を超えて大きくなることはありません。
式を変形して考えると、nが非常に大きい場合、分母の「1」や「- 1」の影響は小さくなるので、
P ≒ n ÷ (0.1 × n)
= 1 ÷ 0.1
= 10
となります。
したがって、イが適切です。