Skip to content

system module

qubex.system owns configuration loading and the software-side representation of one concrete instrument setup. It also coordinates synchronization between the in-memory ExperimentSystem and backend controller state.

This page sits under Low-level APIs.

Use system when

  • You want to load configuration files directly or inspect the resulting models
  • ExperimentSystem, QuantumSystem, ControlSystem, targets, or control parameters should be first-class objects
  • You need to compare or synchronize software state and hardware/controller state

Key objects

  • ConfigLoader: loads one selected system and builds an ExperimentSystem
  • ExperimentSystem, QuantumSystem, and ControlSystem: software-side models for chip, wiring, ports, channels, and parameters
  • SystemManager: singleton that owns the active experiment-system state, backend controller, and backend settings
  • Quel1SystemSynchronizer and Quel3SystemSynchronizer: backend-specific synchronizers used by SystemManager

Relationship to the other modules

  • measurement: consumes the loaded system state to build MeasurementSchedule objects and execution flows
  • backend: provides the controller state and runtime endpoints that SystemManager synchronizes against
  1. Prepare your configuration files: System configuration
  2. Read the section overview: Low-level APIs
  3. Start with curated notebooks: system example workflows
  4. Move to measurement when MeasurementSchedule objects or measurement execution flows are the main issue
  5. Move to backend when controller implementations are the main issue

Choose Experiment instead when

  • You want the recommended workflow that hides direct system-model handling
  • You do not need to inspect configuration loading or synchronization details
  • You prefer one facade for setup, execution, and analysis