quantrs2_device/cloud/orchestration/performance/
throughput.rs1use super::scaling::ResourceScalingConfig;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct ThroughputOptimizationConfig {
9 pub target_throughput: f64,
11 pub techniques: Vec<ThroughputOptimizationTechnique>,
13 pub parallelization: ParallelizationConfig,
15 pub scaling: ResourceScalingConfig,
17}
18
19#[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#[derive(Debug, Clone, Serialize, Deserialize)]
32pub struct ParallelizationConfig {
33 pub max_parallel_jobs: usize,
35 pub worker_pool_size: usize,
37 pub distribution_strategy: WorkDistributionStrategy,
39}
40
41#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
43pub enum WorkDistributionStrategy {
44 RoundRobin,
45 LeastLoaded,
46 WorkStealing,
47 Random,
48 Custom(String),
49}