Skip to main content

quantrs2_sim/automatic_parallelization/
autoparallelengine_predict_parallelization_strategy_group.rs

1//! # AutoParallelEngine - predict_parallelization_strategy_group Methods
2//!
3//! This module contains method implementations for `AutoParallelEngine`.
4//!
5//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
6
7use super::types::{MLFeatures, MLPredictedStrategy};
8
9use super::autoparallelengine_type::AutoParallelEngine;
10
11impl AutoParallelEngine {
12    /// Predict optimal parallelization strategy based on ML features
13    pub(super) fn predict_parallelization_strategy(features: &MLFeatures) -> MLPredictedStrategy {
14        if features.parallelism_factor > 0.7 && features.avg_connectivity < 2.0 {
15            return MLPredictedStrategy::HighParallelism;
16        }
17        if features.circuit_depth < (features.num_gates as f64 * 0.3) as usize {
18            return MLPredictedStrategy::LayerOptimized;
19        }
20        if features.avg_connectivity > 3.5 || features.dependency_density > 0.6 {
21            return MLPredictedStrategy::ConservativeParallelism;
22        }
23        MLPredictedStrategy::BalancedParallelism
24    }
25}