#[non_exhaustive]pub enum CollapseSchedule {
Serial,
Ordered,
Rounds,
Adaptive,
}Expand description
The collapse the pipeline runs with RipsParams::collapse_edges set.
Every schedule gives the same diagram. Serial is the default and, in
the registered studies, the fastest end to end on most inputs.
Ordered gives the serial result, bit for bit, from a parallel run.
Rounds gives a result that does not depend on the worker count and,
on some inputs, a smaller reduced graph; its cost grows faster with the
edge count than the serial cost. See collapse for the schedules and
their certificates.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Serial
The serial schedule on one worker. It writes an algorithm version 1 certificate. The reduction still uses the whole thread budget.
Ordered
The ordered schedule on the run’s worker budget. It gives the same
reduced graph and the same certificate as Serial.
Rounds
The rounds schedule on the run’s worker budget. It writes an algorithm version 2 certificate and gives the same result at every worker count, but not the serial result.
Adaptive
The adaptive version 3 schedule. It ranks currently valid removals by estimated downstream H1 or H2 work and can stop at a declared work limit. It runs serially; the reduction still uses the whole thread budget.
Trait Implementations§
Source§impl Clone for CollapseSchedule
impl Clone for CollapseSchedule
Source§fn clone(&self) -> CollapseSchedule
fn clone(&self) -> CollapseSchedule
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CollapseSchedule
Source§impl Debug for CollapseSchedule
impl Debug for CollapseSchedule
Source§impl Default for CollapseSchedule
impl Default for CollapseSchedule
Source§fn default() -> CollapseSchedule
fn default() -> CollapseSchedule
impl Eq for CollapseSchedule
Source§impl PartialEq for CollapseSchedule
impl PartialEq for CollapseSchedule
impl StructuralPartialEq for CollapseSchedule
Auto Trait Implementations§
impl Freeze for CollapseSchedule
impl RefUnwindSafe for CollapseSchedule
impl Send for CollapseSchedule
impl Sync for CollapseSchedule
impl Unpin for CollapseSchedule
impl UnsafeUnpin for CollapseSchedule
impl UnwindSafe for CollapseSchedule
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 more