基本情報技術者試験「マルチコアと並列処理」の問題
アムダールの法則が示す、プロセッサのコア数を増やして並列化したときの性能向上に関する説明として最も適切なものはどれか。
ア逐次処理として残る部分が全体の高速化の上限を決めるため、コアを増やしても向上は頭打ちになる
イコア数に正比例して処理性能はどこまでも線形に向上し続ける
ウ並列化の効果はコア数の2乗に比例して加速度的に増大する
エコア数を増やしさえすれば逐次部分までも自動的に並列化され、全体の処理時間が限りなくゼロに近づいていく
正解
ア.逐次処理として残る部分が全体の高速化の上限を決めるため、コアを増やしても向上は頭打ちになる
アムダールの法則は、プログラム中の逐次実行しかできない部分の割合が全体の高速化の上限を定めると述べる。並列部分をいくら速くしても逐次部分は短縮されないため、コアを増やしても向上が頭打ちになる。設問に合致し正しい。
?選択肢ごとの解説
ア ○アムダールの法則は、プログラム中の逐次実行しかできない部分の割合が全体の高速化の上限を定めると述べる。並列部分をいくら速くしても逐次部分は短縮されないため、コアを増やしても向上が頭打ちになる。設問に合致し正しい。
イ ×コア数に正比例して線形に向上し続けるという説明は逐次部分の存在を無視しており、現実には頭打ちが生じるためアムダールの法則に反する。
ウ ×コア数の2乗に比例して加速するという説明は根拠がなく、並列化の効果は逐次部分に制約されるため成立しない。
エ ×逐次部分まで自動的に並列化され処理時間がゼロに近づくという説明は誤りで、逐次部分は本質的に並列化できず残り続ける。
✎くわしく
アムダールの法則は高速化率=1÷((1-P)+P/N)(Pは並列化可能割合、Nはコア数)で表され、N→∞でも上限は1÷(1-P)に収束する。たとえば並列化率90%なら最大でも10倍止まりである。逐次部分の削減こそが本質的な性能向上の鍵だと示す。
✓本番での押さえどころ
試験のコツ
『逐次部分が上限を決める』が結論。並列化率Pが高いほど上限1÷(1-P)が大きい、と式で押さえる。
覚え方
アムダール=『どんなに人手(コア)を足しても、1人でしかできない仕事が残れば全体は速くならない』とたとえる。
よくある誤り
コア数を増やせば際限なく速くなると誤解する。逐次部分が上限を決めるという核心を見落としやすい。
コンピュータ構成要素の他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0155