From 2da3b699be48b241b8a9e35c7be56bdc7e9afc53 Mon Sep 17 00:00:00 2001 From: Vincent Michaud-Rioux Date: Mon, 17 Jun 2024 10:34:44 -0400 Subject: [PATCH] MCM - tree-traversal implementation of native MCM execution (#5180) ### Before submitting Please complete the following checklist when submitting a PR: - [x] All new features must include a unit test. If you've fixed a bug or added code that should be tested, add a test to the test directory! - [x] All new functions and code must be clearly commented and documented. If you do make documentation changes, make sure that the docs build and render correctly by running `make docs`. - [x] Ensure that the test suite passes, by running `make test`. - [x] Add a new entry to the `doc/releases/changelog-dev.md` file, summarizing the change, and including a link back to the PR. - [x] The PennyLane source code conforms to [PEP8 standards](https://www.python.org/dev/peps/pep-0008/). We check all of our code against [Pylint](https://www.pylint.org/). To lint modified files, simply `pip install pylint`, and then run `pylint pennylane/path/to/file.py`. When all the above are checked, delete everything above the dashed line and fill in the pull request template. ------------------------------------------------------------------------------------------------------------ **Context:** Native MCM execution is slow because executing `n_shots` tapes is generally redundant and has a lot of overheads. **Description of the Change:** Introduce `simulate_tree_mcm` and make it the default execution mode when using finite shots & MCMs. `dynamic_one_shot` can still be applied explicitly as a transform. `simulate_tree_mcm` implements a "high-memory" depth-first tree-traversal algorithm. It is deemed high-memory because a copy of the state vector is made at every node in the tree. Since this is a depth first traversal, it incurs a memory cost proportional to `(n_mcm + 1) 2 ** n_qubit` to store the state vectors at any moment. **Benefits:** Much faster execution in almost any case. Opens avenues for improvement and other features, for example low-memory depth-first tree-traversal, high-prob-first traversal, quantum noise simulations. Here are some benchmarks to illustrate the gains. The following synthetic workloads shows that for small circuits with not too many MCM, deferred measurements is best. The tree-traversal approach is slower than deferred measurements, but much faster than the one-shot implementation. ![synthetic_time_vs_shots](https://github.com/PennyLaneAI/pennylane/assets/8711156/ad32a445-68b7-4823-b1ff-a14d87c020bf) A more meaningful example is to run iterative QPE for 10 iterations with a varying number of shots. The one-shot implementation is again sluggish. The tree-traversal implementation does better, but appears to scale worst then deferred measurements, again the fastest. ![iterqpe_time_vs_shots](https://github.com/PennyLaneAI/pennylane/assets/8711156/8cf92fe5-84dd-43fe-9ac1-70c990080910) The picture changes when running iterative QPE with 1e6 samples for varying iterations. We do not perform one-shot benchmarks since it is too slow. The tree-traversal implementation is indeed much slower in the 10-20 iteration range, but starts winning over deferred measurements beyond that. It thus appears to have a larger prefactor which is eventually compensated by slightly better scaling. ![iterqpe_time_vs_iters](https://github.com/PennyLaneAI/pennylane/assets/8711156/836fb41f-492b-4c59-ba00-4d23a191e111) Finally, we perform few-shots calculations to illustrate regimes where one-shot could be useful. There is indeed an observable cross-over between one-shot and deferred-measurements. The tree traversal implementation however is usually faster even with few shots because it then has a limited number of branches to explore before running out of shots. ![iterqpe_time_vs_iters_all](https://github.com/PennyLaneAI/pennylane/assets/8711156/2bf338a7-e79c-46fc-929e-9e1f326e6915) **Possible Drawbacks:** Some features not tested yet: - `jax.jit` - Catalyst `qjit` **Related GitHub Issues:** Mid circuit Measurements tree traversal implementation [sc-56035] [sc-65242] --------- Co-authored-by: Mudit Pandey Co-authored-by: Christina Lee Co-authored-by: Matthew Silverman Co-authored-by: Thomas R. Bromley <49409390+trbromley@users.noreply.github.com> --- .github/workflows/core_tests_durations.json | 794 +++++++++++++++--- .github/workflows/format.yml | 4 +- .pre-commit-config.yaml | 2 + doc/introduction/measurements.rst | 61 +- doc/releases/changelog-dev.md | 6 + pennylane/devices/default_qubit.py | 5 +- pennylane/devices/execution_config.py | 8 +- pennylane/devices/preprocess.py | 2 + pennylane/devices/qubit/simulate.py | 394 ++++++++- pennylane/fourier/reconstruct.py | 2 +- pennylane/math/multi_dispatch.py | 1 + pennylane/math/single_dispatch.py | 1 + pennylane/math/utils.py | 1 + pennylane/ops/qubit/observables.py | 2 +- pennylane/ops/qubit/state_preparation.py | 2 +- pennylane/ops/qutrit/state_preparation.py | 2 +- pennylane/transforms/broadcast_expand.py | 11 + .../transforms/core/transform_program.py | 2 +- pennylane/workflow/qnode.py | 8 +- .../test_default_qubit_native_mcm.py | 180 ++-- tests/math/test_multi_dispatch.py | 14 +- tests/ops/functions/test_iterative_qpe.py | 8 +- tests/test_qnode.py | 39 +- 23 files changed, 1324 insertions(+), 225 deletions(-) diff --git a/.github/workflows/core_tests_durations.json b/.github/workflows/core_tests_durations.json index 0fccab47551..bd00edf8f6f 100644 --- a/.github/workflows/core_tests_durations.json +++ b/.github/workflows/core_tests_durations.json @@ -431,74 +431,74 @@ "devices/default_qubit/test_default_qubit.py::test_shots": 0.0008406660053879023, "devices/default_qubit/test_default_qubit.py::test_snapshot_multiprocessing_qnode": 0.0019324159366078675, "devices/default_qubit/test_default_qubit.py::test_wires": 0.0009905410115607083, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_all_invalid_shots_circuit": 0.03325160685926676, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_apply_mid_measure": 0.001578901894390583, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-0-5000]": 16.513646537438035, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-0-shots1]": 33.306605567224324, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-1-5000]": 16.565010542981327, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-1-shots1]": 32.839148671366274, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_all_invalid_shots_circuit": 0.04386312793940306, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_apply_mid_measure": 0.0019025849178433418, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-0-5000]": 17.171735398471355, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-0-shots1]": 32.704121456481516, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-1-5000]": 17.629055568017066, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-1-shots1]": 33.866626704111695, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-False-0-5000]": 15.069034583983012, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-False-0-shots1]": 27.794016082014423, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-False-1-5000]": 13.224076666054316, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-False-1-shots1]": 26.027715917036403, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-False-None-5000]": 17.101044374052435, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-False-None-shots1]": 33.16540904098656, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-None-5000]": 16.17642442137003, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-None-shots1]": 32.80927411094308, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-None-5000]": 17.452519516460598, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-None-shots1]": 33.86604242026806, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-True-0-5000]": 15.287966041942127, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-True-0-shots1]": 27.635410957969725, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-True-1-5000]": 13.360600832966156, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-True-1-shots1]": 26.215543249971233, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-True-None-5000]": 20.38937812502263, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[counts-True-None-shots1]": 38.57516854198184, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-0-5000]": 16.254472555592656, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-0-shots1]": 33.06658190023154, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-1-5000]": 16.471506497822702, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-1-shots1]": 33.46235174871981, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-0-5000]": 17.400157620199025, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-0-shots1]": 33.02163822762668, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-1-5000]": 17.0034189093858, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-1-shots1]": 32.730486342683434, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-False-0-5000]": 14.301493123988621, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-False-0-shots1]": 27.343687709013466, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-False-1-5000]": 13.193581123952754, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-False-1-shots1]": 25.080517040973064, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-False-None-5000]": 17.043722708069254, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-False-None-shots1]": 33.17126958403969, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-None-5000]": 16.115929794497788, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-None-shots1]": 32.50702520273626, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-None-5000]": 17.675161531195045, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-None-shots1]": 33.36122839059681, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-True-0-5000]": 14.319941000023391, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-True-0-shots1]": 27.315214208967518, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-True-1-5000]": 13.272538832912687, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-True-1-shots1]": 25.12490983400494, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-True-None-5000]": 16.90133887605043, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[expval-True-None-shots1]": 32.1799342079903, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-0-5000]": 14.897745435126126, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-0-shots1]": 28.503125244751573, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-1-5000]": 14.068841201253235, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-1-shots1]": 29.118689633905888, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-0-5000]": 15.381235375069082, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-0-shots1]": 30.241009406745434, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-1-5000]": 14.739672463387251, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-1-shots1]": 29.403979482129216, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-False-0-5000]": 15.068979333038442, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-False-0-shots1]": 28.188860541034956, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-False-1-5000]": 13.011235499929171, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-False-1-shots1]": 24.42127704201266, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-False-None-5000]": 15.623596666031517, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-False-None-shots1]": 30.483081124024466, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-None-5000]": 14.525046955794096, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-None-shots1]": 28.908122551627457, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-None-5000]": 15.522974468767643, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-None-shots1]": 30.172812002710998, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-True-0-5000]": 13.902357999002561, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-True-0-shots1]": 26.391798999975435, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-True-1-5000]": 13.54927525005769, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-True-1-shots1]": 24.384362624958158, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-True-None-5000]": 15.780812332988717, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[probs-True-None-shots1]": 30.312351290951483, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-0-5000]": 0.000690915621817112, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-0-shots1]": 0.0007033161818981171, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-1-5000]": 0.0009722840040922165, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-1-shots1]": 0.0008194856345653534, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-0-5000]": 0.0006279563531279564, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-0-shots1]": 0.000574096105992794, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-1-5000]": 0.0007581831887364388, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-1-shots1]": 0.0005735354498028755, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-False-0-5000]": 0.001161875028628856, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-False-0-shots1]": 0.001055083004757762, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-False-1-5000]": 0.0011539990664459765, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-False-1-shots1]": 0.0011287919478490949, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-False-None-5000]": 16.623112667002715, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-False-None-shots1]": 32.10896137502277, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-None-5000]": 16.06145597435534, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-None-shots1]": 32.193285572342575, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-None-5000]": 16.491500503383577, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-None-shots1]": 32.472816007211804, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-True-0-5000]": 0.0012590840342454612, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-True-0-shots1]": 0.0010909169213846326, "devices/default_qubit/test_default_qubit_native_mcm.py::test_broadcasting_qnode[sample-True-1-5000]": 0.001007041020784527, @@ -721,72 +721,174 @@ "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcm_single_measure_obs[var-True-None-6000]": 13.714967083011288, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcm_single_measure_obs[var-True-None-None]": 0.023883084068074822, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcm_single_measure_obs[var-True-None-shots2]": 33.383946000016294, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-0-one-shot]": 2.4670495577156544, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-0-tree-traversal]": 0.006826827302575111, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-0]": 2.429710472933948, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-1-one-shot]": 2.5022043166682124, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-1-tree-traversal]": 0.00898322369903326, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-1]": 2.4180651446804404, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-2-one-shot]": 2.6501363487914205, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-2-tree-traversal]": 0.007366902194917202, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-2]": 2.389318607747555, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-3-one-shot]": 2.5506036607548594, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-3-tree-traversal]": 0.0068277958780527115, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-3]": 2.4824551306664944, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-4-one-shot]": 2.4924470726400614, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-4-tree-traversal]": 0.006986435502767563, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-4]": 2.743735607713461, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-5-one-shot]": 2.4946051631122828, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-5-tree-traversal]": 0.007191171869635582, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-5]": 2.3931240923702717, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-list-one-shot]": 2.5921547608450055, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-list-tree-traversal]": 0.01773313246667385, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-list]": 2.3831167789176106, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-mix-one-shot]": 2.496355339884758, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-mix-tree-traversal]": 0.008413865230977535, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[counts-mix]": 2.390948007814586, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-0-one-shot]": 2.493184883147478, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-0-tree-traversal]": 0.00709119625389576, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-0]": 2.297364726662636, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-1-one-shot]": 2.634956207126379, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-1-tree-traversal]": 0.0075710229575634, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-1]": 2.3276586774736643, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-2-one-shot]": 2.596791060641408, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-2-tree-traversal]": 0.006657998077571392, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-2]": 2.298985267058015, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-3-one-shot]": 2.546478102914989, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-3-tree-traversal]": 0.006349151022732258, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-3]": 2.340599169023335, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-4-one-shot]": 2.647749789059162, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-4-tree-traversal]": 0.00972097460180521, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-4]": 2.3457882422953844, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-5-one-shot]": 2.5644700033590198, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-5-tree-traversal]": 0.0064321598038077354, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-5]": 2.3415179792791605, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-list-one-shot]": 0.0006018849089741707, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-list-tree-traversal]": 0.0009988006204366684, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-list]": 0.000825095921754837, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-mix-one-shot]": 0.0006742635741829872, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-mix-tree-traversal]": 0.000612105242908001, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[expval-mix]": 0.000683346763253212, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-0-one-shot]": 2.5493305008858442, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-0-tree-traversal]": 0.009130080230534077, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-0]": 2.391778371296823, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-1-one-shot]": 2.5288269808515906, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-1-tree-traversal]": 0.0061570825055241585, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-1]": 2.4001881210133433, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-2-one-shot]": 2.5555254323408008, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-2-tree-traversal]": 0.006488357670605183, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-2]": 2.247742049396038, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-3-one-shot]": 2.460431016050279, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-3-tree-traversal]": 0.006400531157851219, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-3]": 2.4268662109971046, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-4-one-shot]": 2.4771709088236094, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-4-tree-traversal]": 0.0064217709004879, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-4]": 2.3266108874231577, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-5-one-shot]": 2.5163814118131995, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-5-tree-traversal]": 0.006581689231097698, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-5]": 2.2874692687764764, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-list-one-shot]": 2.618548064492643, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-list-tree-traversal]": 0.0069948164746165276, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-list]": 2.6195129631087184, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-mix-one-shot]": 0.0008662734180688858, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-mix-tree-traversal]": 0.0006933156400918961, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[probs-mix]": 0.0007312549278140068, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-0-one-shot]": 3.221352552063763, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-0-tree-traversal]": 0.006445599719882011, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-0]": 2.3591198679059744, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-1-one-shot]": 2.7031937884166837, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-1-tree-traversal]": 0.0063342200592160225, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-1]": 2.3498571505770087, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-2-one-shot]": 2.581689450889826, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-2-tree-traversal]": 0.006129241548478603, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-2]": 2.3914223043248057, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-3-one-shot]": 2.487254702486098, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-3-tree-traversal]": 0.006437569856643677, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-3]": 2.489515391178429, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-4-one-shot]": 2.5661848476156592, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-4-tree-traversal]": 0.006029444746673107, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-4]": 2.4114771774038672, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-5-one-shot]": 2.487158630974591, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-5-tree-traversal]": 0.006260420195758343, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-5]": 2.5248756585642695, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-list-one-shot]": 2.655963926576078, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-list-tree-traversal]": 0.006502073258161545, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-list]": 2.3869324289262295, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-mix-one-shot]": 2.602091151289642, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-mix-tree-traversal]": 0.008008278906345367, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[sample-mix]": 2.3364377124235034, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-0-one-shot]": 2.488186744041741, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-0-tree-traversal]": 0.006180492229759693, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-0]": 2.267135783098638, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-1-one-shot]": 2.58079996611923, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-1-tree-traversal]": 0.006417679600417614, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-1]": 2.35351618938148, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-2-one-shot]": 2.5283403526991606, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-2-tree-traversal]": 0.00645856186747551, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-2]": 2.5417443132027984, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-3-one-shot]": 2.6003653863444924, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-3-tree-traversal]": 0.006456438452005386, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-3]": 2.328757543116808, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-4-one-shot]": 2.4672593334689736, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-4-tree-traversal]": 0.006239535287022591, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-4]": 2.4183406932279468, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-5-one-shot]": 3.060449132695794, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-5-tree-traversal]": 0.006347650662064552, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-5]": 2.7006020564585924, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-list-one-shot]": 0.000634465366601944, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-list-tree-traversal]": 0.0007264930754899979, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-list]": 0.000551796518266201, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-mix-one-shot]": 0.0006666630506515503, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-mix-tree-traversal]": 0.0006151953712105751, "devices/default_qubit/test_default_qubit_native_mcm.py::test_composite_mcms[var-mix]": 0.0006719380617141724, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[0-one-shot]": 0.018154600635170937, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[0-tree-traversal]": 0.006026904098689556, "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[0]": 0.033171396702528, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[1-one-shot]": 0.017990222200751305, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[1-tree-traversal]": 0.005848073400557041, "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[1]": 0.03279877360910177, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[2-one-shot]": 0.0188918923959136, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[2-tree-traversal]": 0.006288591772317886, "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[2]": 0.01653823908418417, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[3-one-shot]": 0.034152946434915066, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[3-tree-traversal]": 0.0063752103596925735, "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[3]": 0.017224472016096115, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[4-one-shot]": 0.018466737121343613, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[4-tree-traversal]": 0.006311049684882164, "devices/default_qubit/test_default_qubit_native_mcm.py::test_counts_return_type[4]": 0.016813783906400204, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[False-1-None]": 8.40738270059228, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[False-1-best]": 2.178649175912142, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[False-None-None]": 8.398601597175002, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[False-None-best]": 1.9517720974981785, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[True-1-None]": 8.52693992946297, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[True-1-best]": 2.2746765837073326, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[True-None-None]": 8.1268654121086, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[True-None-best]": 2.164351414889097, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[False-1-None]": 8.701267456635833, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[False-1-best]": 0.4346816670149565, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[False-None-None]": 8.479413801804185, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[False-None-best]": 0.3435737295076251, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[True-1-None]": 9.186915797181427, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[True-1-best]": 0.7016822891309857, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[True-None-None]": 8.694049460813403, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_jax_jit[True-None-best]": 0.35394832119345665, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[False-0-one-shot]": 12.512869494967163, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[False-0-tree-traversal]": 0.015310530550777912, "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[False-0]": 11.894975237548351, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[False-1-one-shot]": 12.135053020901978, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[False-1-tree-traversal]": 0.014096340164542198, "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[False-1]": 11.920780441723764, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[False-None-one-shot]": 12.260711895301938, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[False-None-tree-traversal]": 0.018022180534899235, "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[False-None]": 11.953474787063897, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[True-0-one-shot]": 12.377810364589095, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[True-0-tree-traversal]": 0.015318752266466618, "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[True-0]": 12.075859801843762, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[True-1-one-shot]": 12.903444398194551, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[True-1-tree-traversal]": 0.014715345576405525, "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[True-1]": 11.864051403477788, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[True-None-one-shot]": 12.505643264390528, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[True-None-tree-traversal]": 0.03378926869481802, "devices/default_qubit/test_default_qubit_native_mcm.py::test_multiple_measurements_and_reset[True-None]": 12.422202901914716, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_broadcasting_and_postselection_error": 0.0018141893669962883, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[0-100]": 2.712998019531369, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[0-shots1]": 4.262346688657999, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[1-100]": 2.9182209661230445, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[1-shots1]": 2.5791503516957164, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[None-100]": 2.9587944336235523, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[None-shots1]": 4.042104718275368, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_broadcasting_and_postselection_error": 0.001661514863371849, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[0-100]": 3.2363497633486986, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[0-shots1]": 2.795374985784292, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[1-100]": 2.769885673187673, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[1-shots1]": 2.6861702911555767, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[None-100]": 2.839251167140901, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_sample_with_prng_key[None-shots1]": 3.1301913540810347, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_composite_mcm[counts-0]": 2.854311915987637, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_composite_mcm[counts-1]": 2.7954703759751283, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_composite_mcm[counts-2]": 2.797857666038908, @@ -818,244 +920,724 @@ "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_composite_mcm[var-4]": 2.808311832952313, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_composite_mcm[var-5]": 2.8162617500056513, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-0-5000]": 5.75720186997205, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-0-5500-one-shot]": 6.167673750780523, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-0-5500-tree-traversal]": 0.011468470096588135, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-0-shots1-one-shot]": 13.138807677663863, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-0-shots1-tree-traversal]": 0.012892509810626507, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-0-shots1]": 10.888733151368797, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-1-5000]": 5.358091090805829, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-1-5500-one-shot]": 6.598576565273106, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-1-5500-tree-traversal]": 0.011441830545663834, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-1-shots1-one-shot]": 12.733769840560853, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-1-shots1-tree-traversal]": 0.011475571431219578, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-1-shots1]": 10.891654059290886, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-None-5000]": 5.421691458672285, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-None-5500-one-shot]": 6.4914386961609125, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-None-5500-tree-traversal]": 0.013928331434726715, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-None-shots1-one-shot]": 12.325369754806161, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-None-shots1-tree-traversal]": 0.015767867676913738, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-counts-None-shots1]": 10.798191129229963, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-0-5000]": 5.380425555631518, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-0-5500-one-shot]": 6.194583253934979, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-0-5500-tree-traversal]": 0.010276650078594685, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-0-shots1-one-shot]": 12.335492199286819, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-0-shots1-tree-traversal]": 0.010834543965756893, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-0-shots1]": 10.657752524130046, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-1-5000]": 5.269884718582034, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-1-5500-one-shot]": 6.2314846478402615, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-1-5500-tree-traversal]": 0.01039591059088707, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-1-shots1-one-shot]": 12.172153822146356, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-1-shots1-tree-traversal]": 0.010548396967351437, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-1-shots1]": 10.413764377124608, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-None-5000]": 5.370056629180908, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-None-5500-one-shot]": 6.43288204818964, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-None-5500-tree-traversal]": 0.012739063240587711, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-None-shots1-one-shot]": 12.572548683732748, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-None-shots1-tree-traversal]": 0.013438246212899685, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-expval-None-shots1]": 10.889373756945133, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-0-5000]": 5.204112496227026, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-0-5500-one-shot]": 6.3411785792559385, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-0-5500-tree-traversal]": 0.010233651846647263, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-0-shots1-one-shot]": 12.308234018273652, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-0-shots1-tree-traversal]": 0.011185633949935436, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-0-shots1]": 11.062088475562632, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-1-5000]": 5.448910696431994, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-1-5500-one-shot]": 6.413167078047991, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-1-5500-tree-traversal]": 0.010342421010136604, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-1-shots1-one-shot]": 12.340496239252388, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-1-shots1-tree-traversal]": 0.01069104578346014, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-1-shots1]": 10.82665590569377, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-None-5000]": 5.170089564286172, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-None-5500-one-shot]": 6.244781734421849, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-None-5500-tree-traversal]": 0.012159444391727448, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-None-shots1-one-shot]": 12.108425223268569, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-None-shots1-tree-traversal]": 0.014079571701586246, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-probs-None-shots1]": 11.042942147701979, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-0-5000]": 5.354727336205542, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-0-5500-one-shot]": 6.204790694639087, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-0-5500-tree-traversal]": 0.01145074050873518, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-0-shots1-one-shot]": 12.370144230313599, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-0-shots1-tree-traversal]": 0.011323212645947933, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-0-shots1]": 10.736898696050048, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-1-5000]": 5.617085698992014, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-1-5500-one-shot]": 6.170916303992271, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-1-5500-tree-traversal]": 0.00986931286752224, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-1-shots1-one-shot]": 12.617452130652964, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-1-shots1-tree-traversal]": 0.010381380096077919, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-1-shots1]": 10.479556249454618, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-None-5000]": 5.291481419466436, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-None-5500-one-shot]": 6.954175692982972, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-None-5500-tree-traversal]": 0.012463262304663658, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-None-shots1-one-shot]": 12.619970752857625, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-None-shots1-tree-traversal]": 0.013874363154172897, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-sample-None-shots1]": 10.772532561793923, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-0-5000]": 5.295338387601078, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-0-5500-one-shot]": 5.9806346064433455, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-0-5500-tree-traversal]": 0.010230223648250103, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-0-shots1-one-shot]": 12.81788497325033, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-0-shots1-tree-traversal]": 0.011149821802973747, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-0-shots1]": 10.9312544753775, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-1-5000]": 5.3390271896496415, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-1-5500-one-shot]": 6.168234382756054, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-1-5500-tree-traversal]": 0.02690303884446621, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-1-shots1-one-shot]": 12.093826862052083, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-1-shots1-tree-traversal]": 0.010582288727164268, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-1-shots1]": 10.368106006644666, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-None-5000]": 5.365819615311921, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-None-5500-one-shot]": 6.1366625521332026, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-None-5500-tree-traversal]": 0.012023458257317543, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-None-shots1-one-shot]": 12.664448051713407, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-None-shots1-tree-traversal]": 0.014226309023797512, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[composite_mcm-var-None-shots1]": 10.253979443572462, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-0-5000]": 5.377802575938404, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-0-5500-one-shot]": 6.313419142737985, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-0-5500-tree-traversal]": 0.012157985009253025, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-0-shots1-one-shot]": 12.532889905385673, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-0-shots1-tree-traversal]": 0.012942591682076454, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-0-shots1]": 10.830962463282049, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-1-5000]": 5.330813491716981, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-1-5500-one-shot]": 6.513253306038678, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-1-5500-tree-traversal]": 0.010958283208310604, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-1-shots1-one-shot]": 12.265382300131023, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-1-shots1-tree-traversal]": 0.011404510587453842, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-1-shots1]": 10.791023001074791, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-None-5000]": 5.339181681163609, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-None-5500-one-shot]": 6.258473222143948, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-None-5500-tree-traversal]": 0.013503946363925934, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-None-shots1-one-shot]": 12.841131101362407, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-None-shots1-tree-traversal]": 0.01522219181060791, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-counts-None-shots1]": 10.763076730072498, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-0-5000]": 5.711208612658083, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-0-5500-one-shot]": 6.308189267292619, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-0-5500-tree-traversal]": 0.010782254859805107, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-0-shots1-one-shot]": 12.552174573764205, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-0-shots1-tree-traversal]": 0.011058446019887924, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-0-shots1]": 10.569088010117412, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-1-5000]": 5.248557174578309, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-1-5500-one-shot]": 6.515464982949197, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-1-5500-tree-traversal]": 0.010533028282225132, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-1-shots1-one-shot]": 12.86074456665665, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-1-shots1-tree-traversal]": 0.010315579362213612, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-1-shots1]": 11.273793012835085, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-None-5000]": 5.978382122702897, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-None-5500-one-shot]": 6.263875876553357, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-None-5500-tree-traversal]": 0.012408393435180187, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-None-shots1-one-shot]": 12.269097934477031, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-None-shots1-tree-traversal]": 0.013141597621142864, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-expval-None-shots1]": 10.843492390587926, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-0-5000]": 5.118271295912564, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-0-5500-one-shot]": 6.158760290592909, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-0-5500-tree-traversal]": 0.010485898703336716, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-0-shots1-one-shot]": 11.87215961702168, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-0-shots1-tree-traversal]": 0.010789776220917702, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-0-shots1]": 10.551986270584166, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-1-5000]": 5.498610992915928, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-1-5500-one-shot]": 5.954907584935427, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-1-5500-tree-traversal]": 0.01035625021904707, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-1-shots1-one-shot]": 12.339649342000484, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-1-shots1-tree-traversal]": 0.010154672898352146, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-1-shots1]": 10.772010600194335, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-None-5000]": 5.287074824795127, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-None-5500-one-shot]": 6.18093323148787, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-None-5500-tree-traversal]": 0.013514264486730099, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-None-shots1-one-shot]": 12.283718666993082, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-None-shots1-tree-traversal]": 0.013683653436601162, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-probs-None-shots1]": 10.292511536739767, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-0-5000]": 5.787134345620871, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-0-5500-one-shot]": 6.049357853829861, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-0-5500-tree-traversal]": 0.01125367172062397, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-0-shots1-one-shot]": 12.48377395235002, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-0-shots1-tree-traversal]": 0.011370771564543247, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-0-shots1]": 10.678862126544118, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-1-5000]": 5.4017788246273994, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-1-5500-one-shot]": 6.3914629416540265, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-1-5500-tree-traversal]": 0.010881267488002777, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-1-shots1-one-shot]": 12.475441858172417, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-1-shots1-tree-traversal]": 0.010908533819019794, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-1-shots1]": 10.412451546639204, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-None-5000]": 5.663972742855549, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-None-5500-one-shot]": 6.241931344382465, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-None-5500-tree-traversal]": 0.012371865101158619, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-None-shots1-one-shot]": 12.097024908289313, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-None-shots1-tree-traversal]": 0.01280343160033226, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-sample-None-shots1]": 10.37689357995987, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-0-5000]": 5.21338795684278, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-0-5500-one-shot]": 6.1216096095740795, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-0-5500-tree-traversal]": 0.011831077747046947, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-0-shots1-one-shot]": 12.611199781298637, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-0-shots1-tree-traversal]": 0.011149926111102104, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-0-shots1]": 11.28226381354034, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-1-5000]": 5.466038608923554, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-1-5500-one-shot]": 6.2849443117156625, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-1-5500-tree-traversal]": 0.01079991552978754, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-1-shots1-one-shot]": 13.074132392182946, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-1-shots1-tree-traversal]": 0.010512987151741982, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-1-shots1]": 11.319895207881927, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-None-5000]": 5.344471254386008, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-None-5500-one-shot]": 6.373060490004718, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-None-5500-tree-traversal]": 0.012541033327579498, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-None-shots1-one-shot]": 12.42125900927931, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-None-shots1-tree-traversal]": 0.012823191471397877, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm-var-None-shots1]": 10.551010811701417, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-0-5000]": 5.256355508230627, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-0-5500-one-shot]": 6.2734216302633286, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-0-5500-tree-traversal]": 0.036222320050001144, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-0-shots1-one-shot]": 12.326951835304499, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-0-shots1-tree-traversal]": 0.03642524033784866, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-0-shots1]": 10.876380008645356, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-1-5000]": 5.240511794574559, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-1-5500-one-shot]": 6.072968793101609, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-1-5500-tree-traversal]": 0.030231842771172523, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-1-shots1-one-shot]": 12.421832169406116, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-1-shots1-tree-traversal]": 0.03548717591911554, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-1-shots1]": 10.685390622355044, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-None-5000]": 5.310581423342228, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-None-5500-one-shot]": 6.111046990379691, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-None-5500-tree-traversal]": 0.02982346899807453, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-None-shots1-one-shot]": 12.844907724298537, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-None-shots1-tree-traversal]": 0.04873102344572544, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-counts-None-shots1]": 10.808313629589975, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-0-5000]": 0.0007159756496548653, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-0-5500-one-shot]": 0.000632154755294323, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-0-5500-tree-traversal]": 0.000676632858812809, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-0-shots1-one-shot]": 0.0007315939292311668, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-0-shots1-tree-traversal]": 0.0006363764405250549, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-0-shots1]": 0.0007262546569108963, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-1-5000]": 0.0008085547015070915, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-1-5500-one-shot]": 0.0006127553060650826, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-1-5500-tree-traversal]": 0.0006639249622821808, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-1-shots1-one-shot]": 0.0006080949679017067, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-1-shots1-tree-traversal]": 0.0007533347234129906, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-1-shots1]": 0.0007746880874037743, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-None-5000]": 0.0008458457887172699, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-None-5500-one-shot]": 0.0007493738085031509, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-None-5500-tree-traversal]": 0.0006601046770811081, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-None-shots1-one-shot]": 0.0006548250094056129, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-None-shots1-tree-traversal]": 0.0006637852638959885, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-expval-None-shots1]": 0.0007497640326619148, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-0-5000]": 5.509141015820205, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-0-5500-one-shot]": 6.162681167013943, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-0-5500-tree-traversal]": 0.010510660707950592, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-0-shots1-one-shot]": 12.477275657467544, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-0-shots1-tree-traversal]": 0.012200905941426754, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-0-shots1]": 10.800398469902575, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-1-5000]": 5.327546673826873, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-1-5500-one-shot]": 6.088978614658117, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-1-5500-tree-traversal]": 0.010005450807511806, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-1-shots1-one-shot]": 12.36817758064717, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-1-shots1-tree-traversal]": 0.010922284796833992, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-1-shots1]": 10.74206355586648, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-None-5000]": 5.272261246107519, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-None-5500-one-shot]": 6.304905730299652, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-None-5500-tree-traversal]": 0.012606424279510975, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-None-shots1-one-shot]": 12.762935074046254, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-None-shots1-tree-traversal]": 0.013556215912103653, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-probs-None-shots1]": 10.62682725675404, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-0-5000]": 5.6818047519773245, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-0-5500-one-shot]": 5.876410794444382, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-0-5500-tree-traversal]": 0.010403098538517952, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-0-shots1-one-shot]": 11.856842708773911, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-0-shots1-tree-traversal]": 0.010738939046859741, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-0-shots1]": 10.983526143245399, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-1-5000]": 5.563394728116691, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-1-5500-one-shot]": 5.9861133843660355, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-1-5500-tree-traversal]": 0.009994042105972767, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-1-shots1-one-shot]": 12.11687876097858, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-1-shots1-tree-traversal]": 0.010628349147737026, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-1-shots1]": 10.60526667162776, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-None-5000]": 5.316815912723541, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-None-5500-one-shot]": 6.098412822932005, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-None-5500-tree-traversal]": 0.01209582481533289, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-None-shots1-one-shot]": 12.217916695401073, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-None-shots1-tree-traversal]": 0.012504136189818382, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-sample-None-shots1]": 10.368775451555848, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-0-5000]": 0.0007905149832367897, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-0-5500-one-shot]": 0.0007105451077222824, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-0-5500-tree-traversal]": 0.000631275586783886, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-0-shots1-one-shot]": 0.0006016446277499199, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-0-shots1-tree-traversal]": 0.0006016269326210022, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-0-shots1]": 0.0008169133216142654, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-1-5000]": 0.0007279869168996811, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-1-5500-one-shot]": 0.0005981456488370895, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-1-5500-tree-traversal]": 0.0007026437669992447, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-1-shots1-one-shot]": 0.0006169751286506653, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-1-shots1-tree-traversal]": 0.0006263153627514839, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-1-shots1]": 0.0007266253232955933, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-None-5000]": 0.0007812036201357841, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-None-5500-one-shot]": 0.0006957761943340302, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-None-5500-tree-traversal]": 0.0006705243140459061, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-None-shots1-one-shot]": 0.000614996999502182, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-None-shots1-tree-traversal]": 0.0006255730986595154, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[mcm_list-var-None-shots1]": 0.0007749656215310097, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-0-5000]": 7.308610738255084, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-0-5500-one-shot]": 8.178993764333427, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-0-5500-tree-traversal]": 0.010826039128005505, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-0-shots1-one-shot]": 16.731195838190615, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-0-shots1-tree-traversal]": 0.03159020747989416, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-0-shots1]": 14.771316081285477, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-1-5000]": 7.171367887407541, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-1-5500-one-shot]": 8.169609454460442, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-1-5500-tree-traversal]": 0.010173020884394646, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-1-shots1-one-shot]": 16.831066196784377, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-1-shots1-tree-traversal]": 0.010898169130086899, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-1-shots1]": 14.365052411332726, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-None-5000]": 7.3587339743971825, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-None-5500-one-shot]": 8.37317311950028, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-None-5500-tree-traversal]": 0.013715623877942562, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-None-shots1-one-shot]": 16.253011863678694, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-None-shots1-tree-traversal]": 0.014688106253743172, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-counts-None-shots1]": 14.35555884707719, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-0-5000]": 7.015114209614694, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-0-5500-one-shot]": 8.128072739578784, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-0-5500-tree-traversal]": 0.015953737311065197, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-0-shots1-one-shot]": 16.4060691697523, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-0-shots1-tree-traversal]": 0.010778215713799, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-0-shots1]": 14.215606485493481, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-1-5000]": 7.085337353870273, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-1-5500-one-shot]": 8.407992866821587, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-1-5500-tree-traversal]": 0.009660065174102783, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-1-shots1-one-shot]": 16.63089046999812, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-1-shots1-tree-traversal]": 0.010240779258310795, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-1-shots1]": 14.330057319253683, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-None-5000]": 7.041269919835031, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-None-5500-one-shot]": 8.124029928818345, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-None-5500-tree-traversal]": 0.011996887624263763, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-None-shots1-one-shot]": 16.728640739805996, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-None-shots1-tree-traversal]": 0.01436407957226038, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-expval-None-shots1]": 14.006010034121573, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-0-5000]": 7.067271335050464, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-0-5500-one-shot]": 8.135199747979641, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-0-5500-tree-traversal]": 0.010152069851756096, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-0-shots1-one-shot]": 16.09102232940495, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-0-shots1-tree-traversal]": 0.010846446268260479, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-0-shots1]": 14.244488326832652, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-1-5000]": 7.12201910931617, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-1-5500-one-shot]": 8.326523130759597, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-1-5500-tree-traversal]": 0.009769326075911522, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-1-shots1-one-shot]": 16.476117772981524, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-1-shots1-tree-traversal]": 0.010388599708676338, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-1-shots1]": 14.381420750170946, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-None-5000]": 7.059655307792127, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-None-5500-one-shot]": 8.217691725119948, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-None-5500-tree-traversal]": 0.012099135667085648, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-None-shots1-one-shot]": 16.5440011350438, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-None-shots1-tree-traversal]": 0.018734587356448174, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-probs-None-shots1]": 14.134749276563525, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-0-5000]": 7.032834119163454, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-0-5500-one-shot]": 8.115573348477483, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-0-5500-tree-traversal]": 0.010099743492901325, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-0-shots1-one-shot]": 15.891103516332805, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-0-shots1-tree-traversal]": 0.01072633732110262, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-0-shots1]": 13.690515539608896, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-1-5000]": 6.913827977143228, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-1-5500-one-shot]": 8.02372646983713, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-1-5500-tree-traversal]": 0.010374052450060844, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-1-shots1-one-shot]": 15.669113085605204, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-1-shots1-tree-traversal]": 0.016117415390908718, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-1-shots1]": 13.907343153841794, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-None-5000]": 7.0896678026765585, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-None-5500-one-shot]": 7.905385700985789, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-None-5500-tree-traversal]": 0.017957471311092377, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-None-shots1-one-shot]": 15.71903215534985, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-None-shots1-tree-traversal]": 0.012852448970079422, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-sample-None-shots1]": 13.944506824016571, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-0-5000]": 6.996834062039852, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-0-5500-one-shot]": 7.893823487684131, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-0-5500-tree-traversal]": 0.009935823269188404, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-0-shots1-one-shot]": 15.466050166636705, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-0-shots1-tree-traversal]": 0.01057885680347681, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-0-shots1]": 13.734649094752967, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-1-5000]": 6.794288522563875, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-1-5500-one-shot]": 7.816182960756123, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-1-5500-tree-traversal]": 0.016002625226974487, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-1-shots1-one-shot]": 15.975647551007569, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-1-shots1-tree-traversal]": 0.010400849394500256, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-1-shots1]": 13.68352565728128, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-None-5000]": 6.982897843234241, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-None-5500-one-shot]": 7.757575070485473, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-None-5500-tree-traversal]": 0.012145564891397953, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-None-shots1-one-shot]": 16.361751867458224, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-None-shots1-tree-traversal]": 0.012851601466536522, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj0-var-None-shots1]": 13.942261641845107, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-0-5000]": 7.997996318154037, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-0-5500-one-shot]": 9.268476657569408, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-0-5500-tree-traversal]": 0.01120775192975998, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-0-shots1-one-shot]": 18.06989693455398, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-0-shots1-tree-traversal]": 0.022249707952141762, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-0-shots1]": 15.98986979201436, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-1-5000]": 7.840947723016143, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-1-5500-one-shot]": 9.137958751991391, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-1-5500-tree-traversal]": 0.010463778860867023, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-1-shots1-one-shot]": 18.571203492581844, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-1-shots1-tree-traversal]": 0.011557198129594326, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-1-shots1]": 15.770403692498803, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-None-5000]": 7.853304636664689, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-None-5500-one-shot]": 9.060200406238437, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-None-5500-tree-traversal]": 0.013531282544136047, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-None-shots1-one-shot]": 18.31393553968519, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-None-shots1-tree-traversal]": 0.03160199522972107, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-counts-None-shots1]": 15.776198621839285, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-0-5000]": 8.127478446811438, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-0-5500-one-shot]": 9.109932204708457, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-0-5500-tree-traversal]": 0.01646836008876562, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-0-shots1-one-shot]": 18.250336971133947, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-0-shots1-tree-traversal]": 0.0116525674238801, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-0-shots1]": 15.893544847145677, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-1-5000]": 7.876588214188814, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-1-5500-one-shot]": 8.946866534650326, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-1-5500-tree-traversal]": 0.010491037741303444, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-1-shots1-one-shot]": 17.5354975303635, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-1-shots1-tree-traversal]": 0.010329642333090305, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-1-shots1]": 15.588014365173876, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-None-5000]": 7.625741785392165, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-None-5500-one-shot]": 9.359428339637816, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-None-5500-tree-traversal]": 0.0124238645657897, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-None-shots1-one-shot]": 18.615402539260685, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-None-shots1-tree-traversal]": 0.013030793517827988, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-expval-None-shots1]": 15.279637368395925, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-0-5000]": 7.769806673750281, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-0-5500-one-shot]": 8.93474418669939, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-0-5500-tree-traversal]": 0.010432400740683079, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-0-shots1-one-shot]": 18.11569403577596, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-0-shots1-tree-traversal]": 0.011154871433973312, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-0-shots1]": 15.463100378401577, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-1-5000]": 7.7018401101231575, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-1-5500-one-shot]": 9.096113597974181, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-1-5500-tree-traversal]": 0.010063281282782555, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-1-shots1-one-shot]": 18.756308337673545, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-1-shots1-tree-traversal]": 0.01057483721524477, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-1-shots1]": 15.862260638736188, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-None-5000]": 7.77902911696583, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-None-5500-one-shot]": 8.729607715271413, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-None-5500-tree-traversal]": 0.012322776019573212, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-None-shots1-one-shot]": 17.41336234845221, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-None-shots1-tree-traversal]": 0.018610967323184013, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-probs-None-shots1]": 15.37896341830492, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-0-5000]": 7.475954769179225, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-0-5500-one-shot]": 8.611586060374975, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-0-5500-tree-traversal]": 0.011331201530992985, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-0-shots1-one-shot]": 17.317746995948255, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-0-shots1-tree-traversal]": 0.011106215417385101, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-0-shots1]": 15.461464860476553, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-1-5000]": 7.64384582079947, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-1-5500-one-shot]": 9.084075284190476, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-1-5500-tree-traversal]": 0.010312819853425026, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-1-shots1-one-shot]": 16.905002512037754, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-1-shots1-tree-traversal]": 0.02261999435722828, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-1-shots1]": 14.922062836587429, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-None-5000]": 7.554102229885757, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-None-5500-one-shot]": 8.815547516569495, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-None-5500-tree-traversal]": 0.01838218793272972, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-None-shots1-one-shot]": 18.966114521957934, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-None-shots1-tree-traversal]": 0.012928509153425694, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-sample-None-shots1]": 14.971533628180623, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-0-5000]": 7.33523315936327, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-0-5500-one-shot]": 8.781577908433974, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-0-5500-tree-traversal]": 0.010874485597014427, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-0-shots1-one-shot]": 17.46769461967051, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-0-shots1-tree-traversal]": 0.011650679633021355, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-0-shots1]": 15.663270078599453, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-1-5000]": 7.720900509506464, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-1-5500-one-shot]": 8.767262702807784, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-1-5500-tree-traversal]": 0.014832764863967896, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-1-shots1-one-shot]": 17.091082211583853, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-1-shots1-tree-traversal]": 0.010722569189965725, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-1-shots1]": 15.723164474591613, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-None-5000]": 7.564999001100659, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-None-5500-one-shot]": 8.577924215234816, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-None-5500-tree-traversal]": 0.012215927243232727, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-None-shots1-one-shot]": 17.011093054898083, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-None-shots1-tree-traversal]": 0.013308936730027199, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj1-var-None-shots1]": 14.75444504711777, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-0-5000]": 7.201504549942911, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-0-5500-one-shot]": 8.429040192626417, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-0-5500-tree-traversal]": 0.02142767421901226, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-0-shots1-one-shot]": 16.518071605823934, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-0-shots1-tree-traversal]": 0.03855412174016237, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-0-shots1]": 14.675217275507748, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-1-5000]": 7.235024534165859, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-1-5500-one-shot]": 8.580126359127462, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-1-5500-tree-traversal]": 0.013834690675139427, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-1-shots1-one-shot]": 17.74750907253474, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-1-shots1-tree-traversal]": 0.018091159872710705, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-1-shots1]": 14.808268736116588, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-None-5000]": 7.215723735280335, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-None-5500-one-shot]": 8.357226557098329, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-None-5500-tree-traversal]": 0.027255401015281677, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-None-shots1-one-shot]": 17.82706954702735, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-None-shots1-tree-traversal]": 0.04644277133047581, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-counts-None-shots1]": 14.363884684629738, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-0-5000]": 0.0007435251027345657, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-0-5500-one-shot]": 0.0007644109427928925, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-0-5500-tree-traversal]": 0.0016744202002882957, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-0-shots1-one-shot]": 0.0006699441000819206, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-0-shots1-tree-traversal]": 0.0005966490134596825, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-0-shots1]": 0.001271842047572136, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-1-5000]": 0.0005999775603413582, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-1-5500-one-shot]": 0.0005858363583683968, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-1-5500-tree-traversal]": 0.0006966860964894295, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-1-shots1-one-shot]": 0.0010514035820960999, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-1-shots1-tree-traversal]": 0.0006311247125267982, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-1-shots1]": 0.0006537465378642082, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-None-5000]": 0.0013762125745415688, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-None-5500-one-shot]": 0.0010386910289525986, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-None-5500-tree-traversal]": 0.0006208745762705803, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-None-shots1-one-shot]": 0.0006137564778327942, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-None-shots1-tree-traversal]": 0.0006282031536102295, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-expval-None-shots1]": 0.0006571086123585701, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-0-5000]": 7.075133138336241, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-0-5500-one-shot]": 8.355579134076834, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-0-5500-tree-traversal]": 0.010170620866119862, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-0-shots1-one-shot]": 17.605184905231, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-0-shots1-tree-traversal]": 0.011191463097929955, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-0-shots1]": 14.349868110381067, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-1-5000]": 7.11500689946115, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-1-5500-one-shot]": 8.051059062592685, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-1-5500-tree-traversal]": 0.00950279738754034, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-1-shots1-one-shot]": 16.478214154019952, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-1-shots1-tree-traversal]": 0.010953673161566257, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-1-shots1]": 14.174197647720575, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-None-5000]": 7.159412624314427, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-None-5500-one-shot]": 8.449524869211018, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-None-5500-tree-traversal]": 0.012496262788772583, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-None-shots1-one-shot]": 17.34960119612515, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-None-shots1-tree-traversal]": 0.018603235483169556, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-probs-None-shots1]": 14.174223944544792, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-0-5000]": 6.782419064082205, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-0-5500-one-shot]": 7.707543005235493, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-0-5500-tree-traversal]": 0.009789052419364452, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-0-shots1-one-shot]": 15.818111361004412, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-0-shots1-tree-traversal]": 0.010532555170357227, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-0-shots1]": 13.183834763243794, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-1-5000]": 6.605204994790256, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-1-5500-one-shot]": 7.698656644672155, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-1-5500-tree-traversal]": 0.009687044657766819, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-1-shots1-one-shot]": 15.621262669563293, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-1-shots1-tree-traversal]": 0.01071235816925764, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-1-shots1]": 13.16993935778737, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-None-5000]": 6.817448418587446, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-None-5500-one-shot]": 7.515137909911573, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-None-5500-tree-traversal]": 0.015816950239241123, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-None-shots1-one-shot]": 15.779930527321994, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-None-shots1-tree-traversal]": 0.012592677026987076, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-sample-None-shots1]": 13.374715535901487, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-0-5000]": 0.0006731972098350525, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-0-5500-one-shot]": 0.0006849672645330429, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-0-5500-tree-traversal]": 0.0006454279646277428, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-0-shots1-one-shot]": 0.0006434367969632149, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-0-shots1-tree-traversal]": 0.0011023413389921188, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-0-shots1]": 0.0010948237031698227, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-1-5000]": 0.0006326287984848022, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-1-5500-one-shot]": 0.0006547169759869576, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-1-5500-tree-traversal]": 0.000676165334880352, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-1-shots1-one-shot]": 0.000614766962826252, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-1-shots1-tree-traversal]": 0.0005959253758192062, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-1-shots1]": 0.0008510351181030273, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-None-5000]": 0.0010509341955184937, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-None-5500-one-shot]": 0.0006825141608715057, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-None-5500-tree-traversal]": 0.0006186757236719131, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-None-shots1-one-shot]": 0.0006171846762299538, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-None-shots1-tree-traversal]": 0.0006429245695471764, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj2-var-None-shots1]": 0.0006081769242882729, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-0-5000]": 7.593102159909904, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-0-5500-one-shot]": 8.17043829523027, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-0-5500-tree-traversal]": 0.023392420262098312, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-0-shots1-one-shot]": 16.3392380643636, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-0-shots1-tree-traversal]": 0.037124001421034336, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-0-shots1]": 15.872107406146824, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-1-5000]": 7.427301049232483, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-1-5500-one-shot]": 8.184706328436732, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-1-5500-tree-traversal]": 0.014725853689014912, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-1-shots1-one-shot]": 16.36167281959206, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-1-shots1-tree-traversal]": 0.03142240550369024, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-1-shots1]": 14.89893937855959, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-None-5000]": 8.182560594752431, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-None-5500-one-shot]": 8.167900240048766, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-None-5500-tree-traversal]": 0.029596909880638123, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-None-shots1-one-shot]": 16.37782597914338, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-None-shots1-tree-traversal]": 0.04780448041856289, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-counts-None-shots1]": 14.511622476391494, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-0-5000]": 0.0006399648264050484, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-0-5500-one-shot]": 0.0006348248571157455, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-0-5500-tree-traversal]": 0.0006160149350762367, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-0-shots1-one-shot]": 0.00064055435359478, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-0-shots1-tree-traversal]": 0.0008304240182042122, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-0-shots1]": 0.0013531511649489403, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-1-5000]": 0.0008223960176110268, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-1-5500-one-shot]": 0.0008436255156993866, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-1-5500-tree-traversal]": 0.001237739808857441, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-1-shots1-one-shot]": 0.0006347754970192909, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-1-shots1-tree-traversal]": 0.0006467960774898529, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-1-shots1]": 0.0006084060296416283, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-None-5000]": 0.0005974574014544487, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-None-5500-one-shot]": 0.0006945636123418808, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-None-5500-tree-traversal]": 0.0006268154829740524, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-None-shots1-one-shot]": 0.0006348667666316032, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-None-shots1-tree-traversal]": 0.0006104549393057823, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-expval-None-shots1]": 0.0007329164072871208, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-0-5000]": 7.081024439074099, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-0-5500-one-shot]": 8.155837902799249, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-0-5500-tree-traversal]": 0.010298638604581356, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-0-shots1-one-shot]": 16.739931914955378, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-0-shots1-tree-traversal]": 0.010798227041959763, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-0-shots1]": 14.193519776687026, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-1-5000]": 7.120728276669979, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-1-5500-one-shot]": 8.470637827180326, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-1-5500-tree-traversal]": 0.009955543093383312, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-1-shots1-one-shot]": 17.130972737446427, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-1-shots1-tree-traversal]": 0.01035294122993946, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-1-shots1]": 14.347468581981957, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-None-5000]": 7.12847644649446, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-None-5500-one-shot]": 8.487837128341198, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-None-5500-tree-traversal]": 0.011918054893612862, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-None-shots1-one-shot]": 16.29921751562506, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-None-shots1-tree-traversal]": 0.01357128657400608, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-probs-None-shots1]": 14.006092390045524, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-0-5000]": 6.547586849890649, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-0-5500-one-shot]": 7.650218458846211, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-0-5500-tree-traversal]": 0.01011742278933525, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-0-shots1-one-shot]": 15.717306124046445, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-0-shots1-tree-traversal]": 0.010628217831254005, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-0-shots1]": 13.870962067507207, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-1-5000]": 6.919398943893611, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-1-5500-one-shot]": 7.760229726321995, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-1-5500-tree-traversal]": 0.009982011280953884, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-1-shots1-one-shot]": 15.42806345410645, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-1-shots1-tree-traversal]": 0.009985501877963543, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-1-shots1]": 13.875134697183967, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-None-5000]": 6.574949058704078, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-None-5500-one-shot]": 7.8818032229319215, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-None-5500-tree-traversal]": 0.011887546628713608, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-None-shots1-one-shot]": 15.30639646295458, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-None-shots1-tree-traversal]": 0.012757210060954094, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-sample-None-shots1]": 13.136472997255623, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-0-5000]": 0.0005879644304513931, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-0-5500-one-shot]": 0.0006457669660449028, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-0-5500-tree-traversal]": 0.0006249342113733292, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-0-shots1-one-shot]": 0.000608585774898529, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-0-shots1-tree-traversal]": 0.0008405717089772224, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-0-shots1]": 0.0007303059101104736, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-1-5000]": 0.0006395475938916206, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-1-5500-one-shot]": 0.0006977254524827003, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-1-5500-tree-traversal]": 0.0006773872300982475, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-1-shots1-one-shot]": 0.0006297780200839043, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-1-shots1-tree-traversal]": 0.0006221970543265343, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-1-shots1]": 0.0005822563543915749, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-None-5000]": 0.0007167793810367584, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-None-5500-one-shot]": 0.000684766098856926, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-None-5500-tree-traversal]": 0.000627836212515831, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-None-shots1-one-shot]": 0.00095418281853199, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-None-shots1-tree-traversal]": 0.0006204154342412949, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj3-var-None-shots1]": 0.0006048474460840225, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-0-5000]": 7.362704910337925, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-0-5500-one-shot]": 8.922710690647364, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-0-5500-tree-traversal]": 0.03992611914873123, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-0-shots1-one-shot]": 16.59000172652304, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-0-shots1-tree-traversal]": 0.0367561150342226, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-0-shots1]": 15.327153710648417, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-1-5000]": 7.497868018224835, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-1-5500-one-shot]": 8.265940383076668, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-1-5500-tree-traversal]": 0.014224821701645851, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-1-shots1-one-shot]": 16.542168887332082, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-1-shots1-tree-traversal]": 0.018849575892090797, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-1-shots1]": 14.506087437272072, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-None-5000]": 7.269371593371034, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-None-5500-one-shot]": 8.410528643988073, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-None-5500-tree-traversal]": 0.04597566369920969, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-None-shots1-one-shot]": 16.78482128959149, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-None-shots1-tree-traversal]": 0.047664228826761246, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-counts-None-shots1]": 14.785482169128954, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-0-5000]": 0.000631147064268589, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-0-5500-one-shot]": 0.0006136447191238403, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-0-5500-tree-traversal]": 0.000645885244011879, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-0-shots1-one-shot]": 0.0007836148142814636, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-0-shots1-tree-traversal]": 0.0006733648478984833, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-0-shots1]": 0.0008131740614771843, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-1-5000]": 0.0006809961050748825, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-1-5500-one-shot]": 0.0006154440343379974, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-1-5500-tree-traversal]": 0.0006246259436011314, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-1-shots1-one-shot]": 0.0006289668381214142, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-1-shots1-tree-traversal]": 0.000754043459892273, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-1-shots1]": 0.0006789583712816238, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-None-5000]": 0.0007081665098667145, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-None-5500-one-shot]": 0.0006529539823532104, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-None-5500-tree-traversal]": 0.0006136437878012657, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-None-shots1-one-shot]": 0.0006203660741448402, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-None-shots1-tree-traversal]": 0.0006848350167274475, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-expval-None-shots1]": 0.0006080260500311852, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-0-5000]": 7.176168735139072, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-0-5500-one-shot]": 8.373384640552104, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-0-5500-tree-traversal]": 0.010098789818584919, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-0-shots1-one-shot]": 16.488924245350063, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-0-shots1-tree-traversal]": 0.010799846611917019, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-0-shots1]": 14.455045562237501, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-1-5000]": 7.4132217559963465, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-1-5500-one-shot]": 8.22287001926452, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-1-5500-tree-traversal]": 0.009860311634838581, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-1-shots1-one-shot]": 16.39155685901642, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-1-shots1-tree-traversal]": 0.010069931857287884, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-1-shots1]": 14.52917889971286, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-None-5000]": 7.609134854748845, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-None-5500-one-shot]": 8.201522278599441, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-None-5500-tree-traversal]": 0.012110686860978603, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-None-shots1-one-shot]": 16.3807885190472, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-None-shots1-tree-traversal]": 0.013100758194923401, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-probs-None-shots1]": 14.61341426987201, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-0-5000]": 6.660171886906028, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-0-5500-one-shot]": 8.42046144977212, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-0-5500-tree-traversal]": 0.010314679704606533, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-0-shots1-one-shot]": 15.488593561574817, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-0-shots1-tree-traversal]": 0.01162797026336193, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-0-shots1]": 13.340778858400881, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-1-5000]": 6.799034021794796, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-1-5500-one-shot]": 7.731277598068118, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-1-5500-tree-traversal]": 0.011590232141315937, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-1-shots1-one-shot]": 15.016925087198615, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-1-shots1-tree-traversal]": 0.009927154518663883, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-1-shots1]": 12.842364329844713, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-None-5000]": 6.73213642463088, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-None-5500-one-shot]": 7.846011749468744, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-None-5500-tree-traversal]": 0.011707956902682781, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-None-shots1-one-shot]": 15.9131302786991, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-None-shots1-tree-traversal]": 0.012533102184534073, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-sample-None-shots1]": 13.720825795084238, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-0-5000]": 0.0006006164476275444, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-0-5500-one-shot]": 0.0007048062980175018, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-0-5500-tree-traversal]": 0.0006803469732403755, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-0-shots1-one-shot]": 0.0007110238075256348, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-0-shots1-tree-traversal]": 0.0007842276245355606, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-0-shots1]": 0.0006741564720869064, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-1-5000]": 0.0005972469225525856, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-1-5500-one-shot]": 0.0006250329315662384, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-1-5500-tree-traversal]": 0.0006260713562369347, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-1-shots1-one-shot]": 0.0006103189662098885, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-1-shots1-tree-traversal]": 0.0006176857277750969, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-1-shots1]": 0.000768544152379036, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-None-5000]": 0.0007859859615564346, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-None-5500-one-shot]": 0.0007150443270802498, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-None-5500-tree-traversal]": 0.0006617121398448944, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-None-shots1-one-shot]": 0.0008215019479393959, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-None-shots1-tree-traversal]": 0.0006921319290995598, "devices/default_qubit/test_default_qubit_native_mcm.py::test_simple_dynamic_circuit[meas_obj4-var-None-shots1]": 0.0006983168423175812, "devices/default_qubit/test_default_qubit_native_mcm.py::test_single_mcm_multiple_measure_obs[False-0]": 13.772011500026565, "devices/default_qubit/test_default_qubit_native_mcm.py::test_single_mcm_multiple_measure_obs[False-1]": 10.382619958021678, @@ -1381,71 +1963,71 @@ "devices/default_qubit/test_default_qubit_native_mcm.py::test_single_mcm_single_measure_wires[wires1-sample-True-None-3000]": 2.2537698339438066, "devices/default_qubit/test_default_qubit_native_mcm.py::test_single_mcm_single_measure_wires[wires1-sample-True-None-None]": 0.0013509989366866648, "devices/default_qubit/test_default_qubit_native_mcm.py::test_single_mcm_single_measure_wires[wires1-sample-True-None-shots2]": 3.245354540995322, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-expval-None-1]": 13.49268355127424, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-expval-None-None]": 13.397567202337086, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-expval-best-1]": 5.843933895230293, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-expval-best-None]": 5.896772094070911, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-probs-None-1]": 13.471186116337776, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-probs-None-None]": 13.51740925759077, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-probs-best-1]": 5.66696800198406, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-probs-best-None]": 6.033688001334667, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-sample-None-1]": 13.307802678085864, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-sample-None-None]": 14.025906254537404, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-sample-best-1]": 6.0164835238829255, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-sample-best-None]": 5.444168743677437, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-var-None-1]": 14.019540988840163, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-var-None-None]": 13.719396888278425, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-var-best-1]": 5.68074194714427, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-var-best-None]": 5.514416768215597, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-expval-None-1]": 0.0006118062883615494, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-expval-None-None]": 0.000619206577539444, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-expval-best-1]": 0.0007462054491043091, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-expval-best-None]": 0.0005962764844298363, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-probs-None-1]": 13.550685620866716, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-probs-None-None]": 13.617985542863607, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-probs-best-1]": 5.753070772625506, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-probs-best-None]": 5.828024929389358, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-sample-None-1]": 13.675154253840446, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-sample-None-None]": 13.530717368237674, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-sample-best-1]": 5.737767902202904, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-sample-best-None]": 5.978026699274778, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-var-None-1]": 0.0006584664806723595, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-var-None-None]": 0.0006058653816580772, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-var-best-1]": 0.0006970968097448349, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-var-best-None]": 0.0006277263164520264, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-expval-None-1]": 17.474671985954046, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-expval-None-None]": 16.317007177509367, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-expval-best-1]": 8.20616938918829, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-expval-best-None]": 8.153789267875254, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-probs-None-1]": 17.540568661876023, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-probs-None-None]": 16.759909318760037, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-probs-best-1]": 8.498799495398998, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-probs-best-None]": 7.929911037907004, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-sample-None-1]": 17.000875202938914, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-sample-None-None]": 16.47318131942302, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-sample-best-1]": 7.6558829648420215, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-sample-best-None]": 7.6778746619820595, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-var-None-1]": 16.59739538282156, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-var-None-None]": 16.54986666329205, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-var-best-1]": 8.184033155441284, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-var-best-None]": 8.180261618457735, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-expval-None-1]": 0.0007586348801851273, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-expval-None-None]": 0.0008152145892381668, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-expval-best-1]": 0.0007982943207025528, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-expval-best-None]": 0.0007460340857505798, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-probs-None-1]": 17.169403955340385, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-probs-None-None]": 16.867361094802618, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-probs-best-1]": 8.290268135257065, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-probs-best-None]": 8.344618457369506, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-sample-None-1]": 16.337272743694484, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-sample-None-None]": 16.217921077273786, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-sample-best-1]": 7.646254851482809, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-sample-best-None]": 7.6074924655258656, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-var-None-1]": 0.0007823575288057327, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-var-None-None]": 0.0009125955402851105, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-var-best-1]": 0.0006081266328692436, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-var-best-None]": 0.0006273658946156502, - "devices/default_qubit/test_default_qubit_native_mcm.py::test_unsupported_measurement": 0.0016452698037028313, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-expval-None-1]": 14.282186006195843, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-expval-None-None]": 14.245575407519937, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-expval-best-1]": 6.282766519114375, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-expval-best-None]": 6.63228383846581, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-probs-None-1]": 14.073330427519977, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-probs-None-None]": 14.419767185114324, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-probs-best-1]": 6.00556842982769, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-probs-best-None]": 6.43367322627455, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-sample-None-1]": 14.113686538301408, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-sample-None-None]": 14.001060691662133, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-sample-best-1]": 6.499778122641146, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-sample-best-None]": 6.078175431117415, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-var-None-1]": 14.44908559601754, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-var-None-None]": 14.25719468574971, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-var-best-1]": 7.013274068944156, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[composite_mcm-var-best-None]": 6.050717927515507, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-expval-None-1]": 0.0009077508002519608, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-expval-None-None]": 0.0009391531348228455, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-expval-best-1]": 0.0006610257551074028, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-expval-best-None]": 0.0007062656804919243, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-probs-None-1]": 13.755953161045909, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-probs-None-None]": 14.263613485731184, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-probs-best-1]": 6.06072645727545, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-probs-best-None]": 6.109162584878504, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-sample-None-1]": 14.003623744472861, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-sample-None-None]": 13.852360226213932, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-sample-best-1]": 6.17475619725883, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-sample-best-None]": 5.861216540448368, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-var-None-1]": 0.0007705148309469223, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-var-None-None]": 0.0006574047729372978, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-var-best-1]": 0.0006981054320931435, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[mcm_list-var-best-None]": 0.0006401753053069115, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-expval-None-1]": 17.174556153826416, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-expval-None-None]": 17.464673932641745, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-expval-best-1]": 9.098577958531678, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-expval-best-None]": 8.538778552785516, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-probs-None-1]": 17.381062868982553, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-probs-None-None]": 17.744515671394765, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-probs-best-1]": 9.142342632636428, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-probs-best-None]": 8.56578237656504, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-sample-None-1]": 17.033084558323026, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-sample-None-None]": 17.383395723998547, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-sample-best-1]": 8.539939305745065, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-sample-best-None]": 8.595753466710448, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-var-None-1]": 16.85739228874445, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-var-None-None]": 17.039454992860556, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-var-best-1]": 8.55970882344991, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj0-var-best-None]": 7.9502655528485775, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-expval-None-1]": 0.0007024751976132393, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-expval-None-None]": 0.0007759733125567436, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-expval-best-1]": 0.0006771339103579521, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-expval-best-None]": 0.0006691273301839828, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-probs-None-1]": 17.526881266385317, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-probs-None-None]": 17.615305164828897, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-probs-best-1]": 8.814321256242692, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-probs-best-None]": 9.083324268460274, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-sample-None-1]": 16.61094476468861, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-sample-None-None]": 17.94020073581487, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-sample-best-1]": 8.520027144812047, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-sample-best-None]": 8.042904898524284, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-var-None-1]": 0.000750003382563591, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-var-None-None]": 0.0006521157920360565, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-var-best-1]": 0.0006790356710553169, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_torch_integration[meas_obj1-var-best-None]": 0.0006757229566574097, + "devices/default_qubit/test_default_qubit_native_mcm.py::test_unsupported_measurement": 0.0019308654591441154, "devices/default_qubit/test_default_qubit_preprocessing.py::TestAdjointDiffTapeValidation::test_finite_shots_analytic_diff_method[adjoint]": 0.002285290916915983, "devices/default_qubit/test_default_qubit_preprocessing.py::TestAdjointDiffTapeValidation::test_finite_shots_analytic_diff_method[backprop]": 0.021022291912231594, "devices/default_qubit/test_default_qubit_preprocessing.py::TestAdjointDiffTapeValidation::test_non_diagonal_non_expval": 0.001395916915498674, diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 210faece89b..af9c2d297b9 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -29,8 +29,8 @@ jobs: - name: Run isort run: | - isort --py 311 --profile black -l 100 -p ./pennylane --skip __init__.py --filter-files ./pennylane --check - isort --py 311 --profile black -l 100 -p ./pennylane --skip __init__.py --filter-files ./tests --check + isort --py 311 --profile black -l 100 -o autoray -p ./pennylane --skip __init__.py --filter-files ./pennylane --check + isort --py 311 --profile black -l 100 -o autoray -p ./pennylane --skip __init__.py --filter-files ./tests --check - name: Run Pylint (source files) if: always() diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 268a44b1882..f8b9dde6e0e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,6 +22,8 @@ repos: "black", "-l", "100", + "-o", + "autoray", "-p", "./pennylane", "--skip", diff --git a/doc/introduction/measurements.rst b/doc/introduction/measurements.rst index 6c769f7d2b4..eab6c62e60a 100644 --- a/doc/introduction/measurements.rst +++ b/doc/introduction/measurements.rst @@ -333,7 +333,7 @@ analytic calculations. The :func:`~.pennylane.dynamic_one_shot` transform is usually advantageous compared with the :func:`~.pennylane.defer_measurements` transform in the -large-number-of-mid-circuit-measurements and small-number-of-shots limit. This is because, unlike the +large-number-of-mid-circuit-measurements and small-number-of-shots limit. This is because, unlike the deferred measurement principle, the method does not need an additional wire for every mid-circuit measurement present in the circuit. Otherwise, one generally gets equivalent results, so you may try both in an attempt to improve performance without @@ -354,6 +354,57 @@ The transform can be applied to a QNode as follows: If the ``defer_measurements`` transform is used in analytic mode, ``backprop`` is also a viable option. +.. _tree_traversal: + +The tree-traversal algorithm +**************************** + +Dynamic circuit execution is akin to traversing a binary tree where each MCM +corresponds to a node and groups of gates between the MCMs correspond to edges. +The :func:`~.pennylane.dynamic_one_shot` approach picks a branch of the tree randomly +and simulates it from beginning to end. +This is wasteful in many cases; the same branch is simulated many times +when there are more shots than branches for example. +The tree-traversal algorithm does away with such redundancy while retaining the +exponential gains in memory of the one-shot approach compared with the deferred +measurement principle, among other advantages. + +Briefly, it proceeds cutting an :math:`n_{MCM}` circuit into :math:`n_{MCM}+1` +circuit segments. Each segment can be executed on either the 0- or 1-branch, +which gives rise to a binary tree with :math:`2^{n_{MCM}}` leaves. Terminal +measurements are obtained at the leaves, and propagated and combined back up at each +node up the tree. The tree is visited using a depth-first pattern. The tree-traversal +method improves on :func:`~.pennylane.dynamic_one_shot` by taking all samples at a +node or leaf at once. Neglecting overheads, simulating all branches requires the same +amount of computations as :func:`~. pennylane.defer_measurements`, but without the +:math:`O(2^{n_{MCM}})` memory requirement. To save time, a copy of the state vector +is made at every branching point, or MCM, requiring at most :math:`n_{MCM}+1` state +vectors at any instant, an exponential improvement compared with :func:`~. pennylane. +defer_measurements`. Since the counts of many nodes come out to be zero in practice, +it is often possible to ignore entire sub-trees, thereby reducing the computational +burden. + +To summarize, this algorithm gives us the best of both worlds. In the limit of few +shots and/or many mid-circuit measurements, it is as fast as the naive shot-by-shot implementation +because few sub-trees are explored. In the limit of many shots and/or few mid-circuit measurements, it is +equal to or faster than the deferred measurement algorithm (albeit with more +overheads in practice) because each tree edge is visited at most once, all while +reducing the memory requirements exponentially. + +The tree-traversal algorithm is not a transform. Its usage is therefore specified +by passing an ``mcm_method`` option to a QNode (see section +:ref:`"Configuring mid-circuit measurements" `). For example, + +.. code-block:: python + + @qml.qnode(dev, mcm_method="tree-traversal") + def my_quantum_function(x, y): + (...) + +.. warning:: + + The tree-traversal algorithm is only implemented in the :class:`~.pennylane.devices.DefaultQubit` device. + Resetting wires *************** @@ -528,6 +579,8 @@ Collecting statistics for sequences of mid-circuit measurements is supported wit When collecting statistics for a list of mid-circuit measurements, values manipulated using arithmetic operators should not be used as this behaviour is not supported. +.. _mcm_config: + Configuring mid-circuit measurements ************************************ @@ -536,8 +589,10 @@ PennyLane. For ease of use, we provide the following configuration options to us :class:`~pennylane.QNode`: * ``mcm_method``: To set the method used for applying mid-circuit measurements. Use ``mcm_method="deferred"`` - to use the :ref:`deferred measurements principle ` or ``mcm_method="one-shot"`` to use - the :ref:`one-shot transform `. When executing with finite shots, ``mcm_method="one-shot"`` + to apply the :ref:`deferred measurements principle `, ``mcm_method="one-shot"`` to apply + the :ref:`one-shot transform ` or ``mcm_method="tree-traversal"`` to execute the + :ref:`tree-traversal algorithm `. + When executing with finite shots, ``mcm_method="one-shot"`` will be the default, and ``mcm_method="deferred"`` otherwise. Additionally, if using :func:`~pennylane.qjit`, ``mcm_method="single-branch-statistics"`` can also be used and will be the default. Using this method, a single branch of the execution tree will be randomly explored. diff --git a/doc/releases/changelog-dev.md b/doc/releases/changelog-dev.md index 3405c5272d3..e28571f3d09 100644 --- a/doc/releases/changelog-dev.md +++ b/doc/releases/changelog-dev.md @@ -115,6 +115,12 @@

Mid-circuit measurements and dynamic circuits

+* The `default.qubit` device implements a depth-first tree-traversal algorithm to + accelerate native mid-circuit measurement execution. The new implementation + supports classical control, collecting statistics, and post-selection, along + with all measurements enabled with `qml.dynamic_one_shot`. + [(#5180)](https://github.com/PennyLaneAI/pennylane/pull/5180) + * `qml.QNode` and `qml.qnode` now accept two new keyword arguments: `postselect_mode` and `mcm_method`. These keyword arguments can be used to configure how the device should behave when running circuits with mid-circuit measurements. diff --git a/pennylane/devices/default_qubit.py b/pennylane/devices/default_qubit.py index 6b1388802e9..663a78b0572 100644 --- a/pennylane/devices/default_qubit.py +++ b/pennylane/devices/default_qubit.py @@ -519,7 +519,8 @@ def preprocess( transform_program.add_transform( validate_observables, stopping_condition=observable_stopping_condition, name=self.name ) - + if config.mcm_config.mcm_method == "tree-traversal": + transform_program.add_transform(qml.transforms.broadcast_expand) # Validate multi processing max_workers = config.device_options.get("max_workers", self._max_workers) if max_workers: @@ -602,6 +603,7 @@ def execute( "interface": interface, "state_cache": self._state_cache, "prng_key": _key, + "mcm_method": execution_config.mcm_config.mcm_method, "postselect_mode": execution_config.mcm_config.postselect_mode, }, ) @@ -614,6 +616,7 @@ def execute( { "rng": _rng, "prng_key": _key, + "mcm_method": execution_config.mcm_config.mcm_method, "postselect_mode": execution_config.mcm_config.postselect_mode, } for _rng, _key in zip(seeds, prng_keys) diff --git a/pennylane/devices/execution_config.py b/pennylane/devices/execution_config.py index 5d0dda1759a..5ed57238ed5 100644 --- a/pennylane/devices/execution_config.py +++ b/pennylane/devices/execution_config.py @@ -42,7 +42,13 @@ def __post_init__(self): Note that this hook is automatically called after init via the dataclass integration. """ - if self.mcm_method not in ("deferred", "one-shot", "single-branch-statistics", None): + if self.mcm_method not in ( + "deferred", + "one-shot", + "single-branch-statistics", + "tree-traversal", + None, + ): raise ValueError(f"Invalid mid-circuit measurements method '{self.mcm_method}'.") if self.postselect_mode not in ("hw-like", "fill-shots", None): raise ValueError(f"Invalid postselection mode '{self.postselect_mode}'.") diff --git a/pennylane/devices/preprocess.py b/pennylane/devices/preprocess.py index eb465af72af..177d050808d 100644 --- a/pennylane/devices/preprocess.py +++ b/pennylane/devices/preprocess.py @@ -166,6 +166,8 @@ def mid_circuit_measurements( if mcm_method == "one-shot": return qml.dynamic_one_shot(tape, interface=interface) + if mcm_method == "tree-traversal": + return (tape,), null_postprocessing return qml.defer_measurements(tape, device=device) diff --git a/pennylane/devices/qubit/simulate.py b/pennylane/devices/qubit/simulate.py index b862d590e19..33cb5275b17 100644 --- a/pennylane/devices/qubit/simulate.py +++ b/pennylane/devices/qubit/simulate.py @@ -13,9 +13,11 @@ # limitations under the License. """Simulate a quantum script.""" import logging +import sys # pylint: disable=protected-access -from functools import partial +from collections import Counter +from functools import partial, singledispatch from typing import Optional import numpy as np @@ -23,7 +25,15 @@ import pennylane as qml from pennylane.logging import debug_logger -from pennylane.measurements import MidMeasureMP +from pennylane.measurements import ( + CountsMP, + ExpectationMP, + MidMeasureMP, + ProbabilityMP, + SampleMP, + VarianceMP, +) +from pennylane.transforms.dynamic_one_shot import gather_mcm from pennylane.typing import Result from .apply_operation import apply_operation @@ -180,7 +190,7 @@ def get_final_state(circuit, debugger=None, **execution_kwargs): # new state is batched if i) the old state is batched, or ii) the new op adds a batch dim is_state_batched = is_state_batched or (op.batch_size is not None) - for _ in range(len(circuit.wires) - len(circuit.op_wires)): + for _ in range(circuit.num_wires - len(circuit.op_wires)): # if any measured wires are not operated on, we pad the state with zeros. # We know they belong at the end because the circuit is in standard wire-order state = qml.math.stack([state, qml.math.zeros_like(state)], axis=-1) @@ -213,6 +223,7 @@ def measure_final_state(circuit, state, is_state_batched, **execution_kwargs) -> Returns: Tuple[TensorLike]: The measurement results """ + rng = execution_kwargs.get("rng", None) prng_key = execution_kwargs.get("prng_key", None) mid_measurements = execution_kwargs.get("mid_measurements", None) @@ -277,6 +288,11 @@ def simulate( postselect_mode (str): Configuration for handling shots with mid-circuit measurement postselection. Use ``"hw-like"`` to discard invalid shots and ``"fill-shots"`` to keep the same number of shots. Default is ``None``. + mcm_method (str): Strategy to use when executing circuits with mid-circuit measurements. + ``"deferred"`` is ignored. If mid-circuit measurements are found in the circuit, + the device will use ``"tree-traversal"`` if specified and the ``"one-shot"`` method + otherwise. For usage details, please refer to the + :doc:`main measurements page `. Returns: tuple(TensorLike): The results of the simulation @@ -296,6 +312,15 @@ def simulate( has_mcm = any(isinstance(op, MidMeasureMP) for op in circuit.operations) if circuit.shots and has_mcm: + if execution_kwargs.get("mcm_method", None) == "tree-traversal": + n_mcms = sum(isinstance(op, MidMeasureMP) for op in circuit.operations) + recursionlimit = sys.getrecursionlimit() + if 2 * n_mcms + 100 > recursionlimit: + sys.setrecursionlimit(2 * n_mcms + 100) + results = simulate_tree_mcm(circuit, prng_key=prng_key, **execution_kwargs) + sys.setrecursionlimit(recursionlimit) + return results + results = [] aux_circ = qml.tape.QuantumScript( circuit.operations, @@ -335,6 +360,369 @@ def simulate_partial(k): ) +# pylint: disable=too-many-arguments +def simulate_tree_mcm( + circuit: qml.tape.QuantumScript, + debugger=None, + mcm_active=None, + mcm_samples=None, + **execution_kwargs, +) -> Result: + """Simulate a single quantum script with native mid-circuit measurements using the tree-traversal algorithm. + + The tree-traversal algorithm recursively explores all combinations of mid-circuit measurement + outcomes using a depth-first approach. The depth-first approach requires ``n_mcm`` copies + of the state vector (``n_mcm + 1`` state vectors in total) and records ``n_mcm`` vectors + of mid-circuit measurement samples. It is generally more efficient than ``one-shot`` because it takes all samples + at a leaf at once and stops exploring more branches when a single shot is allocated to a sub-tree. + + Args: + circuit (QuantumTape): The single circuit to simulate + rng (Union[None, int, array_like[int], SeedSequence, BitGenerator, Generator]): A + seed-like parameter matching that of ``seed`` for ``numpy.random.default_rng``. + If no value is provided, a default RNG will be used. + prng_key (Optional[jax.random.PRNGKey]): An optional ``jax.random.PRNGKey``. This is + the key to the JAX pseudo random number generator. If None, a random key will be + generated. Only for simulation using JAX. + debugger (_Debugger): The debugger to use + interface (str): The machine learning interface to create the initial state with + mcm_active (dict): Mid-circuit measurement values or all parent circuits of ``circuit`` + mcm_samples (dict): Mid-circuit measurement samples or all parent circuits of ``circuit`` + + Returns: + tuple(TensorLike): The results of the simulation + """ + interface = execution_kwargs.get("interface", None) + postselect_mode = execution_kwargs.get("postselect_mode", None) + + ######################### + # shot vector treatment # + ######################### + if circuit.shots.has_partitioned_shots: + prng_key = execution_kwargs.pop("prng_key", None) + keys = jax_random_split(prng_key, num=circuit.shots.num_copies) + results = [] + for k, s in zip(keys, circuit.shots): + aux_circuit = qml.tape.QuantumScript( + circuit.operations, + circuit.measurements, + shots=s, + trainable_params=circuit.trainable_params, + ) + results.append(simulate_tree_mcm(aux_circuit, debugger, prng_key=k, **execution_kwargs)) + return tuple(results) + + ####################### + # main implementation # + ####################### + + # mcm_active is analogous to one-shot's mid_measurements dictionary, + # i.e. for each MCM in the circuit, there is a MidMeasureMP key with a value + # corresponding to the MCM. It is used in get_final_state to evaluate cond operations. + # Unlike the one-shot case, the value is not stochastically determined, + # it is fixed by the branch we're on, and hence the variable name mcm_active + mcm_active = mcm_active or {} + # mcm_active is the vector version of one-shot's mid_measurements dictionary, + # i.e. for each MCM in the circuit, there is a MidMeasureMP key with a value + # corresponding to all samples at that MCM. This is used to evaluate terminal + # measurements of MCMs. Update and pruning of invalid samples are performed by + # update_mcm_samples and prune_mcm_samples respectively. + mcm_samples = mcm_samples or {} + + circuit_base, circuit_next, op = circuit_up_to_first_mcm(circuit) + circuit_base = prepend_state_prep(circuit_base, interface, circuit.wires) + state, is_state_batched = get_final_state( + circuit_base, + debugger=debugger, + mid_measurements=mcm_active, + **execution_kwargs, + ) + measurements = measure_final_state(circuit_base, state, is_state_batched, **execution_kwargs) + + # Simply return measurements when ``circuit_base`` does not have an MCM + if circuit_next is None: + return measurements + + # For 1-shot measurements as 1-D arrays + if op.postselect is not None and postselect_mode == "fill-shots": + samples = op.postselect * qml.math.ones_like(measurements) + else: + samples = qml.math.atleast_1d(measurements) + update_mcm_samples(op, samples, mcm_active, mcm_samples) + + counts = samples_to_counts(samples) + measurements = [{} for _ in circuit_next.measurements] + single_measurement = len(circuit_next.measurements) == 1 + prng_key = execution_kwargs.pop("prng_key", None) + for branch, count in counts.items(): + if op.postselect is not None and branch != op.postselect: + prune_mcm_samples(op, branch, mcm_active, mcm_samples) + continue + prng_key, key = jax_random_split(prng_key) + mcm_active[op] = branch + new_state = branch_state(state, branch, op) + circuit_branch = qml.tape.QuantumScript( + [qml.StatePrep(new_state.ravel(), wires=circuit.wires)] + circuit_next.operations, + circuit_next.measurements, + shots=qml.measurements.Shots(count), + trainable_params=circuit_next.trainable_params, + ) + meas = simulate_tree_mcm( + circuit_branch, + debugger=debugger, + mcm_active=mcm_active, + mcm_samples=mcm_samples, + prng_key=key, + **execution_kwargs, + ) + if single_measurement: + meas = [meas] + for i, m in enumerate(meas): + measurements[i][branch] = (count, m) + + return combine_measurements(circuit, measurements, mcm_samples) + + +def branch_state(state, branch, mcm): + """Collapse the state on a given branch. + + Args: + state (TensorLike): The initial state + branch (int): The branch on which the state is collapsed + mcm (MidMeasureMP): Mid-circuit measurement object used to obtain the wires and ``reset`` + + Returns: + TensorLike: The collapsed state + """ + state = apply_operation(qml.Projector([branch], mcm.wires), state) + state = state / qml.math.norm(state) + if mcm.reset and branch == 1: + state = apply_operation(qml.PauliX(mcm.wires), state) + return state + + +def samples_to_counts(samples): + """Converts samples to counts. + + This function forces integer keys and values which are required by ``simulate_tree_mcm``. + """ + counts = qml.math.unique(samples, return_counts=True) + return dict((int(x), int(y)) for x, y in zip(*counts)) + + +def prepend_state_prep(circuit, interface, wires): + """Prepend a ``StatePrep`` operation with the prescribed ``wires`` to the circuit. + + ``get_final_state`` executes a circuit on a subset of wires found in operations + or measurements. This function makes sure that an initial state with the correct size is created + on the first invocation of ``simulate_tree_mcm``. ``wires`` should be the wires attribute + of the original circuit (which included all wires).""" + if isinstance(circuit[0], qml.operation.StatePrepBase): + return circuit + new_state = create_initial_state(wires, None, like=INTERFACE_TO_LIKE[interface]) + return qml.tape.QuantumScript( + [qml.StatePrep(new_state.ravel(), wires=wires)] + circuit.operations, + circuit.measurements, + shots=circuit.shots, + trainable_params=circuit.trainable_params, + ) + + +def prune_mcm_samples(op, branch, mcm_active, mcm_samples): + """Removes samples from mid-measurement sample dictionary given a MidMeasureMP and branch. + + Post-selection on a given mid-circuit measurement leads to ignoring certain branches + of the tree and samples. The corresponding samples in all other mid-circuit measurement + must be deleted accordingly. We need to find which samples are + corresponding to the current branch by looking at all parent nodes. + """ + mask = mcm_samples[op] == branch + for k, v in mcm_active.items(): + if k == op: + break + mask = np.logical_and(mask, mcm_samples[k] == v) + for k in mcm_samples.keys(): + mcm_samples[k] = mcm_samples[k][np.logical_not(mask)] + + +def update_mcm_samples(op, samples, mcm_active, mcm_samples): + """Updates the mid-measurement sample dictionary given a MidMeasureMP and samples. + + If the ``mcm_active`` dictionary is empty, we are at the root and ``mcm_samples` + is simply updated with ``samples``. + + If the ``mcm_active`` dictionary is not empty, we need to find which samples are + corresponding to the current branch by looking at all parent nodes. ``mcm_samples` + is then updated with samples at indices corresponding to parent nodes. + + To illustrate how the function works, let's take an example. Suppose there are + ``2**20`` shots in total and the computation is midway through the circuit at the + 7th MCM, the active branch is ``[0,1,1,0,0,1]`` and each MCM everything happened to + split the counts 50/50 so there are `2**14` samples to update. + These samples are not contiguous in general and they are correlated with the parent + branches, so where do they go? They must update the `2**14` elements whose parent + sequence corresponds to `[0,1,1,0,0,1]`. + """ + if mcm_active: + shape = next(iter(mcm_samples.values())).shape + mask = np.ones(shape, dtype=bool) + for k, v in mcm_active.items(): + if k == op: + break + mask = np.logical_and(mask, mcm_samples[k] == v) + if op not in mcm_samples: + mcm_samples[op] = np.empty(shape, dtype=samples.dtype) + mcm_samples[op][mask] = samples + else: + mcm_samples[op] = samples + + +def circuit_up_to_first_mcm(circuit): + """Returns two circuits; one that runs up-to the next mid-circuit measurement and one that runs beyond it. + + Measurement processes are computed on each branch, and then combined at the node. + This can be done recursively until a single node is left. + This is true for `counts`, `expval`, `probs` and `sample` but not `var` measurements. + There is no way to recombine "partial variances" from two branches, so `var` measurements are replaced + by `sample` measurements from which the variance is calculated (once samples from all branches are available). + + Args: + circuit (QuantumTape): The circuit to simulate + + Returns: + QuantumTape: Circuit up to the first MCM and measuring the MCM samples if an MCM is found and ``circuit`` otherwise + (QuantumTape, None): Rest of the circuit + (MidMeasureMP, None): The first MCM encountered in the circuit + """ + + # find next MidMeasureMP + def find_next_mcm(circuit): + for i, op in enumerate(circuit.operations): + if isinstance(op, MidMeasureMP): + return i, op + return len(circuit.operations) + 1, None + + i, op = find_next_mcm(circuit) + + if op is None: + return circuit, None, None + + # run circuit until next MidMeasureMP and sample + circuit_base = qml.tape.QuantumScript( + circuit.operations[0:i], + [qml.sample(wires=op.wires)], + shots=circuit.shots, + trainable_params=circuit.trainable_params, + ) + # circuit beyond next MidMeasureMP with VarianceMP <==> SampleMP + new_measurements = [] + for m in circuit.measurements: + if not m.mv: + if isinstance(m, VarianceMP): + new_measurements.append(SampleMP(obs=m.obs)) + else: + new_measurements.append(m) + circuit_next = qml.tape.QuantumScript( + circuit.operations[i + 1 :], + new_measurements, + shots=circuit.shots, + trainable_params=circuit.trainable_params, + ) + return circuit_base, circuit_next, op + + +def measurement_with_no_shots(measurement): + """Returns a NaN scalar or array of the correct size when executing an all-invalid-shot circuit.""" + if isinstance(measurement, ProbabilityMP): + return np.nan * np.ones(2 ** len(measurement.wires)) + return np.nan + + +def combine_measurements(circuit, measurements, mcm_samples): + """Returns combined measurement values of various types.""" + empty_mcm_samples = len(next(iter(mcm_samples.values()))) == 0 + if empty_mcm_samples and any(len(m) != 0 for m in mcm_samples.values()): # pragma: no cover + raise ValueError("mcm_samples have inconsistent shapes.") + # loop over measurements + final_measurements = [] + for circ_meas in circuit.measurements: + if circ_meas.mv and empty_mcm_samples: # pragma: no cover + comb_meas = measurement_with_no_shots(circ_meas) + elif circ_meas.mv: + mcm_samples = dict((k, v.reshape((-1, 1))) for k, v in mcm_samples.items()) + is_valid = qml.math.ones(list(mcm_samples.values())[0].shape[0], dtype=bool) + comb_meas = gather_mcm(circ_meas, mcm_samples, is_valid) + elif not measurements or not measurements[0]: # pragma: no cover + if len(measurements) > 0: + _ = measurements.pop(0) + comb_meas = measurement_with_no_shots(circ_meas) + else: + comb_meas = combine_measurements_core(circ_meas, measurements.pop(0)) + if isinstance(circ_meas, SampleMP): + comb_meas = qml.math.squeeze(comb_meas) + final_measurements.append(comb_meas) + # special treatment of var + for i, (c, m) in enumerate(zip(circuit.measurements, final_measurements)): + if not c.mv and isinstance(circuit.measurements[i], VarianceMP): + final_measurements[i] = qml.math.var(m) + return final_measurements[0] if len(final_measurements) == 1 else tuple(final_measurements) + + +@singledispatch +def combine_measurements_core(original_measurement, measures): # pylint: disable=unused-argument + """Returns the combined measurement value of a given type.""" + raise TypeError( + f"Native mid-circuit measurement mode does not support {type(original_measurement).__name__}" + ) + + +@combine_measurements_core.register +def _(original_measurement: CountsMP, measures): # pylint: disable=unused-argument + """The counts are accumulated using a ``Counter`` object.""" + keys = list(measures.keys()) + new_counts = Counter() + for k in keys: + new_counts.update(measures[k][1]) + return dict(sorted(new_counts.items())) + + +@combine_measurements_core.register +def _(original_measurement: ExpectationMP, measures): # pylint: disable=unused-argument + """The expectation value of two branches is a weighted sum of expectation values.""" + cum_value = 0 + total_counts = 0 + for v in measures.values(): + cum_value += v[0] * v[1] + total_counts += v[0] + return cum_value / total_counts + + +@combine_measurements_core.register +def _(original_measurement: ProbabilityMP, measures): # pylint: disable=unused-argument + """The combined probability of two branches is a weighted sum of the probabilities. Note the implementation is the same as for ``ExpectationMP``.""" + cum_value = 0 + total_counts = 0 + for v in measures.values(): + cum_value += v[0] * v[1] + total_counts += v[0] + return cum_value / total_counts + + +@combine_measurements_core.register +def _(original_measurement: SampleMP, measures): # pylint: disable=unused-argument + """The combined samples of two branches is obtained by concatenating the sample if each branch..""" + new_sample = tuple(qml.math.atleast_1d(m[1]) for m in measures.values()) + return np.squeeze(np.concatenate(new_sample)) + + +@combine_measurements_core.register +def _(original_measurement: VarianceMP, measures): # pylint: disable=unused-argument + """Intermediate ``VarianceMP`` measurements are in fact ``SampleMP`` measurements, + and hence the implementation is the same as for ``SampleMP``.""" + new_sample = tuple(qml.math.atleast_1d(m[1]) for m in measures.values()) + return np.squeeze(np.concatenate(new_sample)) + + @debug_logger def simulate_one_shot_native_mcm( circuit: qml.tape.QuantumScript, debugger=None, **execution_kwargs diff --git a/pennylane/fourier/reconstruct.py b/pennylane/fourier/reconstruct.py index 0d934a61778..7a363fe32f7 100644 --- a/pennylane/fourier/reconstruct.py +++ b/pennylane/fourier/reconstruct.py @@ -129,11 +129,11 @@ def _reconstruct_gen(fun, spectrum, shifts=None, x0=None, f0=None, interface=Non f_max = qml.math.max(spectrum) # If no shifts are provided, choose equidistant ones + need_f0 = True if not have_shifts: R = qml.math.shape(spectrum)[0] shifts = qml.math.arange(-R, R + 1) * 2 * np.pi / (f_max * (2 * R + 1)) * R zero_idx = R - need_f0 = True elif have_f0: zero_idx = qml.math.where(qml.math.isclose(shifts, qml.math.zeros_like(shifts[0]))) zero_idx = zero_idx[0][0] if (len(zero_idx) > 0 and len(zero_idx[0]) > 0) else None diff --git a/pennylane/math/multi_dispatch.py b/pennylane/math/multi_dispatch.py index 011cd67bb97..2c4684571f7 100644 --- a/pennylane/math/multi_dispatch.py +++ b/pennylane/math/multi_dispatch.py @@ -16,6 +16,7 @@ import functools from collections.abc import Sequence +# pylint: disable=wrong-import-order import autoray as ar import numpy as onp from autograd.numpy.numpy_boxes import ArrayBox diff --git a/pennylane/math/single_dispatch.py b/pennylane/math/single_dispatch.py index 420975c32db..892e5387830 100644 --- a/pennylane/math/single_dispatch.py +++ b/pennylane/math/single_dispatch.py @@ -16,6 +16,7 @@ # pylint:disable=protected-access,import-outside-toplevel,wrong-import-position, disable=unnecessary-lambda from importlib import import_module +# pylint: disable=wrong-import-order import autoray as ar import numpy as np from packaging.version import Version diff --git a/pennylane/math/utils.py b/pennylane/math/utils.py index e80b11d969a..9c42d037466 100644 --- a/pennylane/math/utils.py +++ b/pennylane/math/utils.py @@ -14,6 +14,7 @@ """Utility functions""" import warnings +# pylint: disable=wrong-import-order import autoray as ar import numpy as _np diff --git a/pennylane/ops/qubit/observables.py b/pennylane/ops/qubit/observables.py index b66e2dbc16b..b20e96dd478 100644 --- a/pennylane/ops/qubit/observables.py +++ b/pennylane/ops/qubit/observables.py @@ -355,7 +355,7 @@ class Projector(Observable): Args: state (tensor-like): Input state of shape ``(n,)`` for a basis-state projector, or ``(2**n,)`` - for a state-vector projector. + for a statevector projector. wires (Iterable): wires that the projector acts on. id (str or None): String representing the operation (optional). diff --git a/pennylane/ops/qubit/state_preparation.py b/pennylane/ops/qubit/state_preparation.py index be37dcf5530..d7ae589e067 100644 --- a/pennylane/ops/qubit/state_preparation.py +++ b/pennylane/ops/qubit/state_preparation.py @@ -99,7 +99,7 @@ def compute_decomposition(n, wires): return [BasisStatePreparation(n, wires)] def state_vector(self, wire_order=None): - """Returns a state-vector of shape ``(2,) * num_wires``.""" + """Returns a statevector of shape ``(2,) * num_wires``.""" prep_vals = self.parameters[0] if any(i not in [0, 1] for i in prep_vals): raise ValueError("BasisState parameter must consist of 0 or 1 integers.") diff --git a/pennylane/ops/qutrit/state_preparation.py b/pennylane/ops/qutrit/state_preparation.py index c34ded66f51..3d66b41d4e8 100644 --- a/pennylane/ops/qutrit/state_preparation.py +++ b/pennylane/ops/qutrit/state_preparation.py @@ -96,7 +96,7 @@ def compute_decomposition(n, wires): return [QutritBasisStatePreparation(n, wires)] def state_vector(self, wire_order=None): - """Returns a state-vector of shape ``(3,) * num_wires``.""" + """Returns a statevector of shape ``(3,) * num_wires``.""" prep_vals = self.parameters[0] if any(i not in [0, 1, 2] for i in prep_vals): raise ValueError("QutritBasisState parameter must consist of 0, 1 or 2 integers.") diff --git a/pennylane/transforms/broadcast_expand.py b/pennylane/transforms/broadcast_expand.py index 36a02f32173..cdd4c5a8192 100644 --- a/pennylane/transforms/broadcast_expand.py +++ b/pennylane/transforms/broadcast_expand.py @@ -16,6 +16,7 @@ from typing import Callable, Sequence import pennylane as qml +from pennylane.measurements import MidMeasureMP, SampleMP from .core import transform @@ -132,6 +133,16 @@ def null_postprocessing(results): processing_fn = null_postprocessing else: + + has_postselect = any( + op.postselect is not None for op in tape.operations if isinstance(op, MidMeasureMP) + ) + has_sample = any(isinstance(op, SampleMP) for op in tape.measurements) + if has_postselect and has_sample: + raise ValueError( + "Returning qml.sample is not supported when using post-selected mid-circuit measurements and parameters broadcasting." + ) + num_tapes = tape.batch_size new_ops = _split_operations(tape.operations, num_tapes) diff --git a/pennylane/transforms/core/transform_program.py b/pennylane/transforms/core/transform_program.py index 47d53b7f53e..14d492f704e 100644 --- a/pennylane/transforms/core/transform_program.py +++ b/pennylane/transforms/core/transform_program.py @@ -409,7 +409,7 @@ def jacobian(classical_function, program, argnums, *args, **kwargs): raise qml.QuantumFunctionError("No trainable parameters.") classical_function = partial(classical_function, program) - + jac = None if qnode.interface == "autograd": jac = qml.jacobian(classical_function, argnum=argnums)(*args, **kwargs) diff --git a/pennylane/workflow/qnode.py b/pennylane/workflow/qnode.py index 985eb24cba8..308015faaa9 100644 --- a/pennylane/workflow/qnode.py +++ b/pennylane/workflow/qnode.py @@ -227,7 +227,9 @@ class QNode: usage details, please refer to the :doc:`main measurements page `. mcm_method (str): Strategy to use when executing circuits with mid-circuit measurements. Use ``"deferred"`` to apply the deferred measurements principle (using the :func:`~pennylane.defer_measurements` transform), - or ``"one-shot"`` if using finite shots to execute the circuit for each shot separately. If not provided, + or ``"one-shot"`` if using finite shots to execute the circuit for each shot separately. + ``default.qubit`` also supports ``"tree-traversal"`` which visits the tree of possible MCM sequences + as the name suggests. If not provided, the device will determine the best choice automatically. For usage details, please refer to the :doc:`main measurements page `. @@ -1046,9 +1048,9 @@ def _execution_component(self, args: tuple, kwargs: dict, override_shots) -> qml finite_shots = _get_device_shots if override_shots is False else override_shots if not finite_shots: mcm_config.postselect_mode = None - if mcm_config.mcm_method == "one-shot": + if mcm_config.mcm_method in ("one-shot", "tree-traversal"): raise ValueError( - "Cannot use the 'one-shot' method for mid-circuit measurements with analytic mode." + f"Cannot use the '{mcm_config.mcm_method}' method for mid-circuit measurements with analytic mode." ) if mcm_config.mcm_method == "single-branch-statistics": raise ValueError("Cannot use mcm_method='single-branch-statistics' without qml.qjit.") diff --git a/tests/devices/default_qubit/test_default_qubit_native_mcm.py b/tests/devices/default_qubit/test_default_qubit_native_mcm.py index 6f882cd332d..a79ef70fbaa 100644 --- a/tests/devices/default_qubit/test_default_qubit_native_mcm.py +++ b/tests/devices/default_qubit/test_default_qubit_native_mcm.py @@ -20,6 +20,7 @@ import pennylane as qml from pennylane.devices.qubit.apply_operation import MidMeasureMP, apply_mid_measure +from pennylane.devices.qubit.simulate import combine_measurements_core, measurement_with_no_shots from pennylane.transforms.dynamic_one_shot import fill_in_value pytestmark = pytest.mark.slow @@ -31,6 +32,26 @@ def get_device(**kwargs): return qml.device("default.qubit", **kwargs) +def test_combine_measurements_core(): + """Test that combine_measurements_core raises for unsupported measurements.""" + with pytest.raises(TypeError, match="Native mid-circuit measurement mode does not support"): + _ = combine_measurements_core(qml.classical_shadow(0), None) + + +def test_measurement_with_no_shots(): + """Test that measurement_with_no_shots returns the correct NaNs.""" + assert np.isnan(measurement_with_no_shots(qml.expval(0))) + probs = measurement_with_no_shots(qml.probs(wires=0)) + assert probs.shape == (2,) + assert all(np.isnan(probs).tolist()) + probs = measurement_with_no_shots(qml.probs(wires=[0, 1])) + assert probs.shape == (4,) + assert all(np.isnan(probs).tolist()) + probs = measurement_with_no_shots(qml.probs(op=qml.PauliY(0))) + assert probs.shape == (2,) + assert all(np.isnan(probs).tolist()) + + def test_apply_mid_measure(): """Test that apply_mid_measure raises if applied to a batched state.""" with pytest.raises(ValueError, match="MidMeasureMP cannot be applied to batched states."): @@ -95,6 +116,41 @@ def func(x, y): func(*params) +@pytest.mark.parametrize("postselect_mode", ["hw-like", "fill-shots"]) +def test_tree_traversal_postselect_mode(postselect_mode): + """Test that invalid shots are discarded if requested""" + shots = 100 + dev = qml.device("default.qubit", shots=shots) + + @qml.qnode(dev, mcm_method="tree-traversal", postselect_mode=postselect_mode) + def f(x): + qml.RX(x, 0) + _ = qml.measure(0, postselect=1) + return qml.sample(wires=[0, 1]) + + res = f(np.pi / 2) + + if postselect_mode == "hw-like": + assert len(res) < shots + else: + assert len(res) == shots + assert np.all(res != np.iinfo(np.int32).min) + + +def test_deep_circuit(): + """Tests that DefaultQubit handles a circuit with more than 1000 mid-circuit measurements.""" + + dev = qml.device("default.qubit", shots=10) + + def func(x): + for _ in range(600): + qml.RX(x, wires=0) + m0 = qml.measure(0) + return qml.expval(qml.PauliY(0)), qml.expval(m0) + + _ = qml.QNode(func, dev, mcm_method="tree-traversal")(0.1234) + + # pylint: disable=unused-argument def obs_tape(x, y, z, reset=False, postselect=None): qml.RX(x, 0) @@ -114,14 +170,15 @@ def obs_tape(x, y, z, reset=False, postselect=None): return m0, m1 -@pytest.mark.parametrize("shots", [5000, [5000, 5001]]) +@pytest.mark.parametrize("mcm_method", ["one-shot", "tree-traversal"]) +@pytest.mark.parametrize("shots", [5500, [5500, 5501]]) @pytest.mark.parametrize("postselect", [None, 0, 1]) @pytest.mark.parametrize("measure_f", [qml.counts, qml.expval, qml.probs, qml.sample, qml.var]) @pytest.mark.parametrize( "meas_obj", [qml.PauliZ(0), qml.PauliY(1), [0], [0, 1], [1, 0], "mcm", "composite_mcm", "mcm_list"], ) -def test_simple_dynamic_circuit(shots, measure_f, postselect, meas_obj): +def test_simple_dynamic_circuit(mcm_method, shots, measure_f, postselect, meas_obj): """Tests that DefaultQubit handles a simple dynamic circuit with the following measurements: * qml.counts with obs (comp basis or not), single wire, multiple wires (ordered/unordered), MCM, f(MCM), MCM list @@ -141,7 +198,6 @@ def test_simple_dynamic_circuit(shots, measure_f, postselect, meas_obj): dev = get_device(shots=shots) params = [np.pi / 2.5, np.pi / 3, -np.pi / 3.5] - @qml.qnode(dev) def func(x, y, z): m0, m1 = obs_tape(x, y, z, postselect=postselect) mid_measure = ( @@ -151,18 +207,16 @@ def func(x, y, z): measurement_value = mid_measure if isinstance(meas_obj, str) else meas_obj return measure_f(**{measurement_key: measurement_value}) - func1 = func - results1 = func1(*params) - - func2 = qml.defer_measurements(func) - results2 = func2(*params) + results0 = qml.QNode(func, dev, mcm_method=mcm_method)(*params) + results1 = qml.QNode(func, dev, mcm_method="deferred")(*params) - mcm_utils.validate_measurements(measure_f, shots, results1, results2) + mcm_utils.validate_measurements(measure_f, shots, results1, results0) +@pytest.mark.parametrize("mcm_method", ["one-shot", "tree-traversal"]) @pytest.mark.parametrize("postselect", [None, 0, 1]) @pytest.mark.parametrize("reset", [False, True]) -def test_multiple_measurements_and_reset(postselect, reset): +def test_multiple_measurements_and_reset(mcm_method, postselect, reset): """Tests that DefaultQubit handles a circuit with a single mid-circuit measurement with reset and a conditional gate. Multiple measurements of the mid-circuit measurement value are performed. This function also tests `reset` parametrizing over the parameter.""" @@ -170,9 +224,11 @@ def test_multiple_measurements_and_reset(postselect, reset): dev = get_device(shots=shots) params = [np.pi / 2.5, np.pi / 3, -np.pi / 3.5] obs = qml.PauliY(1) + state = qml.math.zeros((4,)) + state[0] = 1.0 - @qml.qnode(dev) def func(x, y, z): + qml.StatePrep(state, wires=[0, 1]) mcms = obs_tape(x, y, z, reset=reset, postselect=postselect) return ( qml.counts(op=obs), @@ -182,18 +238,16 @@ def func(x, y, z): qml.var(op=obs), ) - func1 = func - func2 = qml.defer_measurements(func) + results0 = qml.QNode(func, dev, mcm_method=mcm_method)(*params) + results1 = qml.QNode(func, dev, mcm_method="deferred")(*params) - results1 = func1(*params) - results2 = func2(*params) - - for measure_f, r1, r2 in zip( - [qml.counts, qml.expval, qml.probs, qml.sample, qml.var], results1, results2 + for measure_f, r1, r0 in zip( + [qml.counts, qml.expval, qml.probs, qml.sample, qml.var], results1, results0 ): - mcm_utils.validate_measurements(measure_f, shots, r1, r2) + mcm_utils.validate_measurements(measure_f, shots, r1, r0) +@pytest.mark.parametrize("mcm_method", ["one-shot", "tree-traversal"]) @pytest.mark.parametrize( "mcm_f", [ @@ -208,7 +262,7 @@ def func(x, y, z): ], ) @pytest.mark.parametrize("measure_f", [qml.counts, qml.expval, qml.probs, qml.sample, qml.var]) -def test_composite_mcms(mcm_f, measure_f): +def test_composite_mcms(mcm_method, mcm_f, measure_f): """Tests that DefaultQubit handles a circuit with a composite mid-circuit measurement and a conditional gate. A single measurement of a composite mid-circuit measurement is performed at the end.""" @@ -228,7 +282,6 @@ def test_composite_mcms(mcm_f, measure_f): dev = get_device(shots=shots) param = np.pi / 3 - @qml.qnode(dev) def func(x): qml.RX(x, 0) m0 = qml.measure(0) @@ -243,15 +296,13 @@ def func(x): ) return measure_f(op=obs) - func1 = func - func2 = qml.defer_measurements(func) - - results1 = func1(param) - results2 = func2(param) + results0 = qml.QNode(func, dev, mcm_method=mcm_method)(param) + results1 = qml.QNode(func, dev, mcm_method="deferred")(param) - mcm_utils.validate_measurements(measure_f, shots, results1, results2) + mcm_utils.validate_measurements(measure_f, shots, results1, results0) +@pytest.mark.parametrize("mcm_method", ["one-shot", "tree-traversal"]) @pytest.mark.parametrize( "mcm_f", [ @@ -262,14 +313,13 @@ def func(x): lambda x, y: 4.0 * x + 2.0 * y, ], ) -def test_counts_return_type(mcm_f): +def test_counts_return_type(mcm_method, mcm_f): """Tests that DefaultQubit returns the same keys for ``qml.counts`` measurements with ``dynamic_one_shot`` and ``defer_measurements``.""" - shots = 20 + shots = 500 dev = get_device(shots=shots) param = np.pi / 3 - @qml.qnode(dev) def func(x): qml.RX(x, 0) m0 = qml.measure(0) @@ -278,13 +328,11 @@ def func(x): qml.cond((m0 + m1) == 2, qml.RY)(2.0 * x, 0) return qml.counts(op=mcm_f(m0, m1)) - func1 = func - func2 = qml.defer_measurements(func) + results0 = qml.QNode(func, dev, mcm_method=mcm_method)(param) + results1 = qml.QNode(func, dev, mcm_method="deferred")(param) - results1 = func1(param) - results2 = func2(param) - for r1, r2 in zip(results1.keys(), results2.keys()): - assert r1 == r2 + for r1, r0 in zip(results1.keys(), results0.keys()): + assert r1 == r0 @pytest.mark.parametrize("shots", [5000]) @@ -324,10 +372,11 @@ def func(x, y): assert np.allclose(grad1, grad2, atol=0.01, rtol=0.3) -@pytest.mark.parametrize("shots", [5000, [5000, 5001]]) -@pytest.mark.parametrize("postselect", [None, 0, 1]) -@pytest.mark.parametrize("measure_fn", [qml.expval, qml.sample, qml.probs, qml.counts]) -def test_broadcasting_qnode(shots, postselect, measure_fn): +@pytest.mark.parametrize("mcm_method", ["one-shot", "tree-traversal"]) +@pytest.mark.parametrize("shots", [5500, [5500, 5501]]) +@pytest.mark.parametrize("postselect", [None, 0]) +@pytest.mark.parametrize("measure_fn", [qml.counts, qml.expval, qml.probs, qml.sample]) +def test_broadcasting_qnode(mcm_method, shots, postselect, measure_fn): """Test that executing qnodes with broadcasting works as expected""" if measure_fn is qml.sample and postselect is not None: pytest.skip("Postselection with samples doesn't work with broadcasting") @@ -336,29 +385,26 @@ def test_broadcasting_qnode(shots, postselect, measure_fn): param = [[np.pi / 3, np.pi / 4], [np.pi / 6, 2 * np.pi / 3]] obs = qml.PauliZ(0) @ qml.PauliZ(1) - @qml.qnode(dev) def func(x, y): obs_tape(x, y, None, postselect=postselect) return measure_fn(op=obs) - func1 = func - func2 = qml.defer_measurements(func) + results0 = qml.QNode(func, dev, mcm_method=mcm_method)(*param) + results1 = qml.QNode(func, dev, mcm_method="deferred")(*param) - results1 = func1(*param) - results2 = func2(*param) - - mcm_utils.validate_measurements(measure_fn, shots, results1, results2, batch_size=2) + mcm_utils.validate_measurements(measure_fn, shots, results1, results0, batch_size=2) if measure_fn is qml.sample and postselect is None: for i in range(2): # batch_size if isinstance(shots, list): - for s, r1, r2 in zip(shots, results1, results2): + for s, r1, r2 in zip(shots, results1, results0): assert len(r1[i]) == len(r2[i]) == s else: - assert len(results1[i]) == len(results2[i]) == shots + assert len(results1[i]) == len(results0[i]) == shots -def test_sample_with_broadcasting_and_postselection_error(): +@pytest.mark.parametrize("mcm_method", ["one-shot", "tree-traversal"]) +def test_sample_with_broadcasting_and_postselection_error(mcm_method): """Test that an error is raised if returning qml.sample if postselecting with broadcasting""" tape = qml.tape.QuantumScript( [qml.RX([0.1, 0.2], 0), MidMeasureMP(0, postselect=1)], [qml.sample(wires=0)], shots=10 @@ -368,42 +414,40 @@ def test_sample_with_broadcasting_and_postselection_error(): dev = get_device(shots=10) - @qml.qnode(dev) - def circuit(): - qml.RX([0.1, 0.2], 0) + @qml.qnode(dev, mcm_method=mcm_method) + def circuit(x): + qml.RX(x, 0) qml.measure(0, postselect=1) return qml.sample(wires=0) with pytest.raises(ValueError, match="Returning qml.sample is not supported when"): - _ = circuit() + _ = circuit([0.1, 0.2]) # pylint: disable=not-an-iterable @pytest.mark.jax -@pytest.mark.parametrize("shots", [100, [100, 101]]) +@pytest.mark.parametrize("mcm_method", ["one-shot", "tree-traversal"]) +@pytest.mark.parametrize("shots", [100, [100, 101], [100, 100, 101]]) @pytest.mark.parametrize("postselect", [None, 0, 1]) -def test_sample_with_prng_key(shots, postselect): +def test_sample_with_prng_key(mcm_method, shots, postselect): """Test that setting a PRNGKey gives the expected behaviour. With separate calls to DefaultQubit.execute, the same results are expected when using a PRNGKey""" # pylint: disable=import-outside-toplevel from jax.random import PRNGKey dev = get_device(shots=shots, seed=PRNGKey(678)) - param = [np.pi / 4, np.pi / 3] + params = [np.pi / 4, np.pi / 3] obs = qml.PauliZ(0) @ qml.PauliZ(1) - @qml.qnode(dev) def func(x, y): obs_tape(x, y, None, postselect=postselect) return qml.sample(op=obs) - func1 = func - func2 = qml.defer_measurements(func) - - results1 = func1(*param) - results2 = func2(*param) + func0 = qml.QNode(func, dev, mcm_method=mcm_method) + results0 = func0(*params) + results1 = qml.QNode(func, dev, mcm_method="deferred")(*params) - mcm_utils.validate_measurements(qml.sample, shots, results1, results2, batch_size=None) + mcm_utils.validate_measurements(qml.sample, shots, results1, results0, batch_size=None) evals = obs.eigvals() for eig in evals: @@ -415,13 +459,13 @@ def func(x, y): else: assert not np.all(np.isclose(results1, eig)) - results3 = func1(*param) + results0_2 = func0(*params) # Same result expected with multiple executions if isinstance(shots, list): - for r1, r3 in zip(results1, results3): - assert np.allclose(r1, r3) + for r0, r0_2 in zip(results0, results0_2): + assert np.allclose(r0, r0_2) else: - assert np.allclose(results1, results3) + assert np.allclose(results0, results0_2) # pylint: disable=import-outside-toplevel, not-an-iterable diff --git a/tests/math/test_multi_dispatch.py b/tests/math/test_multi_dispatch.py index 8eba39e0deb..6a5c416697d 100644 --- a/tests/math/test_multi_dispatch.py +++ b/tests/math/test_multi_dispatch.py @@ -13,7 +13,7 @@ # limitations under the License. """ Assertion test for multi_dispatch function/decorator """ -# pylint: disable=unused-argument,no-value-for-parameter,too-few-public-methods +# pylint: disable=unused-argument,no-value-for-parameter,too-few-public-methods,wrong-import-order import autoray import numpy as onp import pytest @@ -319,14 +319,14 @@ def test_tf(self): @pytest.mark.all_interfaces class TestNorm: mats_intrf_norm = ( - (np.array([0.5, -1, 2]), "numpy", np.array(2), dict()), - (np.array([[5, 6], [-2, 3]]), "numpy", np.array(11), dict()), - (torch.tensor([0.5, -1, 2]), "torch", torch.tensor(2), dict()), + (np.array([0.5, -1, 2]), "numpy", np.array(2), {}), + (np.array([[5, 6], [-2, 3]]), "numpy", np.array(11), {}), + (torch.tensor([0.5, -1, 2]), "torch", torch.tensor(2), {}), (torch.tensor([[5.0, 6.0], [-2.0, 3.0]]), "torch", torch.tensor(11), {"axis": (0, 1)}), - (tf.Variable([0.5, -1, 2]), "tensorflow", tf.Variable(2), dict()), + (tf.Variable([0.5, -1, 2]), "tensorflow", tf.Variable(2), {}), (tf.Variable([[5, 6], [-2, 3]]), "tensorflow", tf.Variable(11), {"axis": [-2, -1]}), - (jnp.array([0.5, -1, 2]), "jax", jnp.array(2), dict()), - (jnp.array([[5, 6], [-2, 3]]), "jax", jnp.array(11), dict()), + (jnp.array([0.5, -1, 2]), "jax", jnp.array(2), {}), + (jnp.array([[5, 6], [-2, 3]]), "jax", jnp.array(11), {}), ) @pytest.mark.parametrize("arr, expected_intrf, expected_norm, kwargs", mats_intrf_norm) diff --git a/tests/ops/functions/test_iterative_qpe.py b/tests/ops/functions/test_iterative_qpe.py index c604c97062b..e06bdb9a4b9 100644 --- a/tests/ops/functions/test_iterative_qpe.py +++ b/tests/ops/functions/test_iterative_qpe.py @@ -23,15 +23,15 @@ class TestIQPE: """Test to check that the iterative quantum phase estimation function works as expected.""" + @pytest.mark.parametrize("mcm_method", ["deferred", "tree-traversal"]) @pytest.mark.parametrize("phi", (1.0, 2.0, 3.0)) - def test_compare_qpe(self, phi): + def test_compare_qpe(self, mcm_method, phi): """Test to check that the results obtained are equivalent to those of QuantumPhaseEstimation""" # TODO: When we have general statistics on measurements we can calculate it exactly with qml.probs dev = qml.device("default.qubit", shots=10000000) - @qml.defer_measurements - @qml.qnode(dev) + @qml.qnode(dev, mcm_method=mcm_method) def circuit_iterative(): # Initial state qml.PauliX(wires=[0]) @@ -168,7 +168,7 @@ def test_size_return(self, iters): dev = qml.device("default.qubit", shots=1) - @qml.qnode(dev) + @qml.qnode(dev, mcm_method="one-shot") def circuit(): m = qml.iterative_qpe(qml.RZ(1.0, wires=[0]), [1], iters=iters) return [qml.sample(op=meas) for meas in m] diff --git a/tests/test_qnode.py b/tests/test_qnode.py index f4700935b19..966f6d31467 100644 --- a/tests/test_qnode.py +++ b/tests/test_qnode.py @@ -975,23 +975,8 @@ def conditional_ry_qnode(x): r2 = conditional_ry_qnode(first_par) assert np.allclose(r1, r2) - @qml.defer_measurements - @qml.qnode(dev) - def cry_qnode_deferred(x): - """QNode where we apply a controlled Y-rotation.""" - qml.BasisStatePreparation(basis_state, wires=[0, 1]) - qml.CRY(x, wires=[0, 1]) - return qml.sample(qml.PauliZ(1)) - - @qml.defer_measurements - @qml.qnode(dev) - def conditional_ry_qnode_deferred(x): - """QNode where the defer measurements transform is applied by - default under the hood.""" - qml.BasisStatePreparation(basis_state, wires=[0, 1]) - m_0 = qml.measure(0) - qml.cond(m_0, qml.RY)(x, wires=1) - return qml.sample(qml.PauliZ(1)) + cry_qnode_deferred = qml.defer_measurements(cry_qnode) + conditional_ry_qnode_deferred = qml.defer_measurements(conditional_ry_qnode) r1 = cry_qnode_deferred(first_par) r2 = conditional_ry_qnode_deferred(first_par) @@ -1014,7 +999,6 @@ def cry_qnode(x): return qml.expval(qml.PauliZ(1)) @qml.qnode(dev, interface=interface, diff_method="parameter-shift") - @qml.defer_measurements def conditional_ry_qnode(x): """QNode where the defer measurements transform is applied by default under the hood.""" @@ -1024,9 +1008,12 @@ def conditional_ry_qnode(x): qml.cond(m_0, qml.RY)(x, wires=1) return qml.expval(qml.PauliZ(1)) + dm_conditional_ry_qnode = qml.defer_measurements(conditional_ry_qnode) + x_ = -0.654 x1 = tf.Variable(x_, dtype=tf.float64) x2 = tf.Variable(x_, dtype=tf.float64) + x3 = tf.Variable(x_, dtype=tf.float64) with tf.GradientTape() as tape1: r1 = cry_qnode(x1) @@ -1034,11 +1021,17 @@ def conditional_ry_qnode(x): with tf.GradientTape() as tape2: r2 = conditional_ry_qnode(x2) + with tf.GradientTape() as tape3: + r3 = dm_conditional_ry_qnode(x3) + assert np.allclose(r1, r2) + assert np.allclose(r1, r3) grad1 = tape1.gradient(r1, x1) grad2 = tape2.gradient(r2, x2) + grad3 = tape3.gradient(r3, x3) assert np.allclose(grad1, grad2) + assert np.allclose(grad1, grad3) @pytest.mark.torch @pytest.mark.parametrize("interface", ["torch", "auto"]) @@ -1719,19 +1712,21 @@ class TestMCMConfiguration: """Tests for MCM configuration arguments""" @pytest.mark.parametrize("dev_name", ["default.qubit", "default.qubit.legacy"]) - def test_one_shot_error_without_shots(self, dev_name): - """Test that an error is raised if mcm_method="one-shot" with no shots""" + @pytest.mark.parametrize("mcm_method", ["one-shot", "tree-traversal"]) + def test_one_shot_error_without_shots(self, dev_name, mcm_method): + """Test that an error is raised if mcm_method="one-shot"/"tree-traversal" with no shots""" dev = qml.device(dev_name, wires=3) param = np.pi / 4 - @qml.qnode(dev, mcm_method="one-shot") + @qml.qnode(dev, mcm_method=mcm_method) def f(x): qml.RX(x, 0) _ = qml.measure(0) return qml.probs(wires=[0, 1]) with pytest.raises( - ValueError, match="Cannot use the 'one-shot' method for mid-circuit measurements with" + ValueError, + match=f"Cannot use the '{mcm_method}' method for mid-circuit measurements with", ): _ = f(param)