scirs2_core/parallel/
mod.rs

1//! Advanced parallel processing and scheduling
2//!
3//! This module provides comprehensive parallel processing capabilities including:
4//! - Work-stealing scheduler for efficient thread utilization
5//! - Custom partitioning strategies for different data distributions
6//! - Nested parallelism with controlled resource usage
7//! - Load balancing and adaptive scheduling
8
9mod nested;
10mod partitioning;
11mod scheduler;
12
13// Re-export scheduler functionality
14pub use scheduler::{
15    create_work_stealing_scheduler, create_work_stealing_scheduler_with_workers, get_workerid,
16    CloneableTask, ParallelTask, SchedulerConfig, SchedulerConfigBuilder, SchedulerStats,
17    SchedulingPolicy, TaskHandle, TaskPriority, TaskStatus, WorkStealingArray,
18    WorkStealingScheduler,
19};
20
21// Re-export partitioning functionality
22pub use partitioning::{
23    DataDistribution, DataPartitioner, LoadBalancer, PartitionStrategy, PartitionerConfig,
24};
25
26// Re-export nested parallelism functionality
27pub use nested::{
28    adaptive_par_for_each, adaptive_par_map, current_nesting_level, is_nested_parallelism_allowed,
29    nested_scope, nested_scope_with_limits, with_nested_policy, NestedConfig, NestedContext,
30    NestedPolicy, NestedScope, ResourceLimits, ResourceManager, ResourceUsageStats,
31};
32
33// Note: parallel_map is now provided by parallel_ops module for simpler usage