iqm.benchmarks.quantum_volume.quantum_volume.QuantumVolumeConfiguration#

class iqm.benchmarks.quantum_volume.quantum_volume.QuantumVolumeConfiguration(*, benchmark: ~typing.Type[~iqm.benchmarks.benchmark_definition.Benchmark] = <class 'iqm.benchmarks.quantum_volume.quantum_volume.QuantumVolumeBenchmark'>, shots: int = 256, quantum_computer: str | None = None, max_gates_per_batch: int | None = None, max_circuits_per_batch: int | None = None, calset_id: str | None = None, routing_method: ~typing.Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none'] = 'sabre', physical_layout: ~typing.Literal['fixed', 'batching'] = 'fixed', use_dd: bool | None = False, active_reset_cycles: int | None = None, dd_strategy: ~iqm.station_control.interface.models.circuit.DDStrategy | None = None, num_circuits: int, num_sigmas: int = 2, choose_qubits_routine: ~typing.Literal['custom'] = 'custom', custom_qubits_array: ~typing.Sequence[~typing.Sequence[int]], qiskit_optim_level: int = 3, optimize_sqg: bool = True, approximation_degree: float = 1.0, rem: bool = True, mit_shots: int = 1000)#

Bases: BenchmarkConfigurationBase

Quantum Volume configuration.

Parameters:
  • benchmark (Type[Benchmark]) –

  • shots (int) –

  • quantum_computer (str | None) –

  • max_gates_per_batch (int | None) –

  • max_circuits_per_batch (int | None) –

  • calset_id (str | None) –

  • routing_method (Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none']) –

  • physical_layout (Literal['fixed', 'batching']) –

  • use_dd (bool | None) –

  • active_reset_cycles (int | None) –

  • dd_strategy (DDStrategy | None) –

  • num_circuits (int) –

  • num_sigmas (int) –

  • choose_qubits_routine (Literal['custom']) –

  • custom_qubits_array (Sequence[Sequence[int]]) –

  • qiskit_optim_level (int) –

  • optimize_sqg (bool) –

  • approximation_degree (float) –

  • rem (bool) –

  • mit_shots (int) –

benchmark#

QuantumVolumeBenchmark

Type:

Type[Benchmark]

num_circuits#

The number of circuits to use. Should be at least 100 for a meaningful QV experiment.

Type:

int

num_sigmas#

The number of sample standard deviations to consider with for the threshold criteria. Default by consensus is 2

Type:

int

choose_qubits_routine#

The routine to select qubit layouts. Default is “custom”.

Type:

Literal[“custom”]

custom_qubits_array#

The physical qubit layouts to perform the benchmark on. Default is [[0, 2]].

Type:

Optional[Sequence[Sequence[int]]]

qiskit_optim_level#

The Qiskit transpilation optimization level. Default is 3.

Type:

int

optimize_sqg#

Whether Single Qubit Gate Optimization is performed upon transpilation. Default is True.

Type:

bool

approximation_degree#

The target fidelity to which arbitrary two qubit gates are approximated.

Type:

float

rem#

Whether Readout Error Mitigation is applied in post-processing. When set to True, both results (readout-unmitigated and -mitigated) are produced. Default is True.

Type:

bool

mit_shots#

The measurement shots to use for readout calibration. Default is 1_000.

Type:

int

Attributes

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

benchmark

num_circuits

num_sigmas

choose_qubits_routine

custom_qubits_array

qiskit_optim_level

optimize_sqg

approximation_degree

rem

mit_shots

shots

quantum_computer

max_gates_per_batch

max_circuits_per_batch

calset_id

routing_method

physical_layout

use_dd

active_reset_cycles

dd_strategy

Methods

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].