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, max_gates_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', 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, rem: bool = True, mit_shots: int = 1000)#
Bases:
BenchmarkConfigurationBase
Quantum Volume configuration.
- Parameters:
shots (int) –
max_gates_per_batch (int | None) –
calset_id (str | None) –
routing_method (Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none']) –
physical_layout (Literal['fixed', 'batching']) –
num_circuits (int) –
num_sigmas (int) –
choose_qubits_routine (Literal['custom']) –
qiskit_optim_level (int) –
optimize_sqg (bool) –
rem (bool) –
mit_shots (int) –
- num_circuits#
The number of circuits to use. * Should be at least 100 for a meaningful QV experiment.
- Type:
- num_sigmas#
The number of sample standard deviations to consider with for the threshold criteria. * Default by consensus is 2
- Type:
- 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]]]
- optimize_sqg#
Whether Single Qubit Gate Optimization is performed upon transpilation. * Default is True.
- Type:
- routing_method#
The Qiskit transpilation routing method to use. * Default is “sabre”.
- Type:
Literal[“basic”, “lookahead”, “stochastic”, “sabre”, “none”]
- physical_layout#
Whether the coupling map is restricted to qubits in the input layout or not. - “fixed”: Restricts the coupling map to only the specified qubits. - “batching”: Considers the full coupling map of the backend and circuit execution is batched per final layout. * Default is “fixed”
- Type:
Literal[“fixed”, “batching”]
- 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:
Attributes
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
shots
max_gates_per_batch
calset_id
Methods
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'benchmark': FieldInfo(annotation=Type[Benchmark], required=False, default=<class 'iqm.benchmarks.quantum_volume.quantum_volume.QuantumVolumeBenchmark'>), 'calset_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'choose_qubits_routine': FieldInfo(annotation=Literal['custom'], required=False, default='custom'), 'custom_qubits_array': FieldInfo(annotation=Sequence[Sequence[int]], required=True), 'max_gates_per_batch': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'mit_shots': FieldInfo(annotation=int, required=False, default=1000), 'num_circuits': FieldInfo(annotation=int, required=True), 'num_sigmas': FieldInfo(annotation=int, required=False, default=2), 'optimize_sqg': FieldInfo(annotation=bool, required=False, default=True), 'physical_layout': FieldInfo(annotation=Literal['fixed', 'batching'], required=False, default='fixed'), 'qiskit_optim_level': FieldInfo(annotation=int, required=False, default=3), 'rem': FieldInfo(annotation=bool, required=False, default=True), 'routing_method': FieldInfo(annotation=Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none'], required=False, default='sabre'), 'shots': FieldInfo(annotation=int, required=False, default=256)}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.