Performance Analysis

What is the most appropriate method for examining a parallel program's scalability?

  1. AMeasure once with the maximum core count
  2. BMeasure run time while increasing threads or cores through 1, 2, 4, 8 and so on, and graph how speedup grows
  3. CMeasure many times with just one core
Show answer and explanation

Answer: B. Measure run time while increasing threads or cores through 1, 2, 4, 8 and so on, and graph how speedup grows

Measuring speedup at varying core counts ideally shows growth proportional to cores, but in practice serial parts, synchronization, communication and memory-bandwidth limits make gains taper beyond some point. Where growth stops hints at the limiting factor. The fair baseline is the fastest serial version of the program, not a parallel version run on one core.

  • A. A single measurement cannot show the trend.
  • B. Correct. It shows where gains level off.
  • C. It reveals nothing about parallel effects.
Practice this topic Back to topic

More Performance Analysis questions

  1. Running in parallel on 8 cores is 6× faster than on 1 core. What is the parallel efficiency?
  2. What is the phenomenon called in which adding a mechanism to measure performance changes the behavior of the program being measured?
  3. What is the most appropriate way to proceed when improving program performance?
  4. In a program processing large amounts of data, which improvement is most likely to give the largest speedup?
  5. In software development, what is the purpose of automatically running benchmarks and recording results on every change?