Hello everyone
I am a newcomer on "scalability world", so I encourage myself to start
learning about it. I am in the middle of writing an article talking
about comparisons of several Linux scheduler (2.6.x), primarily between
O(1) scheduler and Staircase scheduler.
I am now facing huge problem, that is how to measure scalability of a
scheduler? Lets assume I got this result
Thread : 2 4 8 16
Runtime (second) : 0.1 0.3 0.7 1.1
How to express "scalability" in this case? From what I learn so far, I
can use two approach:
1. Pick data from two points, e.g 2 threads and 16 threads. We know that
the ratio is 1:8. Looking at related runtime, the ratio is 1:11. So we
can calculate that the scale is 11/8 = 137.5%
2. Use exponential equation ( y = b * m ^ x). I got this idea by looking
at the available array functions on Open Office calc and from there I
found LOGEST() which takes our data series as X and Y values (Y values
are results of func(X)) and calculate the regression coeffecient. They
are scale factor (m) and b (the point where x=0 ). From here, I pick
the scale factor and use it scalability indicator
any feedback or suggestions are welcome
regards
Mulyadi
|