iqm.benchmarks.randomized_benchmarking.direct_rb.direct_rb.generate_fixed_depth_parallel_drb_circuits#
- iqm.benchmarks.randomized_benchmarking.direct_rb.direct_rb.generate_fixed_depth_parallel_drb_circuits(qubits_array: Sequence[Sequence[int]], depth: int, num_circuit_samples: int, backend_arg: str | IQMBackendBase, assigned_density_2q_gates: Dict[str, float], assigned_two_qubit_gate_ensembles: Dict[str, Dict[str, float]], assigned_clifford_sqg_probabilities: Dict[str, float], assigned_sqg_gate_ensembles: Dict[str, Dict[str, float]], cliffords_1q: Dict[str, QuantumCircuit], cliffords_2q: Dict[str, QuantumCircuit], qiskit_optim_level: int = 1, routing_method: Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none'] = 'basic', is_eplg: bool = False) Dict[str, List[QuantumCircuit]] #
- Generates DRB circuits in parallel on multiple qubit layouts.
The circuits follow a layered pattern with barriers, taylored to measure EPLG (arXiv:2311.05933), with layers of random Cliffords interleaved among sampled layers of 2Q gates and sequence inversion.
- Parameters:
qubits_array (Sequence[Sequence[int]]) – The array of physical qubit layouts on which to generate parallel DRB circuits.
depth (int) – The depth (number of canonical DRB layers) of the circuits.
num_circuit_samples (int) – The number of DRB circuits to generate.
backend_arg (str | IQMBackendBase) – The backend on which to generate the circuits.
assigned_density_2q_gates (Dict[str, float]) – The expected densities of 2-qubit gates in the final circuits per qubit layout.
assigned_two_qubit_gate_ensembles (Dict[str, Dict[str, float]]) – The two-qubit gate ensembles to use in the random DRB circuits per qubit layout.
assigned_clifford_sqg_probabilities (Dict[str, float]) – Probability with which to uniformly sample Clifford 1Q gates per qubit layout.
assigned_sqg_gate_ensembles (Dict[str, Dict[str, float]]) – A dictionary with keys being str specifying 1Q gates, and values being corresponding probabilities per qubit layout.
cliffords_1q (Dict[str, QuantumCircuit]) – dictionary of 1-qubit Cliffords in terms of IQM-native r gates.
cliffords_2q (Dict[str, QuantumCircuit]) – dictionary of 2-qubit Cliffords in terms of IQM-native r and CZ gates.
qiskit_optim_level (int) – Qiskit transpiler optimization level. * Defaults to 1.
routing_method (Literal["basic", "lookahead", "stochastic", "sabre", "none"]) – Qiskit transpiler routing method. * Default is “basic”.
is_eplg (bool) – Whether the circuits belong to an EPLG experiment. * If True a single layer is generated. * Default is False.
- Returns:
A dictionary of untranspiled and transpiled lists of parallel (simultaneous) DRB circuits.
- Return type:
Dict[str, List[QuantumCircuit]]