性能評価・プロファイリング
並列プログラムのスケーラビリティを調べるときの方法として最も適切なものはどれか。
- A最大のコア数で1回だけ測る
- Bスレッドやコアの数を1、2、4、8…と増やしながら実行時間を測り、速度向上率がどう伸びるかをグラフにする
- C1つのコアだけで何回も測る
答えと解説を見る
正解:B. スレッドやコアの数を1、2、4、8…と増やしながら実行時間を測り、速度向上率がどう伸びるかをグラフにする
コアの数を変えながら速度向上率を測ると、理想的にはコアの数に比例して伸びますが、実際には並列にできない部分、同期や通信、メモリ帯域の不足などで、ある数から伸びが鈍くなります。どこで伸びが止まるかを見れば、何が制約になっているかの手がかりが得られます。比べる基準は、並列化していない最も速い逐次のプログラムにするのが公平です。
- A. 1回だけでは、伸び方が分かりません。
- B. 正しい。どこで伸びが止まるかが分かります。
- C. 並列の効果は分かりません。