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, IQMCircuit], cliffords_2q: dict[str, IQMCircuit], qiskit_optim_level: int = 1, routing_method: RoutingMethod = RoutingMethod.BASIC, is_eplg: bool = False) dict[str, list[IQMCircuit]]#
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, IQMCircuit]) – dictionary of 1-qubit Cliffords in terms of IQM-native r gates.
cliffords_2q (dict[str, IQMCircuit]) – dictionary of 2-qubit Cliffords in terms of IQM-native r and CZ gates.
qiskit_optim_level (int) – Qiskit transpiler optimization level.
routing_method (RoutingMethod) – Qiskit transpiler routing method.
is_eplg (bool) – Whether the circuits belong to an EPLG experiment. * If True a single layer is generated.
- Returns:
- A dictionary of untranspiled and transpiled lists of
parallel (simultaneous) DRB circuits.
- Return type:
dict[str, list[IQMCircuit]]