Struct caminos_lib::pattern::Circulant
source · pub struct Circulant {
pub generators: Vec<i32>,
pub size: i32,
}
Expand description
The node at an index
sends traffic randomly to one of index+g
, where g
is any of the declared generators
.
These sums are made modulo the destination size, which is intended to be equal the source size.
the induced communication matrix is a Circulant matrix, hence its name.
In this example each node x
send to either x+1
or x+2
.
ⓘ
Circulant{
generators: [1,2],
}
Fields§
§generators: Vec<i32>
The generators to be employed.
size: i32
The size of the destinations set, captured at initialization.
Trait Implementations§
source§impl Pattern for Circulant
impl Pattern for Circulant
source§fn initialize(
&mut self,
_source_size: usize,
target_size: usize,
_topology: &dyn Topology,
_rng: &mut StdRng
)
fn initialize( &mut self, _source_size: usize, target_size: usize, _topology: &dyn Topology, _rng: &mut StdRng )
Fix the input and output size, providing the topology and random number generator.
Careful with using topology in sub-patterns. For example, it may be misleading to use the dragonfly topology when
building a pattern among groups or a pattern among the routers of a single group.
Even just a pattern of routers instead of a pattern of servers can lead to mistakes.
Read the documentation of the traffic or meta-pattern using the pattern to know what its their input and output.
source§impl Quantifiable for Circulant
impl Quantifiable for Circulant
source§fn total_memory(&self) -> usize
fn total_memory(&self) -> usize
Get the total memory currently being employed by the implementing type. Both stack and heap.
source§fn print_memory_breakdown(&self)
fn print_memory_breakdown(&self)
Prints by stdout how much memory is used per component.
source§fn forecast_total_memory(&self) -> usize
fn forecast_total_memory(&self) -> usize
Get an estimation on how much memory the type could reach during the simulation.
Auto Trait Implementations§
impl RefUnwindSafe for Circulant
impl Send for Circulant
impl Sync for Circulant
impl Unpin for Circulant
impl UnwindSafe for Circulant
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more