Expand description
Execution Engine Configuration System
This module provides comprehensive configuration management for the composable execution engine, including resource constraints, performance goals, fault tolerance settings, and monitoring configurations. The configuration system is designed to be flexible, extensible, and production-ready with validation and best practices built-in.
§Configuration Architecture
The configuration system follows a hierarchical structure:
ExecutionEngineConfig
├── ResourceConstraints // CPU, memory, GPU, network limits
├── PerformanceGoals // Throughput, latency, utilization targets
├── EnergyEfficiencyGoal // Power consumption optimization
├── FaultToleranceConfig // Retry, failover, circuit breaker settings
├── MonitoringConfig // Metrics collection and observability
└── IoLimits // I/O bandwidth and operation limits§Configuration Examples
§High-Performance Computing Configuration
ⓘ
use sklears_compose::execution_config::*;
let config = ExecutionEngineConfig {
name: "hpc_cluster".to_string(),
default_strategy: "distributed".to_string(),
resource_constraints: ResourceConstraints {
max_cpu_cores: Some(128),
max_memory: Some(1024 * 1024 * 1024 * 1024), // 1TB
max_gpu_devices: Some(8),
max_concurrent_tasks: Some(1000),
max_task_time: Some(Duration::from_hours(24)),
memory_limit_per_task: Some(8 * 1024 * 1024 * 1024), // 8GB per task
..Default::default()
},
performance_goals: PerformanceGoals {
target_throughput: Some(10000.0), // 10k tasks/sec
target_latency: Some(1.0), // 1ms avg latency
target_utilization: Some(95.0), // 95% resource utilization
target_efficiency: Some(98.0), // 98% efficiency
..Default::default()
},
energy_efficiency: EnergyEfficiencyGoal {
target_power_consumption: Some(50000.0), // 50kW
enable_power_capping: true,
dynamic_frequency_scaling: true,
energy_aware_scheduling: true,
..Default::default()
},
fault_tolerance: FaultToleranceConfig {
enable_retry: true,
max_retries: 5,
backoff_strategy: BackoffStrategy::ExponentialWithJitter {
base_delay: Duration::from_millis(100),
max_delay: Duration::from_secs(60),
jitter_factor: 0.1,
},
enable_circuit_breaker: true,
circuit_breaker_threshold: 50,
enable_failover: true,
failover_targets: vec!["backup_cluster".to_string()],
health_check: HealthCheckConfig {
enabled: true,
interval: Duration::from_secs(30),
timeout: Duration::from_secs(5),
failure_threshold: 3,
recovery_threshold: 2,
},
..Default::default()
},
monitoring: MonitoringConfig {
collection_interval: Duration::from_secs(1),
enable_detailed_metrics: true,
enable_distributed_tracing: true,
enable_profiling: true,
export_prometheus: true,
export_jaeger: true,
custom_metrics: vec!["gpu_utilization", "memory_bandwidth"].iter().map(|s| s.to_string()).collect(),
..Default::default()
},
io_limits: IoLimits {
max_read_bandwidth: Some(100 * 1024 * 1024 * 1024), // 100 GB/s
max_write_bandwidth: Some(80 * 1024 * 1024 * 1024), // 80 GB/s
max_iops: Some(1000000), // 1M IOPS
max_concurrent_io: Some(10000),
io_priority: IoPriority::High,
..Default::default()
},
};§Edge Computing Configuration
ⓘ
let edge_config = ExecutionEngineConfig {
name: "edge_device".to_string(),
default_strategy: "streaming".to_string(),
resource_constraints: ResourceConstraints {
max_cpu_cores: Some(4),
max_memory: Some(8 * 1024 * 1024 * 1024), // 8GB
max_concurrent_tasks: Some(50),
max_task_time: Some(Duration::from_secs(30)),
memory_limit_per_task: Some(100 * 1024 * 1024), // 100MB per task
..Default::default()
},
energy_efficiency: EnergyEfficiencyGoal {
target_power_consumption: Some(50.0), // 50W
enable_power_capping: true,
dynamic_frequency_scaling: true,
thermal_throttling: true,
..Default::default()
},
performance_goals: PerformanceGoals {
target_latency: Some(10.0), // 10ms for real-time processing
target_efficiency: Some(85.0),
..Default::default()
},
..Default::default()
};§Development Configuration
ⓘ
let dev_config = ExecutionEngineConfig {
name: "development".to_string(),
default_strategy: "sequential".to_string(),
resource_constraints: ResourceConstraints {
max_cpu_cores: Some(2),
max_memory: Some(4 * 1024 * 1024 * 1024), // 4GB
max_concurrent_tasks: Some(10),
..Default::default()
},
monitoring: MonitoringConfig {
collection_interval: Duration::from_secs(5),
enable_detailed_metrics: true,
enable_debug_logging: true,
..Default::default()
},
fault_tolerance: FaultToleranceConfig {
enable_retry: true,
max_retries: 2,
backoff_strategy: BackoffStrategy::Linear {
delay: Duration::from_millis(500),
},
..Default::default()
},
..Default::default()
};Structs§
- Alert
Channel - Alert channel configuration
- Alert
Rate Limit - Alert rate limiting configuration
- Alert
Rule - Alert rule definition
- Alerting
Config - Alerting system configuration
- Carbon
Awareness - Carbon footprint awareness settings
- Energy
Efficiency Goal - Energy efficiency optimization goals
- Execution
Engine Config - Main configuration for the execution engine
- Fault
Tolerance Config - Fault tolerance and reliability configuration
- Health
Check Config - Health check configuration
- Health
Check Endpoint - Health check endpoint configuration
- IoCompression
- I/O compression settings
- IoLimits
- I/O operation limits and constraints
- Monitoring
Config - Monitoring and observability configuration
- Performance
Goals - Performance optimization goals and targets
- Resource
Constraints - Resource allocation constraints and limits
- Sampling
Config - Sampling configuration for tracing
Enums§
- Alert
Priority - Alert priority levels
- Alert
Severity - Alert severity levels
- Backoff
Strategy - Backoff strategies for retry mechanisms
- Comparison
Operator - Comparison operators for alert rules
- Compression
Algorithm - Compression algorithms
- Failure
Detection Strategy - Failure detection strategies
- IoPriority
- I/O priority levels
- IoScheduler
- I/O scheduler types
- Performance
Mode - Performance optimization modes
- Power
Mode - Power consumption modes
- Quality
OfService - Quality of Service levels
- Recovery
Strategy - Recovery strategies after failures
- Resource
Isolation Mode - Resource isolation modes
Type Aliases§
- Default
Execution Engine Config - Type alias for convenient default configuration