Skip to main content

quantrs2_sim/automatic_parallelization/
autoparallelconfig_traits.rs

1//! # AutoParallelConfig - Trait Implementations
2//!
3//! This module contains trait implementations for `AutoParallelConfig`.
4//!
5//! ## Implemented Traits
6//!
7//! - `Default`
8//!
9//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
10
11use super::types::{
12    AutoParallelConfig, LoadBalancingConfig, OptimizationLevel, ParallelizationStrategy,
13    ResourceConstraints,
14};
15use scirs2_core::parallel_ops::current_num_threads;
16
17impl Default for AutoParallelConfig {
18    fn default() -> Self {
19        Self {
20            max_threads: current_num_threads(),
21            min_gates_for_parallel: 10,
22            strategy: ParallelizationStrategy::DependencyAnalysis,
23            resource_constraints: ResourceConstraints::default(),
24            enable_inter_layer_parallel: true,
25            enable_gate_fusion: true,
26            scirs2_optimization_level: OptimizationLevel::Aggressive,
27            load_balancing: LoadBalancingConfig::default(),
28            enable_analysis_caching: true,
29            memory_budget: 4 * 1024 * 1024 * 1024,
30        }
31    }
32}