pub enum AggregationError {
NoCommunicator {
world_size: usize,
},
WorldSizeMismatch {
transport_world_size: usize,
config_world_size: usize,
transport_rank: usize,
},
ButterflyRequiresPowerOfTwo {
world_size: usize,
},
}Expand description
Hierarchical aggregation strategies for distributed training
This module provides advanced hierarchical aggregation algorithms that optimize communication patterns for different network topologies and cluster configurations. It supports tree-based, ring-based, and butterfly aggregation patterns.
§Communication
Aggregation is performed over a real transport::Transport (in-process
shared memory or TCP) through the algorithms in collective. A
HierarchicalAggregator built without a transport can only service a
world size of one; any larger configuration returns
AggregationError::NoCommunicator instead of aggregating against
fabricated data.
Errors raised by hierarchical aggregation.
Variants§
NoCommunicator
No transport was attached, so no peer data can be exchanged.
WorldSizeMismatch
The attached transport disagrees with the configuration.
Fields
ButterflyRequiresPowerOfTwo
Butterfly (recursive doubling) requires a power-of-two world size.
Trait Implementations§
Source§impl Debug for AggregationError
impl Debug for AggregationError
Source§impl Display for AggregationError
impl Display for AggregationError
Source§impl Error for AggregationError
impl Error for AggregationError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for AggregationError
impl RefUnwindSafe for AggregationError
impl Send for AggregationError
impl Sync for AggregationError
impl Unpin for AggregationError
impl UnsafeUnpin for AggregationError
impl UnwindSafe for AggregationError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString. Read more