usl | R Documentation |
usl
is used to create a model for the Universal Scalability Law.
usl(formula, data, method = "default")
formula |
An object of class " |
data |
A data frame, list or environment (or object coercible by
as.data.frame to a data frame) containing the variables in the model.
If not found in data, the variables are taken from
|
method |
Character value specifying the method to use. The possible values are described under 'Details'. |
The Universal Scalability Law is used to forcast the scalability of either a hardware or a software system.
The USL model works with one independent variable (e.g. virtual users,
processes, threads, ...) and one dependent variable (e.g. throughput, ...).
Therefore the model formula must be in the simple
"response ~ predictor
" format.
The model produces two main coefficients as result: alpha
models the
contention and beta
the coherency delay of the system. The third
coefficient gamma
estimates the value of the dependent variable
(e.g. throughput) for the single user/process/thread case. It therefore
corresponds to the scale factor calculated in previous versions of the
usl
package.
The function coef
extracts the coefficients from the model
object.
The argument method
selects which solver is used to solve the
model:
"nls
" for a nonlinear regression model. This method
estimates all coefficients alpha
, beta
and gamma
.
The R base function nls
with the "port
" algorithm
is used internally to solve the model. So all restrictions of the
"port
" algorithm apply.
"nlxb
" for a nonliner regression model using the function
nlxb
from the nlsr
package. This method
also estimates all three coefficients. It is expected to be more robust
than the nls
method.
"default
" for the default method using a transformation
into a 2nd degree polynom has been removed with the implementation
of the model using three coefficients in the usl package 2.0.0.
Calling the "default
" method will internally dispatch to the
"nlxb
" solver instead.
The Universal Scalability Law can be expressed with following formula.
C(N)
predicts the relative capacity of the system for a given
load N
:
C(N) = (γ N) / (1 + α * (N - 1) + β * N * (N - 1))
An object of class USL.
Neil J. Gunther. Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services. Springer, Heidelberg, Germany, 1st edition, 2007.
John C. Nash. nlsr: Functions for nonlinear least squares solutions, 2017. R package version 2017.6.18.
efficiency,USL-method
,
scalability,USL-method
,
peak.scalability,USL-method
,
optimal.scalability,USL-method
,
limit.scalability,USL-method
,
summary,USL-method
,
sigma,USL-method
predict,USL-method
,
overhead,USL-method
,
confint,USL-method
,
coef
,
fitted
,
residuals
,
df.residual
require(usl) data(raytracer) ## Create USL model for "throughput" by "processors" usl.model <- usl(throughput ~ processors, raytracer) ## Show summary of model parameters summary(usl.model) ## Show complete list of efficiency parameters efficiency(usl.model) ## Extract coefficients for model coef(usl.model) ## Calculate point of peak scalability peak.scalability(usl.model) ## Plot original data and scalability function plot(raytracer) plot(usl.model, add=TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.