iqm.benchmarks.randomized_benchmarking.eplg.eplg.EPLGConfiguration#

class iqm.benchmarks.randomized_benchmarking.eplg.eplg.EPLGConfiguration(*, benchmark: ~typing.Type[~iqm.benchmarks.benchmark_definition.Benchmark] = <class 'iqm.benchmarks.randomized_benchmarking.eplg.eplg.EPLGBenchmark'>, shots: int = 256, 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, dd_strategy: ~iqm.iqm_client.models.DDStrategy | None = None, drb_depths: ~typing.Sequence[int], drb_circuit_samples: int, custom_qubits_array: ~typing.Sequence[~typing.Tuple[int, int]] | None = None, chain_length: int | None = None, chain_path_samples: int | None = None, num_disjoint_layers: int | None = None, max_hamiltonian_path_tries: int | None = None, calibration_url: str | None = None)#

Bases: BenchmarkConfigurationBase

EPLG Configuration

Parameters:
  • benchmark (Type[Benchmark]) –

  • shots (int) –

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

  • dd_strategy (DDStrategy | None) –

  • drb_depths (Sequence[int]) –

  • drb_circuit_samples (int) –

  • custom_qubits_array (Sequence[Tuple[int, int]] | None) –

  • chain_length (int | None) –

  • chain_path_samples (int | None) –

  • num_disjoint_layers (int | None) –

  • max_hamiltonian_path_tries (int | None) –

  • calibration_url (str | None) –

drb_depths#

The layer depths to consider for the parallel DRB.

Type:

Sequence[int]

drb_circuit_samples#

The number of circuit samples to consider for the parallel DRB.

Type:

int

custom_qubits_array#

The custom qubits array to consider; this corresponds to a Sequence of Tuple pairs of qubits. * If not specified, will proceed to generate linear chains at random, selecting the one with the highest total 2Q gate fidelity. * Default is None.

Type:

Optional[Sequence[Tuple[int, int]]]

chain_length#

The length of a linear chain of 2Q gates to consider, corresponding to the number of qubits, if custom_qubits_array not specified. * Default is None: assigns the number of qubits in the backend minus one.

Type:

Optional[int]

chain_path_samples#

The number of chain path samples to consider, if custom_qubits_array not specified. * Default is None: assigns 20 path samples (arbitrary).

Type:

int

num_disjoint_layers#

The number of disjoint layers to consider. * Default is None: assigns 2 disjoint layers (arbitrary).

Type:

Optional[int]

max_hamiltonian_path_tries#

The maximum number of tries to find a Hamiltonian path. * Default is None: assigns 10 tries (arbitrary).

Type:

Optional[int]

calibration_url#

The URL of the IQM station to retrieve calibration data from. * It must be specified if custom_qubits_array is not specified. * Default is None - raises an error if custom_qubits_array is not specified.

Type:

Optional[str]

Attributes

model_config

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

benchmark

drb_depths

drb_circuit_samples

custom_qubits_array

chain_length

chain_path_samples

num_disjoint_layers

max_hamiltonian_path_tries

calibration_url

shots

max_gates_per_batch

max_circuits_per_batch

calset_id

routing_method

physical_layout

use_dd

dd_strategy

Methods

model_config: ClassVar[ConfigDict] = {}#

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