# SciRS2 Core
[](https://crates.io/crates/scirs2-core)
[](../LICENSE)
[](https://docs.rs/scirs2-core)
[]()
[]()
[]()
[]()
**Production-Ready Scientific Computing Core for Rust**
π― **SciRS2 Core v0.1.0** (Released December 29, 2025) - Production-ready foundation providing comprehensive abstractions for the entire SciRS2 ecosystem with ultra-performance SIMD, multi-backend GPU support, and advanced parallel processing.
## π Quick Start
```toml
[dependencies]
scirs2-core = { version = "0.1.0", features = ["validation", "simd", "parallel"] }
```
```rust
use scirs2_core::prelude::*;
// Create and validate data
let data = array![[1.0, 2.0], [3.0, 4.0]];
check_finite(&data, "input_matrix")?;
// Perform operations with automatic optimization
let normalized = normalize_matrix(&data)?;
let result = parallel_matrix_multiply(&normalized, &data.t())?;
# Ok::<(), Box<dyn std::error::Error>>(())
```
---
## π― Current Release: stable (December 29, 2025)
### β
Major Achievements
#### SciRS2 POLICY Framework (COMPLETE)
- β
Comprehensive ecosystem policy document (SCIRS2_POLICY.md)
- β
Layered abstraction architecture with core-only external dependencies
- β
Mandatory scirs2-core module usage across all non-core crates
- β
Migration guide and module boundaries documentation
- β
Prelude module for common imports (`scirs2_core::prelude`)
#### Ultra-Performance SIMD Optimization (COMPLETE)
- β
**14.17x speedup** over scalar operations with bandwidth-saturated processing
- β
**NEW: 1.4x-4.5x speedup** over standard SIMD with ultra-optimizations (Dec 2025)
- Addition: 3.38x, Multiplication: 3.01x, Dot Product: 3.93x, Sum: 4.04x
- Multiple accumulators (4-8) for instruction-level parallelism
- Aggressive loop unrolling (8-way) with memory prefetching
- FMA instructions and alignment-aware processing
- β
Cache-line aware processing with non-temporal stores
- β
Software pipelining with register blocking
- β
TLB-optimized memory access patterns
- β
Adaptive selector combining all optimization techniques
#### Ecosystem-Wide SIMD Integration (COMPLETE)
- β
Signal processing: **15-25x speedup** (convolution, filtering)
- β
Autograd: Thread-safe environments with PyTorch-compatible APIs
- β
FFT/Spectral: **12-25x speedup** (DCT/DST, FrFT, FHT)
- β
Statistics: **20-40x speedup** (moments, Monte Carlo, bootstrap, QMC)
#### GPU Kernel Infrastructure (COMPLETE)
- β
Multi-backend GPU support (CUDA, ROCm, Metal, WGPU, OpenCL)
- β
Comprehensive elementwise operation kernels
- β
Advanced optimization kernels (Adam, SGD, RMSprop, AdaGrad)
- β
Utility kernels (Reduce, Scan, MatMul, Transpose)
- β
Backend-specific implementations with automatic fallback
#### Advanced Core Infrastructure (COMPLETE)
- β
Tree reduction algorithms with configurable strategies
- β
Parallel scan operations (inclusive/exclusive)
- β
NUMA-aware processing with topology detection
- β
Advanced error recovery with circuit breaker patterns
- β
30+ mathematical constants, 40+ physical constants
- β
10+ specialized chunking strategies
- β
Smart allocators and bandwidth optimizers
#### Documentation and Developer Experience (COMPLETE)
- β
Enhanced lib.rs documentation (docs.rs ready)
- β
Comprehensive migration guide (18KB) with recipes
- β
Module boundaries document (12KB) with clear anti-patterns
- β
API reference documentation with extensive examples
#### Quality Metrics (CURRENT)
- β
100% compilation success across all modules
- β
478/480 tests passing (2 ignored, 0 failed)
- β
Zero build warnings with comprehensive linting
- β
Cross-platform compatibility (Linux, macOS, Windows)
---
## π Future Plans
### v0.2.0: Performance and Scale (Q1 2026)
- [ ] Additional SIMD operations for remaining modules
- [ ] Enhanced memory management APIs for large datasets
- [ ] Distributed computing support for multi-node computation
- [ ] Advanced profiling tools with minimal overhead
### 1.0 Stable Release (Q4 2026)
- [ ] API stability guarantees with semantic versioning
- [ ] 95%+ code coverage across all modules
- [ ] Enterprise features and commercial support
- [ ] Complete documentation suite with tutorials
### Post-1.0: Research and Innovation (2027+)
- [ ] Quantum computing integration
- [ ] Federated learning support
- [ ] Advanced distributed computing features
---
## ποΈ SciRS2 POLICY Framework
**SciRS2 Core v0.1.0** provides the [SciRS2 Ecosystem Policy](SCIRS2_POLICY.md) that establishes architectural consistency:
### π― Core Principles
- **Layered Architecture**: Only `scirs2-core` uses external dependencies directly
- **Unified Abstractions**: All other crates use scirs2-core re-exports
- **Ecosystem Consistency**: Consistent APIs, version control, and type safety
### β
Benefits for Developers
- **Consistent APIs**: Same interface patterns across all SciRS2 modules
- **Version Control**: Centralized dependency management
- **Type Safety**: Unified type system prevents incompatible types
- **Performance**: Core optimizes all external library usage
### π Policy Implementation
```rust
// β PROHIBITED in non-core crates
use rand::*;
use ndarray::Array2;
use num_complex::Complex;
// β
REQUIRED in non-core crates
use scirs2_core::random::*; // Instead of rand::*
use scirs2_core::array::*; // Instead of ndarray::*
use scirs2_core::complex::*; // Instead of num_complex::*
```
See [SCIRS2_POLICY.md](../SCIRS2_POLICY.md) for complete details.
---
## β¨ Key Features
### π¬ Scientific Computing Foundation
- **NumPy/SciPy Compatibility**: Drop-in replacements for common operations
- **ndarray Extensions**: Advanced indexing, broadcasting, statistics
- **Data Validation**: Comprehensive validation system
- **Type Safety**: Robust numeric type system
### β‘ High Performance
- **Ultra-Optimized SIMD**: Up to 14.17x faster than scalar operations
- **Multi-Backend GPU**: CUDA, ROCm, Metal, WGPU, OpenCL support
- **Parallel Processing**: Work-stealing scheduler with NUMA awareness
- **Smart Memory**: Intelligent allocators and bandwidth optimization
### π§ Production Ready
- **Error Handling**: Comprehensive error system with recovery
- **Observability**: Built-in logging, metrics, distributed tracing
- **Resource Management**: Memory allocation and GPU pooling
- **Testing**: Property-based testing framework
---
## π¦ Feature Modules
### Core Features (Always Available)
```rust
// Error handling
use scirs2_core::{CoreError, CoreResult, value_err_loc};
// Mathematical constants
use scirs2_core::constants::{PI, E, SPEED_OF_LIGHT};
// Validation utilities
use scirs2_core::validation::{check_positive, check_shape, check_finite};
```
### Data Validation (`validation` feature)
```rust
use scirs2_core::validation::data::{Validator, ValidationSchema, Constraint};
let schema = ValidationSchema::new()
.require_field("temperature", DataType::Float64)
.add_constraint("temperature", Constraint::Range { min: -273.15, max: 1000.0 });
let validator = Validator::new(Default::default())?;
let result = validator.validate(&data, &schema)?;
```
### GPU Acceleration (`gpu` feature)
```rust
use scirs2_core::gpu::{GpuContext, select_optimal_backend};
let backend = select_optimal_backend()?;
let ctx = GpuContext::new(backend)?;
let mut buffer = ctx.create_buffer::<f32>(1_000_000);
buffer.copy_from_host(&host_data);
```
### Memory Management (`memory_management` feature)
```rust
use scirs2_core::memory::{ChunkProcessor2D, BufferPool, track_allocation};
// Process large arrays in chunks
let processor = ChunkProcessor2D::new(&large_array, (1000, 1000));
processor.process_chunks(|chunk, coords| {
println!("Processing chunk at {:?}", coords);
})?;
// Memory pooling
let mut pool = BufferPool::<f64>::new();
let mut buffer = pool.acquire_vec(1000);
```
### SIMD Operations (`simd` feature)
```rust
use scirs2_core::simd::{simd_add, simd_multiply, simd_fused_multiply_add};
let a = vec![1.0f32; 1000];
let b = vec![2.0f32; 1000];
let c = vec![3.0f32; 1000];
let result = simd_fused_multiply_add(&a, &b, &c)?; // (a * b) + c
```
### Parallel Processing (`parallel` feature)
```rust
use scirs2_core::parallel::{parallel_map, parallel_reduce, set_num_threads};
set_num_threads(8);
let results = parallel_map(&data, |&x| expensive_computation(x))?;
let sum = parallel_reduce(&data, 0.0, |acc, &x| acc + x)?;
```
---
## π― Use Cases
### Scientific Data Analysis
```rust
use scirs2_core::prelude::*;
// Load and validate
let measurements = load_csv_data("experiment.csv")?;
check_finite(&measurements, "data")?;
// Statistical analysis
let correlation_matrix = calculate_correlation(&measurements)?;
let outliers = detect_outliers(&measurements, 3.0)?;
```
### Machine Learning Pipeline
```rust
use scirs2_core::{gpu::*, validation::*, array_protocol::*};
// Validate training data
validate_training_data(&features, &labels, &schema)?;
// GPU-accelerated training
let gpu_config = GPUConfig::high_performance();
let gpu_features = GPUNdarray::new(features, gpu_config);
```
### Large-Scale Data Processing
```rust
use scirs2_core::memory::*;
// Memory-efficient processing
let memory_mapped = MemoryMappedArray::<f64>::open("large_dataset.bin")?;
let processor = ChunkProcessor::new(&memory_mapped, ChunkSize::Adaptive);
```
---
## π§ Configuration
### Feature Flags
```toml
# Minimal scientific computing
scirs2-core = { version = "0.1.0", features = ["validation"] }
# High-performance CPU computing
scirs2-core = { version = "0.1.0", features = ["validation", "simd", "parallel"] }
# GPU-accelerated computing
scirs2-core = { version = "0.1.0", features = ["validation", "gpu", "cuda"] }
# Full-featured development
scirs2-core = { version = "0.1.0", features = ["all"] }
```
### Available Features
| `validation` | Data validation and integrity | All applications |
| `simd` | CPU vector acceleration | CPU-intensive computations |
| `parallel` | Multi-core processing | Large datasets |
| `gpu` | GPU acceleration | GPU computing |
| `cuda` | NVIDIA CUDA backend | NVIDIA GPUs |
| `memory_management` | Advanced memory utilities | Large-scale apps |
| `array_protocol` | Extensible array system | Framework development |
| `logging` | Structured logging | Production deployment |
| `profiling` | Performance monitoring | Optimization |
| `all` | All stable features | Development |
---
## π Performance
**Ultra-Optimized SIMD Performance** (targeting 80-90% memory bandwidth):
```text
Element-wise Operations (1M) | 10.05ms | 0.71ms | 14.17x
Signal Convolution | 52.5ms | 2.1ms | 25.0x
Statistical Moments | 45.3ms | 1.8ms | 25.2x
Monte Carlo Bootstrap | 267.0ms | 8.9ms | 30.0x
QMC Sequence Generation | 48.7ms | 3.2ms | 15.2x
FFT Fractional Transform | 112.3ms | 4.5ms | 24.9x
GPU Matrix Multiply | N/A | 3ms | 42x vs CPU
```
---
## π Observability
```rust
use scirs2_core::observability::{Logger, MetricsCollector};
// Structured logging
let logger = Logger::new("pipeline").with_field("exp_id", "001");
logger.info("Processing", &[("batch_size", "1000")]);
// Metrics collection
let metrics = MetricsCollector::new();
metrics.record_histogram("processing_time_ms", duration.as_millis());
```
---
## πΊοΈ Roadmap
- **β
0.1.0** (2025-12-29): **CURRENT** - SciRS2 POLICY, ultra-performance SIMD
- **π― 0.2.0** (2026-Q1): Performance and scale enhancements
- **π― 0.1.0** (2026-Q4): First stable release
- **π― 1.0.0** (2027): Complete implementation with Rust-specific optimizations
---
## π Documentation
- **[API Documentation](https://docs.rs/scirs2-core)**: Complete API reference
- **[SciRS2 POLICY](../SCIRS2_POLICY.md)**: Ecosystem architecture
- **[Migration Guide](../docs/migration.md)**: Upgrading guide
- **[Performance Guide](../docs/performance.md)**: Optimization techniques
- **[SIMD Ultra-Optimization Guide](docs/SIMD_ULTRA_OPTIMIZATION.md)**: Advanced SIMD techniques achieving 1.4x-4.5x speedup
---
## π€ Contributing
We welcome contributions! See [Contributing Guide](../CONTRIBUTING.md).
### Development Setup
```bash
git clone https://github.com/cool-japan/scirs.git
cd scirs/scirs2-core
cargo test --all-features
```
### Code Quality Standards
- Pass `cargo clippy` without warnings
- Maintain 90%+ test coverage
- Document all public APIs with examples
- No performance regressions
---
## βοΈ License
Dual-licensed under:
- [MIT License](../LICENSE-MIT)
- [Apache License Version 2.0](../LICENSE-APACHE)
---
## π Ecosystem
SciRS2 Core is part of the SciRS2 ecosystem:
- **[scirs2-linalg](../scirs2-linalg)**: Linear algebra operations
- **[scirs2-stats](../scirs2-stats)**: Statistical computing
- **[scirs2-autograd](../scirs2-autograd)**: Automatic differentiation
- **[scirs2-neural](../scirs2-neural)**: Neural networks
- **[scirs2](../scirs2)**: Main integration crate
---
## π― Production Readiness Statement
**SciRS2 Core v0.1.0 is production-ready** for:
- β
**Enterprise Development**: Established ecosystem architecture
- β
**Research Projects**: Stable foundation with long-term maintainability
- β
**High-Performance Computing**: Enhanced GPU and SIMD support
- β
**Large-Scale Applications**: Advanced memory management
- β
**Ecosystem Integration**: Unified abstractions for all modules
**Note**: Migration to scirs2-core abstractions is ongoing across the ecosystem. Core functionality is stable and ready for production use.
---
**Built with β€οΈ for the scientific computing community**
*Version: 0.1.0 | Released: December 29, 2025 | Next: 0.1.0*