quantrs2_device/cloud/orchestration/performance/
throughput.rs

1//! Throughput optimization configurations
2
3use super::scaling::ResourceScalingConfig;
4use serde::{Deserialize, Serialize};
5
6/// Throughput optimization configuration
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct ThroughputOptimizationConfig {
9    /// Target throughput
10    pub target_throughput: f64,
11    /// Optimization techniques
12    pub techniques: Vec<ThroughputOptimizationTechnique>,
13    /// Parallelization configuration
14    pub parallelization: ParallelizationConfig,
15    /// Resource scaling
16    pub scaling: ResourceScalingConfig,
17}
18
19/// Throughput optimization techniques
20#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
21pub enum ThroughputOptimizationTechnique {
22    ParallelProcessing,
23    LoadBalancing,
24    ResourceScaling,
25    Caching,
26    Pipelining,
27    Custom(String),
28}
29
30/// Parallelization configuration
31#[derive(Debug, Clone, Serialize, Deserialize)]
32pub struct ParallelizationConfig {
33    /// Max parallel jobs
34    pub max_parallel_jobs: usize,
35    /// Worker pool size
36    pub worker_pool_size: usize,
37    /// Work distribution strategy
38    pub distribution_strategy: WorkDistributionStrategy,
39}
40
41/// Work distribution strategies
42#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
43pub enum WorkDistributionStrategy {
44    RoundRobin,
45    LeastLoaded,
46    WorkStealing,
47    Random,
48    Custom(String),
49}