iqm.benchmarks.benchmark.BenchmarkConfigurationBase#

class iqm.benchmarks.benchmark.BenchmarkConfigurationBase(*, benchmark: Type[BenchmarkBase], shots: int = 256, max_gates_per_batch: int | None = None, calset_id: str | None = None, routing_method: Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none'] = 'sabre', physical_layout: Literal['fixed', 'batching'] = 'fixed')#

Bases: BaseModel

Benchmark configuration base.

Parameters:
  • benchmark (Type[BenchmarkBase]) –

  • 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']) –

benchmark#

the benchmark configuration.

Type:

Type[BenchmarkBase]

shots#

the number of shots to use in circuit execution. * Default for all benchmarks is 2**8.

Type:

int

max_gates_per_batch#

the maximum number of gates per circuit batch. * Default for all benchmarks is None.

Type:

Optional[int]

calset_id#

the calibration ID to use in circuit execution. * Default for all benchmarks is None (uses last available calibration ID).

Type:

Optional[str]

routing_method#

the Qiskit routing method to use in transpilation. * Default for all benchmarks is “sabre”.

Type:

Literal[“basic”, “lookahead”, “stochastic”, “sabre”, “none”]

physical_layout#

whether physical layout is constrained during transpilation to selected physical qubits. - “fixed”: physical layout is constrained during transpilation to the selected initial physical qubits. - “batching”: physical layout is allowed to use any other physical qubits, and circuits are batched according to final measured qubits. * Default for all benchmarks is “fixed”.

Type:

Literal[“fixed”, “batching”]

Attributes

model_computed_fields

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config

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

model_fields

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

benchmark

shots

max_gates_per_batch

calset_id

routing_method

physical_layout

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[BenchmarkBase], required=True), 'calset_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'max_gates_per_batch': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'physical_layout': FieldInfo(annotation=Literal['fixed', 'batching'], required=False, default='fixed'), '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.