Struct soco::model::data_center::models::switching_cost::SwitchingCost
source · [−]pub struct SwitchingCost {
pub energy_cost: f64,
pub phi_min: f64,
pub phi_max: f64,
pub epsilon: f64,
pub delta: f64,
pub tau: f64,
pub rho: f64,
}
Expand description
Switching cost.
Fields
energy_cost: f64
Average cost per unit of energy.
phi_min: f64
Power consumed when idling.
phi_max: f64
Power consumed at full load.
epsilon: f64
Additional energy consumed by toggling a server on and off.
delta: f64
Required time in time slots for migrating connections or data.
tau: f64
Wear-and-tear costs of toggling a server.
rho: f64
Perceived risk associated with toggling a server.
Implementations
sourceimpl SwitchingCost
impl SwitchingCost
sourcepub fn switching_cost(&self) -> N64
pub fn switching_cost(&self) -> N64
Computes switching cost for a server of some type.
sourcepub fn normalized_switching_cost(&self, delta: f64) -> N64
pub fn normalized_switching_cost(&self, delta: f64) -> N64
Computes normalized switching cost for a server of some type given the time slot length $\delta$. Approximately, measures the minimum duration a server must be asleep to outweigh the switching cost. Referred to as $\xi$ in the paper.
Trait Implementations
sourceimpl Clone for SwitchingCost
impl Clone for SwitchingCost
sourcefn clone(&self) -> SwitchingCost
fn clone(&self) -> SwitchingCost
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl IntoPy<Py<PyAny>> for SwitchingCost
impl IntoPy<Py<PyAny>> for SwitchingCost
sourceimpl PyClass for SwitchingCost
impl PyClass for SwitchingCost
type Dict = PyClassDummySlot
type Dict = PyClassDummySlot
Specify this class has #[pyclass(dict)]
or not.
type WeakRef = PyClassDummySlot
type WeakRef = PyClassDummySlot
Specify this class has #[pyclass(weakref)]
or not.
type BaseNativeType = PyAny
type BaseNativeType = PyAny
The closest native ancestor. This is PyAny
by default, and when you declare
#[pyclass(extends=PyDict)]
, it’s PyDict
. Read more
sourceimpl PyClassDescriptors<SwitchingCost> for PyClassImplCollector<SwitchingCost>
impl PyClassDescriptors<SwitchingCost> for PyClassImplCollector<SwitchingCost>
fn py_class_descriptors(self) -> &'static [PyMethodDefType]
sourceimpl PyClassImpl for SwitchingCost
impl PyClassImpl for SwitchingCost
sourceconst IS_BASETYPE: bool
const IS_BASETYPE: bool
#[pyclass(subclass)]
sourceconst IS_SUBCLASS: bool
const IS_SUBCLASS: bool
#[pyclass(extends=…)]
type ThreadChecker = ThreadCheckerStub<SwitchingCost>
type ThreadChecker = ThreadCheckerStub<SwitchingCost>
This handles following two situations: Read more
fn for_each_method_def(visitor: &mut dyn FnMut(&[PyMethodDefType]))
fn get_new() -> Option<newfunc>
fn get_alloc() -> Option<allocfunc>
fn get_free() -> Option<freefunc>
fn for_each_proto_slot(visitor: &mut dyn FnMut(&[PyType_Slot]))
fn get_buffer() -> Option<&'static PyBufferProcs>
sourceimpl PyClassNewImpl<SwitchingCost> for PyClassImplCollector<SwitchingCost>
impl PyClassNewImpl<SwitchingCost> for PyClassImplCollector<SwitchingCost>
sourceimpl PyMethods<SwitchingCost> for PyClassImplCollector<SwitchingCost>
impl PyMethods<SwitchingCost> for PyClassImplCollector<SwitchingCost>
fn py_methods(self) -> &'static [PyMethodDefType]
sourceimpl PyMethodsProtocolSlots<SwitchingCost> for PyClassImplCollector<SwitchingCost>
impl PyMethodsProtocolSlots<SwitchingCost> for PyClassImplCollector<SwitchingCost>
fn methods_protocol_slots(self) -> &'static [PyType_Slot]
sourceimpl PyTypeInfo for SwitchingCost
impl PyTypeInfo for SwitchingCost
type AsRefTarget = PyCell<Self>
type AsRefTarget = PyCell<Self>
Utility type to make Py::as_ref work.
sourcefn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
PyTypeObject instance for this type.
sourcefn is_type_of(object: &PyAny) -> bool
fn is_type_of(object: &PyAny) -> bool
Checks if object
is an instance of this type or a subclass of this type.
sourcefn is_exact_type_of(object: &PyAny) -> bool
fn is_exact_type_of(object: &PyAny) -> bool
Checks if object
is an instance of this type.
Auto Trait Implementations
impl RefUnwindSafe for SwitchingCost
impl Send for SwitchingCost
impl Sync for SwitchingCost
impl Unpin for SwitchingCost
impl UnwindSafe for SwitchingCost
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<'a, T> FromPyObject<'a> for T where
T: PyClass + Clone,
impl<'a, T> FromPyObject<'a> for T where
T: PyClass + Clone,
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> PyTypeObject for T where
T: PyTypeInfo,
impl<T> PyTypeObject for T where
T: PyTypeInfo,
sourcefn type_object(py: Python<'_>) -> &PyType
fn type_object(py: Python<'_>) -> &PyType
Returns the safe abstraction over the type object.
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more