Struct usl::Model [−][src]
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
impl Model
[src]
impl Model
[src]pub fn build(measurements: &[Measurement]) -> Model
[src]
pub fn build(measurements: &[Measurement]) -> Model
[src]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.
pub fn throughput_at_concurrency(&self, n: u32) -> f64
[src]
pub fn throughput_at_concurrency(&self, n: u32) -> f64
[src]Calculate the expected throughput given a number of concurrent events, X(N)
.
See “Practical Scalability Analysis with the Universal Scalability Law, Equation 3”.
pub fn latency_at_concurrency(&self, n: u32) -> f64
[src]
pub fn latency_at_concurrency(&self, n: u32) -> f64
[src]Calculate the expected mean latency given a number of concurrent events, R(N)
.
See “Practical Scalability Analysis with the Universal Scalability Law, Equation 6”.
pub fn max_concurrency(&self) -> u32
[src]
pub fn max_concurrency(&self) -> u32
[src]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”.
pub fn max_throughput(&self) -> f64
[src]
pub fn max_throughput(&self) -> f64
[src]Calculate the maximum expected throughput the system can handle, X{max}
.
pub fn latency_at_throughput(&self, x: f64) -> f64
[src]
pub fn latency_at_throughput(&self, x: f64) -> f64
[src]Calculate the expected mean latency given a throughput, R(X)
.
See “Practical Scalability Analysis with the Universal Scalability Law, Equation 8”.
pub fn throughput_at_latency(&self, r: Duration) -> f64
[src]
pub fn throughput_at_latency(&self, r: Duration) -> f64
[src]Calculate the expected throughput given a mean latency, X(R)
.
See “Practical Scalability Analysis with the Universal Scalability Law, Equation 9”.
pub fn concurrency_at_latency(&self, r: Duration) -> f64
[src]
pub fn concurrency_at_latency(&self, r: Duration) -> f64
[src]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”.
pub fn concurrency_at_throughput(&self, x: f64) -> f64
[src]
pub fn concurrency_at_throughput(&self, x: f64) -> f64
[src]Calculate the expected number of concurrent events at a particular throughput, N(X)
.
pub fn is_contention_constrained(&self) -> bool
[src]
pub fn is_contention_constrained(&self) -> bool
[src]Whether or not the system is constrained by contention effects.
pub fn is_coherency_constrained(&self) -> bool
[src]
pub fn is_coherency_constrained(&self) -> bool
[src]Whether or not the system is constrained by coherency effects.
pub fn is_limitless(&self) -> bool
[src]
pub fn is_limitless(&self) -> bool
[src]Whether or not the system is linearly scalable.
Trait Implementations
impl FromIterator<Measurement> for Model
[src]
impl FromIterator<Measurement> for Model
[src]fn from_iter<T: IntoIterator<Item = Measurement>>(iter: T) -> Self
[src]
fn from_iter<T: IntoIterator<Item = Measurement>>(iter: T) -> Self
[src]Creates a value from an iterator. Read more
impl Copy for Model
[src]
Auto Trait Implementations
impl RefUnwindSafe for Model
impl Send for Model
impl Sync for Model
impl Unpin for Model
impl UnwindSafe for Model
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more