Module advanced_parallel

Module advanced_parallel 

Source
Expand description

Advanced-parallel algorithms with work-stealing and NUMA-aware optimizations

This module provides state-of-the-art parallel processing implementations optimized for modern multi-core and multi-socket systems. It includes work-stealing algorithms, NUMA-aware memory allocation, and adaptive load balancing for maximum computational throughput.

§Features

  • Work-stealing algorithms: Dynamic load balancing across threads
  • NUMA-aware processing: Optimized memory access patterns for multi-socket systems
  • Adaptive scheduling: Runtime optimization based on workload characteristics
  • Lock-free data structures: Minimize synchronization overhead
  • Cache-aware partitioning: Optimize data layout for CPU cache hierarchies
  • Thread-local optimizations: Reduce inter-thread communication overhead
  • Vectorized batch processing: SIMD-optimized parallel algorithms
  • Memory-mapped parallel I/O: High-performance data streaming

§Examples

use scirs2_spatial::advanced_parallel::{AdvancedParallelDistanceMatrix, WorkStealingConfig};
use scirs2_core::ndarray::array;

// Configure work-stealing parallel processing
let config = WorkStealingConfig::new()
    .with_numa_aware(true)
    .with_work_stealing(true)
    .with_adaptive_scheduling(true);

// Advanced-parallel distance matrix computation
let points = array![[0.0, 0.0], [1.0, 0.0], [0.0, 1.0], [1.0, 1.0]];
let processor = AdvancedParallelDistanceMatrix::new(config)?;
let distances = processor.compute_parallel(&points.view())?;
println!("Advanced-parallel distance matrix: {:?}", distances.shape());

Structs§

AdvancedParallelDistanceMatrix
Advanced-parallel distance matrix computation
AdvancedParallelKMeans
Advanced-parallel K-means clustering
CustomUserData
User data for custom processing
CustomWorkContext
Context for custom work
DistanceMatrixContext
Context for distance matrix computation
KDTreeChunkResult
Result of processing a KD-tree chunk
KDTreeConfig
KD-tree configuration for parallel construction
KDTreeContext
Context for KD-tree construction
KMeansContext
Context for K-means clustering
NearestNeighborContext
Context for nearest neighbor search
NumaTopology
NUMA topology information
PoolStatistics
Pool statistics for monitoring
WorkContext
Work context containing shared data for different computation types
WorkItem
Work item for parallel processing
WorkStealingConfig
Configuration for advanced-parallel processing
WorkStealingPool
Work-stealing thread pool with NUMA awareness

Enums§

MemoryStrategy
Memory allocation strategies
ThreadAffinityStrategy
Thread affinity strategies
WorkType
Types of parallel work

Functions§

get_numa_topology
Get NUMA topology information
global_work_stealing_pool
Get or create the global work-stealing pool
initialize_global_pool
Initialize the global work-stealing pool with configuration
report_advanced_parallel_capabilities
Report advanced-parallel capabilities