Struct usl::Model[][src]

pub struct Model {
    pub sigma: f64,
    pub kappa: f64,
    pub lambda: f64,
}
Expand description

A Universal Scalability Law model.

Can be built from an explicit slice of Measurement instances via Model::build or via collect on an iterator of Measurement instances or measurement tuples:

let m: usl::Model = vec![
    (10, 30.0),
    (20, 80.0),
    (30, 100.0),
    (40, 140.0),
    (50, 160.0),
    (60, 222.0),
].iter().collect();

Fields

sigma: f64

The model’s coefficient of contention, σ.

kappa: f64

The model’s coefficient of crosstalk/coherency, κ.

lambda: f64

The model’s coefficient of performance, λ.

Implementations

Build a model whose parameters are generated from the given measurements.

Finds a set of coefficients for the equation y = λx/(1+σ(x-1)+κx(x-1)) which best fit the observed values using unconstrained least-squares regression. The resulting values for λ, κ, and σ are the parameters of the returned model.

Calculate the expected throughput given a number of concurrent events, X(N).

See “Practical Scalability Analysis with the Universal Scalability Law, Equation 3”.

Calculate the expected mean latency given a number of concurrent events, R(N).

See “Practical Scalability Analysis with the Universal Scalability Law, Equation 6”.

Calculate the maximum expected number of concurrent events the system can handle, N{max}.

See “Practical Scalability Analysis with the Universal Scalability Law, Equation 4”.

Calculate the maximum expected throughput the system can handle, X{max}.

Calculate the expected mean latency given a throughput, R(X).

See “Practical Scalability Analysis with the Universal Scalability Law, Equation 8”.

Calculate the expected throughput given a mean latency, X(R).

See “Practical Scalability Analysis with the Universal Scalability Law, Equation 9”.

Calculate the expected number of concurrent events at a particular mean latency, N(R).

See “Practical Scalability Analysis with the Universal Scalability Law, Equation 10”.

Calculate the expected number of concurrent events at a particular throughput, N(X).

Whether or not the system is constrained by contention effects.

Whether or not the system is constrained by coherency effects.

Whether or not the system is linearly scalable.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Creates a value from an iterator. Read more

Creates a value from an iterator. Read more

Creates a value from an iterator. Read more

Creates a value from an iterator. Read more

Creates a value from an iterator. Read more

Creates a value from an iterator. Read more

Creates a value from an iterator. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.