pub struct ExtMemOpts {
pub max_context: usize,
pub subproblem_count: usize,
pub work_dir: PathBuf,
pub physical_file_count: usize,
}Expand description
Tunable options for build_ext_mem.
Fields§
§max_context: usizeBound on LCP-extension comparisons inside merges. usize::MAX
(default) is unbounded.
subproblem_count: usizeNumber of subarrays (p in upstream CaPS-SA). 0 (default) picks
4 × rayon::current_num_threads(), clamped to [1, n].
work_dir: PathBufDirectory for temp files. Defaults to std::env::temp_dir.
physical_file_count: usizeNumber of physical files in the bucket pool (one pool for the
phase-1 subarray buckets and a second for the phase-3 partition
buckets). 0 (default) picks rayon::current_num_threads() —
the right answer in practice: one writable inode per worker
keeps kernel-level write contention bounded.
The 2 × p logical buckets (typically thousands at genome
scale) collapse onto this pool of anonymous tempfiles via
bucket_id % physical_file_count. Larger values lower kernel
write contention; smaller values are kinder to networked
filesystems with high metadata cost. The CAPS_SA_N_PHYS env
var overrides this for one-off benches.
Implementations§
Source§impl ExtMemOpts
impl ExtMemOpts
Sourcepub fn with_work_dir(work_dir: impl AsRef<Path>) -> Self
pub fn with_work_dir(work_dir: impl AsRef<Path>) -> Self
Convenience constructor with the supplied work_dir and defaults
for everything else.
Trait Implementations§
Source§impl Clone for ExtMemOpts
impl Clone for ExtMemOpts
Source§fn clone(&self) -> ExtMemOpts
fn clone(&self) -> ExtMemOpts
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExtMemOpts
impl Debug for ExtMemOpts
Auto Trait Implementations§
impl Freeze for ExtMemOpts
impl RefUnwindSafe for ExtMemOpts
impl Send for ExtMemOpts
impl Sync for ExtMemOpts
impl Unpin for ExtMemOpts
impl UnsafeUnpin for ExtMemOpts
impl UnwindSafe for ExtMemOpts
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<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