pub struct CartesianEmbedding { /* private fields */ }
Expand description
Maps from a block into another following the natural embedding, keeping the coordinates of every node. Both block must have the same number of dimensions, and each dimension should be greater at the destination than at the source. This is intended to be used to place several small applications in a larger machine. It can combined with CartesianTransform to be placed at an offset, to set a stride, or others.
Example mapping nodes in a block of 16 nodes into one of 64 nodes.
ⓘ
CartesianEmbedding{
source_sides: [4,4],
destination_sides: [8,8],
}
Implementations§
Source§impl CartesianEmbedding
impl CartesianEmbedding
pub fn new(arg: PatternBuilderArgument<'_>) -> CartesianEmbedding
Trait Implementations§
Source§impl Debug for CartesianEmbedding
impl Debug for CartesianEmbedding
Source§impl Pattern for CartesianEmbedding
impl Pattern for CartesianEmbedding
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 CartesianEmbedding
impl Quantifiable for CartesianEmbedding
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 Freeze for CartesianEmbedding
impl RefUnwindSafe for CartesianEmbedding
impl Send for CartesianEmbedding
impl Sync for CartesianEmbedding
impl Unpin for CartesianEmbedding
impl UnwindSafe for CartesianEmbedding
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more