pub enum CudaAlgorithm {}
Trait Implementations§
source§impl<'p, M: MathsCore + Sync, G: PrimeableRng<M> + RustToCuda + Sync, O: Scenario<M, G>, R: Reporter, P: LocalPartition<'p, R>> Algorithm<'p, M, G, O, R, P> for CudaAlgorithmwhere
O::Habitat: RustToCuda + Sync,
O::DispersalSampler: RustToCuda + Sync,
O::TurnoverRate: RustToCuda + Sync,
O::SpeciationProbability: RustToCuda + Sync,
SimulationKernelPtx<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, O::DispersalSampler, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability, ExpEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>: CompiledKernelPtx<simulate<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, O::DispersalSampler, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability, ExpEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>>,
SimulationKernelPtx<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability, ConstEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>: CompiledKernelPtx<simulate<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability, ConstEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>>,
impl<'p, M: MathsCore + Sync, G: PrimeableRng<M> + RustToCuda + Sync, O: Scenario<M, G>, R: Reporter, P: LocalPartition<'p, R>> Algorithm<'p, M, G, O, R, P> for CudaAlgorithmwhere
O::Habitat: RustToCuda + Sync,
O::DispersalSampler: RustToCuda + Sync,
O::TurnoverRate: RustToCuda + Sync,
O::SpeciationProbability: RustToCuda + Sync,
SimulationKernelPtx<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, O::DispersalSampler, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability, ExpEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>: CompiledKernelPtx<simulate<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, O::DispersalSampler, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability, ExpEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>>,
SimulationKernelPtx<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability, ConstEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>: CompiledKernelPtx<simulate<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability, ConstEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>>,
source§fn resume_and_simulate<I: Iterator<Item = u64>, L: ExactSizeIterator<Item = Lineage>>(
args: Self::Arguments,
rng: G,
scenario: ScenarioCogs<M, G, O>,
pre_sampler: OriginPreSampler<M, I>,
lineages: L,
resume_after: Option<NonNegativeF64>,
pause_before: Option<NonNegativeF64>,
local_partition: &mut P
) -> Result<SimulationOutcome<M, G>, ResumeError<Self::Error>>
fn resume_and_simulate<I: Iterator<Item = u64>, L: ExactSizeIterator<Item = Lineage>>( args: Self::Arguments, rng: G, scenario: ScenarioCogs<M, G, O>, pre_sampler: OriginPreSampler<M, I>, lineages: L, resume_after: Option<NonNegativeF64>, pause_before: Option<NonNegativeF64>, local_partition: &mut P ) -> Result<SimulationOutcome<M, G>, ResumeError<Self::Error>>
§Errors
Returns a ContinueError::Sample
if initialising the resuming
simulation failed
source§fn fixup_for_restart<I: Iterator<Item = u64>, L: ExactSizeIterator<Item = Lineage>>(
args: Self::Arguments,
rng: G,
scenario: ScenarioCogs<M, G, O>,
pre_sampler: OriginPreSampler<M, I>,
lineages: L,
restart_at: PositiveF64,
fixup_strategy: RestartFixUpStrategy,
local_partition: &mut P
) -> Result<SimulationOutcome<M, G>, ResumeError<Self::Error>>
fn fixup_for_restart<I: Iterator<Item = u64>, L: ExactSizeIterator<Item = Lineage>>( args: Self::Arguments, rng: G, scenario: ScenarioCogs<M, G, O>, pre_sampler: OriginPreSampler<M, I>, lineages: L, restart_at: PositiveF64, fixup_strategy: RestartFixUpStrategy, local_partition: &mut P ) -> Result<SimulationOutcome<M, G>, ResumeError<Self::Error>>
§Errors
Returns a ContinueError<Self::Error>
if fixing up the restarting
simulation (incl. running the algorithm) failed
type LineageStore = IndependentLineageStore<M, <O as Scenario<M, G>>::Habitat>
fn get_logical_partition( args: &Self::Arguments, _local_partition: &P ) -> Partition
source§fn initialise_and_simulate<I: Iterator<Item = u64>>(
args: Self::Arguments,
rng: G,
scenario: ScenarioCogs<M, G, O>,
pre_sampler: OriginPreSampler<M, I>,
pause_before: Option<NonNegativeF64>,
local_partition: &mut P
) -> Result<SimulationOutcome<M, G>, Self::Error>
fn initialise_and_simulate<I: Iterator<Item = u64>>( args: Self::Arguments, rng: G, scenario: ScenarioCogs<M, G, O>, pre_sampler: OriginPreSampler<M, I>, pause_before: Option<NonNegativeF64>, local_partition: &mut P ) -> Result<SimulationOutcome<M, G>, Self::Error>
Errors Read more
source§impl AlgorithmDefaults for CudaAlgorithm
impl AlgorithmDefaults for CudaAlgorithm
source§impl<M: MathsCore + Sync, G: PrimeableRng<M> + RustToCuda + Sync, O: Scenario<M, G>, R: Reporter> AlgorithmDispatch<M, G, O, R> for CudaAlgorithmwhere
O::Habitat: RustToCuda + Sync,
O::DispersalSampler: RustToCuda + Sync,
O::TurnoverRate: RustToCuda + Sync,
O::SpeciationProbability: RustToCuda + Sync,
SimulationKernelPtx<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, O::DispersalSampler, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability, ExpEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>: CompiledKernelPtx<simulate<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, O::DispersalSampler, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability, ExpEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>>,
SimulationKernelPtx<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability, ConstEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>: CompiledKernelPtx<simulate<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability, ConstEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>>,
impl<M: MathsCore + Sync, G: PrimeableRng<M> + RustToCuda + Sync, O: Scenario<M, G>, R: Reporter> AlgorithmDispatch<M, G, O, R> for CudaAlgorithmwhere
O::Habitat: RustToCuda + Sync,
O::DispersalSampler: RustToCuda + Sync,
O::TurnoverRate: RustToCuda + Sync,
O::SpeciationProbability: RustToCuda + Sync,
SimulationKernelPtx<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, O::DispersalSampler, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability, ExpEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>: CompiledKernelPtx<simulate<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, O::DispersalSampler, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, O::DispersalSampler, O::TurnoverRate, O::SpeciationProbability, ExpEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>>,
SimulationKernelPtx<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability, ConstEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>: CompiledKernelPtx<simulate<M, O::Habitat, G, IndependentLineageStore<M, O::Habitat>, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, IndependentCoalescenceSampler<M, O::Habitat>, O::TurnoverRate, O::SpeciationProbability, IndependentEventSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability>, NeverImmigrationEntry, IndependentActiveLineageSampler<M, O::Habitat, G, NeverEmigrationExit, TrespassingDispersalSampler<M, O::Habitat, G, O::DispersalSampler, UniformAntiTrespassingDispersalSampler<M, O::Habitat, G>>, O::TurnoverRate, O::SpeciationProbability, ConstEventTimeSampler>, R::ReportSpeciation, R::ReportDispersal>>,
type Algorithm<'p, P: LocalPartition<'p, R>> = CudaAlgorithm
fn get_logical_partition_size<P: Partitioning>( args: &Self::Arguments, _partitioning: &P ) -> PartitionSize
source§impl AlgorithmParamters for CudaAlgorithm
impl AlgorithmParamters for CudaAlgorithm
Auto Trait Implementations§
impl Freeze for CudaAlgorithm
impl RefUnwindSafe for CudaAlgorithm
impl Send for CudaAlgorithm
impl Sync for CudaAlgorithm
impl Unpin for CudaAlgorithm
impl UnwindSafe for CudaAlgorithm
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
§impl<T> ExtractDiscriminant for T
impl<T> ExtractDiscriminant for T
§type Discriminant = <T as ExtractDiscriminantSpec<<T as DiscriminantKind>::Discriminant>>::Ty
type Discriminant = <T as ExtractDiscriminantSpec<<T as DiscriminantKind>::Discriminant>>::Ty
The type of the discriminant, which must satisfy the trait bounds
required by
core::mem::Discriminant
. Read moresource§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