iqm.benchmarks.quantum_volume.clops.CLOPSConfiguration#

class iqm.benchmarks.quantum_volume.clops.CLOPSConfiguration(*, benchmark: ~typing.Type[~iqm.benchmarks.benchmark_definition.Benchmark] = <class 'iqm.benchmarks.quantum_volume.clops.CLOPSBenchmark'>, 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', qubits: ~typing.Sequence[int], num_circuits: int = 100, num_updates: int = 10, num_shots: int = 100, clops_h_bool: bool = False, qiskit_optim_level: int = 3, optimize_sqg: bool = True)#

Bases: BenchmarkConfigurationBase

CLOPS configuration.

Parameters:
  • benchmark (Type[Benchmark]) –

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

  • qubits (Sequence[int]) –

  • num_circuits (int) –

  • num_updates (int) –

  • num_shots (int) –

  • clops_h_bool (bool) –

  • qiskit_optim_level (int) –

  • optimize_sqg (bool) –

benchmark#

CLOPS Benchmark.

Type:

Type[Benchmark]

qubits#

The Sequence (List or Tuple) of physical qubit labels in which to run the benchmark. * The physical qubit layout should correspond to the one used to establish QV.

Type:

Sequence[int]

num_circuits#

The number of parametrized circuit layouts. * By definition of arXiv:2110.14108 [quant-ph] set to 100.

Type:

int

num_updates#

The number of parameter assignment updates per circuit layout to perform. * By definition of arXiv:2110.14108 [quant-ph] set to 10.

Type:

int

num_shots#

The number of measurement shots per circuit to perform. * By definition of arXiv:2110.14108 [quant-ph] set to 100.

Type:

int

clops_h_bool#

Whether a CLOPS value with layer definition of CLOPS_H is estimated. * Default is False * This will not estimate a rigorous CLOPS_H value (as loosely defined in www.ibm.com/quantum/blog/quantum-metric-layer-fidelity)

Type:

bool

qiskit_optim_level#

The Qiskit transpilation optimization level. * The optimization level should correspond to the one used to establish QV. * Default is 3.

Type:

int

optimize_sqg#

Whether Single Qubit Gate Optimization is performed upon transpilation. * The optimize_sqg value should correspond to the one used to establish QV. * Default is True

Type:

bool

routing_method#

The Qiskit transpilation routing method to use. * The routing_method value should correspond to the one used to establish QV. * 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”]

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

qubits

num_circuits

num_updates

num_shots

clops_h_bool

qiskit_optim_level

optimize_sqg

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[Benchmark], required=False, default=<class 'iqm.benchmarks.quantum_volume.clops.CLOPSBenchmark'>), 'calset_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'clops_h_bool': FieldInfo(annotation=bool, required=False, default=False), 'max_gates_per_batch': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'num_circuits': FieldInfo(annotation=int, required=False, default=100), 'num_shots': FieldInfo(annotation=int, required=False, default=100), 'num_updates': FieldInfo(annotation=int, required=False, default=10), '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), 'qubits': FieldInfo(annotation=Sequence[int], required=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.