I have to create a strong scalability plot, which measures the execution time for a numberOfThreads =1,2,4,8,16 with size=1024. Here is the table with the results after execution:

enter image description here

And here is the plot based on the table:

enter image description here

I don't know exactly when is a plot strong scalable and if this plot is a strong scalability plot ?


As sensitive_scientist mentioned, Measuring Parallel Scaling Performance provides the information you want on how to calculate strong\weak scaling. I've plotted your data in a way I consider it the most informative: both execution timing and strong scaling. Note:

  1. In my opinion, it is preferred to plot the execution timing on a log-log plot. The dashed line shows ideal parallelization ($t$/$T$). The data suggests that you might want to add one more datapoint ($T=32$ threads) to show that the "Multiply" parallelization also breaks down (as well as "Block Multiply").
  2. In a way, both of those plots serve the same purpose, but if they are detached it is hard to see the advantage of "Block Multiply" in an absolute sense - it is faster, though less parallel efficient.

Execution timing Strong Scaling

For completeness, strong scaling as a function of # Threads ($T$)

$\text{strong scaling}(T)=\frac{t_1}{t_T*T}$,

where $t_1$ is the execution time for $1$ thread and $t_T$ is the execution time for $T$ threads.

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.