overhead
calculates the overhead in processing time for a system
modeled with the Universal Scalability Law.
It evaluates the regression function in the frame newdata
(which
defaults to model.frame(object)
). The result contains the ideal
processing time and the additional overhead caused by contention and
coherency delays.
# S4 method for USL
overhead(object, newdata)
overhead
produces a matrix of overhead percentages based on
a non-parallelized workload. The column ideal
contains the ideal
percentage of execution time. The columns contention
and
coherency
give the additional overhead percentage caused by
the respective effects.
A USL model object for which the overhead will be calculated.
An optional data frame in which to look for variables with which to calculate the overhead. If omitted, the fitted values are used.
The calculated processing times are given as percentages of a non-parallelized workload. So for a non-parallelized workload the ideal processing time will always be given as 100% while the overhead for contention and coherency will always be zero.
Doubling the capacity will cut the ideal processing time in half but
increase the overhead percentages. The increase of the overhead depends on
the values of the parameters alpha
and beta
estimated by
usl
.
The calculation is based on A General Theory of Computational Scalability Based on Rational Functions, equation 26.
Neil J. Gunther. Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services. Springer, Heidelberg, Germany, 1st edition, 2007.
Neil J. Gunther. A General Theory of Computational Scalability
Based on Rational Functions. Computing Research Repository, 2008.
http://arxiv.org/abs/0808.1431
usl
, USL-class
require(usl)
data(specsdm91)
## Print overhead in processing time for demo dataset
overhead(usl(throughput ~ load, specsdm91))
Run the code above in your browser using DataLab