Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Encapsulate instruction in args in "Instruction" class #7020

Closed
wants to merge 4 commits into from

Conversation

mtreinish
Copy link
Member

Summary

This commit introduces a a new class for representing an instruction
with it's operands, Operation. An Operation object contains 3 fields an
instruction, a list of Qubits for the qargs, and a list of Clbits for
the cargs. The operation class is now used for all enties in the
QuantumCircuit's data attribute list, instead of the previous tuple of
the form (instruction, qargs, cargs). For backwards compatibility an
Operation object also implements the sequence protocol and can be used
as a tuple, although named attribute performance will be better (ie
operation.instruction returns faster than operation[0], but both return
the same object). Moving forward we should start update the tuple usage
internally to use attribute access instead.

Details and comments

TODO:

  • release notes
  • tests for new class
  • benchmark to see intermediate overhead (any regression this causes should be corrected once we update all the tuple access to be attribute access)

This commit introduces a a new class for representing an instruction
with it's operands, Operation. An Operation object contains 3 fields an
instruction, a list of Qubits for the qargs, and a list of Clbits for
the cargs. The operation class is now used for all enties in the
QuantumCircuit's data attribute list, instead of the previous tuple of
the form (instruction, qargs, cargs). For backwards compatibility an
Operation object also implements the sequence protocol and can be used
as a tuple, although named attribute performance will be better (ie
operation.instruction returns faster than operation[0], but both return
the same object). Moving forward we should start update the tuple usage
internally to use attribute access instead.
@mtreinish mtreinish added the Changelog: New Feature Include in the "Added" section of the changelog label Sep 14, 2021
@mtreinish mtreinish added this to the 0.19 milestone Sep 14, 2021
@mtreinish mtreinish requested a review from a team as a code owner September 14, 2021 18:32
@mtreinish
Copy link
Member Author

I'm thinking for performance we'll need to update the access patterns before merging this (which increases the scope of the PR quite a bit). The test execution seems to have slowed down a ton (mostly the shor's algorithm tests).

@mtreinish mtreinish requested a review from ajavadia September 14, 2021 20:56
@mtreinish
Copy link
Member Author

For initial benchmarking I ran the quantum volume asv benchmarks:

Benchmarks that have improved:

       before           after         ratio
     [522de2a0]       [895f094d]
     <main>       <operation-class>
-      2.86±0.01s       2.56±0.01s     0.90  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(27, 'translator')

Benchmarks that have stayed the same:

       before           after         ratio
     [522de2a0]       [895f094d]
     <main>       <operation-class>
        10.6±0.7s          15.1±2s    ~1.43  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(20, 'synthesis')
         68.0±3ms         73.2±3ms     1.08  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(5, 'translator')
        3.58±0.4s        3.85±0.3s     1.08  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(14, 'synthesis')
        85.6±10ms        91.8±20ms     1.07  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(3, 'synthesis')
         24.4±2ms         25.8±3ms     1.06  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(3, 'translator')
         240±10ms         247±20ms     1.03  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(8, 'translator')
      14.3±0.03ms       14.6±0.3ms     1.03  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(2, 'translator')
       18.6±0.08s        18.8±0.4s     1.01  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(27, 'synthesis')
       25.3±0.4ms       25.5±0.1ms     1.01  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(2, 'synthesis')
      1.28±0.01ms      1.28±0.01ms     1.01  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(1, 'translator')
         750±40ms         751±40ms     1.00  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(14, 'translator')
         252±30ms         252±40ms     1.00  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(5, 'synthesis')
      4.13±0.01ms      4.10±0.01ms     0.99  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(1, 'synthesis')
       1.56±0.08s        1.51±0.1s     0.97  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(20, 'translator')
        1.12±0.2s       1.03±0.08s     0.92  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(8, 'synthesis')

but the tests definitely show a regression in the shor's algorithm tests:

the 10 slowest tests for me locally with this pr:

Test id                                                                                             Runtime (s)
--------------------------------------------------------------------------------------------------  -----------
test.python.algorithms.test_backendv1.TestBackendV1.test_shor_factoring                             298.283
test.python.algorithms.test_shor.TestShor.test_shor_factoring_1__15___qasm_simulator____3__5__      295.052
test.python.algorithms.test_shor.TestShor.test_shor_quantum_result_2__15__7__4_                     294.995
test.python.algorithms.test_shor.TestShor.test_shor_exponentiation_result_1__15__4___1__4__         293.355
test.python.algorithms.test_shor.TestShor.test_shor_quantum_result_1__15__4__2_                     293.179
test.python.algorithms.test_shor.TestShor.test_shor_exponentiation_result_2__15__7___1__4__7__13__  292.274
test.python.algorithms.test_shor.TestShor.test_shor_no_factors_1_5                                  106.115
test.python.algorithms.test_shor.TestShor.test_shor_no_factors_2_7                                  105.409
test.python.algorithms.test_phase_estimator.TestHamiltonianPhaseEstimation.test_H2_hamiltonian       28.868
test.python.algorithms.test_linear_solvers.TestLinearSolver.test_hhl_4                               27.847

vs running with main:

Test id                                                                                                      Runtime (s)
-----------------------------------------------------------------------------------------------------------  -----------
test.python.algorithms.test_linear_solvers.TestLinearSolver.test_hhl_4                                       27.110
test.python.algorithms.test_phase_estimator.TestHamiltonianPhaseEstimation.test_H2_hamiltonian               26.235
test.python.circuit.test_controlled_gate.TestControlledGate.test_controlled_random_unitary_5_5               20.085
test.python.algorithms.test_backendv1.TestBackendV1.test_shor_factoring                                      19.538
test.python.quantum_info.states.test_stabilizerstate.TestStabilizerState.test_sample_counts_memory_ghz       15.290
test.python.test_examples.TestPythonExamples.test_all_examples                                               13.586
test.python.quantum_info.test_synthesis.TestTwoQubitWeylDecomposition.test_two_qubit_weyl_decomposition_abc  13.127
test.python.algorithms.test_shor.TestShor.test_shor_exponentiation_result_2__15__7___1__4__7__13__           12.690
test.python.algorithms.test_shor.TestShor.test_shor_exponentiation_result_1__15__4___1__4__                  12.376
test.python.algorithms.test_shor.TestShor.test_shor_quantum_result_1__15__4__2_                              12.144

now I'm doing a full asv benchmark to see what things look like in a more controlled setting. But I think we're going to want to update everything in the repo to use attr based access instead of index based before we merge this

@mtreinish
Copy link
Member Author

Yeah, there is definitely overhead for circuit operations, the full benchmark results with everything going through the tuple interface is:

Benchmarks that have stayed the same:

       before           after         ratio
     [522de2a0]       [895f094d]
     <lint_incr_latest>       <operation-class>
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 128, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 128, 2048)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 128, 32768)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 128, 8192)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 2048, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 2048, 32768)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 2048, 8192)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 32768, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8, 128)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8, 2048)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8, 32768)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8, 8192)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8192, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8192, 32768)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 128, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 128, 2048)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 128, 32768)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 128, 8192)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 2048, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 2048, 32768)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 2048, 8192)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 32768, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8, 128)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8, 2048)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8, 32768)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8, 8192)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8192, 131072)
              n/a              n/a      n/a  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8192, 32768)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_ast_to_circuit(14, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_ast_to_circuit(20, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_ast_to_circuit(20, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_ast_to_circuit(32, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_ast_to_circuit(32, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_ast_to_circuit(53, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_ast_to_circuit(53, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_dag(14, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_dag(20, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_dag(20, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_dag(32, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_dag(32, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_dag(53, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_dag(53, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_instruction(14, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_instruction(20, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_instruction(20, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_instruction(32, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_instruction(32, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_instruction(53, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_circuit_to_instruction(53, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_dag_to_circuit(14, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_dag_to_circuit(20, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_dag_to_circuit(20, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_dag_to_circuit(32, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_dag_to_circuit(32, 8192)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_dag_to_circuit(53, 2048)
              n/a              n/a      n/a  converters.ConverterBenchmarks.time_dag_to_circuit(53, 8192)
           failed           failed      n/a  mapping_passes.PassBenchmarks.time_cxdirection(14, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.time_cxdirection(20, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.time_cxdirection(5, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.time_layout_2q_distance(14, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.time_layout_2q_distance(5, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.track_basic_swap_swap_count(14, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.track_basic_swap_swap_count(20, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.track_basic_swap_swap_count(5, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.track_cxdirection_cnot_count(14, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.track_cxdirection_cnot_count(20, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.track_cxdirection_cnot_count(5, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.track_cxdirection_depth(14, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.track_cxdirection_depth(20, 1024)
           failed           failed      n/a  mapping_passes.PassBenchmarks.track_cxdirection_depth(5, 1024)
           failed           failed      n/a  passes.CommutativeAnalysisPassBenchmarks.time_commutative_cancellation(14, 1024)
           failed           failed      n/a  passes.CommutativeAnalysisPassBenchmarks.time_commutative_cancellation(20, 1024)
           failed           failed      n/a  passes.CommutativeAnalysisPassBenchmarks.time_commutative_cancellation(5, 1024)
           failed           failed      n/a  passes.PassBenchmarks.track_barrier_before_final_measurement(14, 1024)
           failed           failed      n/a  passes.PassBenchmarks.track_barrier_before_final_measurement(20, 1024)
           failed           failed      n/a  passes.PassBenchmarks.track_barrier_before_final_measurement(5, 1024)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_build_instruction(1, 128)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_build_instruction(1, 2048)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_build_instruction(1, 8)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_build_instruction(2, 128)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_build_instruction(2, 2048)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_build_instruction(2, 8)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_build_instruction(5, 128)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_build_instruction(5, 2048)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_build_instruction(5, 8)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_instruction_to_schedule(1, 128)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_instruction_to_schedule(1, 2048)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_instruction_to_schedule(1, 8)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_instruction_to_schedule(2, 128)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_instruction_to_schedule(2, 2048)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_instruction_to_schedule(2, 8)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_instruction_to_schedule(5, 128)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_instruction_to_schedule(5, 2048)
           failed           failed      n/a  pulse.schedule_to_instruction_conversion.ScheduleToInstructionBench.time_instruction_to_schedule(5, 8)
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bntf(0, 'sabre')
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bntf(0, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bntf(1, 'sabre')
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bntf(1, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bntf(2, 'sabre')
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bss(0, 'sabre')
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bss(0, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bss(1, 'sabre')
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bss(1, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bss(2, 'sabre')
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bss(2, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.time_transpile_bss(3, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.track_depth_bntf_optimal_depth_25(0, 'sabre')
           failed           failed      n/a  queko.QUEKOTranspilerBench.track_depth_bntf_optimal_depth_25(0, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.track_depth_bntf_optimal_depth_25(1, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.track_depth_bss_optimal_depth_100(0, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.track_depth_bss_optimal_depth_100(1, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.track_depth_bss_optimal_depth_100(2, None)
           failed           failed      n/a  queko.QUEKOTranspilerBench.track_depth_bss_optimal_depth_100(3, None)
           failed           failed      n/a  transpiler_levels.TranspilerLevelBenchmarks.track_depth_quantum_volume_transpile_50_x_20(0)
           failed           failed      n/a  transpiler_levels.TranspilerLevelBenchmarks.track_depth_quantum_volume_transpile_50_x_20(1)
           failed           failed      n/a  transpiler_levels.TranspilerLevelBenchmarks.track_depth_quantum_volume_transpile_50_x_20(2)
           failed           failed      n/a  transpiler_levels.TranspilerLevelBenchmarks.track_depth_quantum_volume_transpile_50_x_20(3)
        17.9±0.2s          23.5±3s    ~1.31  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(27, 'synthesis')
        71.7±20ms        87.9±20ms    ~1.22  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(3, 'synthesis')
         96.9±1μs          117±1μs    ~1.21  converters.ConverterBenchmarks.time_circuit_to_instruction(1, 8)
       1.38±0.01s       1.65±0.01s    ~1.19  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 131072, 128)
         213±10ms         254±40ms    ~1.19  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(5, 'synthesis')
          1.45±0s       1.70±0.02s    ~1.17  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 131072, 8)
       1.40±0.08s       1.57±0.01s    ~1.13  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(20, 'translator')
        2.52±0.1s        2.84±0.1s    ~1.13  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(27, 'translator')
      2.03±0.02ms      2.26±0.04ms    ~1.12  converters.ConverterBenchmarks.time_circuit_to_dag(32, 8)
       51.9±0.4ms       57.0±0.7ms     1.10  converters.ConverterBenchmarks.time_circuit_to_dag(53, 128)
      1.27±0.01ms      1.40±0.02ms     1.10  converters.ConverterBenchmarks.time_circuit_to_dag(20, 8)
      27.6±0.07ms       30.4±0.6ms     1.10  converters.ConverterBenchmarks.time_circuit_to_dag(32, 128)
      3.76±0.03ms      4.11±0.04ms     1.09  converters.ConverterBenchmarks.time_circuit_to_dag(53, 8)
       25.3±0.3ms       27.6±0.3ms     1.09  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 8, 100)
          528±1ms          574±1ms     1.09  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm_backend_with_prop(3)
       16.4±0.2ms       17.8±0.1ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 128, 10)
      1.31±0.01ms      1.42±0.02ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 8, 5)
        126±0.6ms        136±0.9ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 1024, 10)
          720±8ms          779±8ms     1.08  quantum_info.CliffordDecomposeBench.time_decompose('2,500')
      1.68±0.01ms      1.81±0.02ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 128, 1)
       84.2±0.4ms       90.9±0.7ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 128, 50)
        279±0.9ms        301±0.9ms     1.08  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm(3)
          123±1ms        133±0.5ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 2048, 5)
       12.1±0.1ms       13.0±0.1ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 1024, 1)
      2.59±0.04ms      2.79±0.03ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 8, 10)
       12.8±0.2ms       13.7±0.2ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 8, 50)
         68.2±3ms         73.4±5ms     1.08  qft.QftTranspileBench.time_ibmq_backend_transpile(8)
          648±7ms          697±5ms     1.08  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 1024, 50)
       2.64±0.01s       2.84±0.02s     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 4096, 50)
       5.28±0.01s       5.66±0.01s     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 4096, 100)
       1.30±0.01s       1.39±0.01s     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 1024, 100)
       61.6±0.9ms       66.0±0.4ms     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 1024, 5)
       1.58±0.08m       1.69±0.03m     1.07  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 131072, 8)
       23.9±0.2ms       25.6±0.2ms     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 2048, 1)
        994±100ms       1.06±0.06s     1.07  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(8, 'synthesis')
          172±2ms          184±2ms     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 128, 100)
       2.57±0.04s       2.75±0.01s     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 2048, 100)
          362±1ms          386±2ms     1.07  queko.QUEKOTranspilerBench.time_transpile_bigd(2, None)
          529±9ms          564±5ms     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 4096, 10)
      8.26±0.08ms      8.82±0.09ms     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 128, 5)
          261±1ms          278±2ms     1.07  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 4096, 5)
       1.97±0.01s       2.10±0.02s     1.06  queko.QUEKOTranspilerBench.time_transpile_bigd(3, 'sabre')
          253±3ms          269±2ms     1.06  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 2048, 10)
       5.34±0.02s       5.66±0.04s     1.06  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 2048, 100)
          288±3μs          306±3μs     1.06  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 8, 1)
       1.63±0.01s          1.73±0s     1.06  circuit_construction.CircuitConstructionBench.time_circuit_construction(8, 131072)
       1.63±0.01s       1.72±0.01s     1.06  circuit_construction.CircuitConstructionBench.time_circuit_construction(14, 131072)
       2.67±0.01s       2.83±0.02s     1.06  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 1024, 100)
          369±3ms          390±4ms     1.06  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 128, 100)
       5.51±0.02s       5.83±0.02s     1.06  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 4096, 50)
       50.4±0.6ms       53.3±0.6ms     1.06  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 4096, 1)
       1.27±0.01s       1.34±0.03s     1.06  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 2048, 50)
          964±5ms       1.02±0.02s     1.06  circuit_construction.CircuitConstructionBench.time_circuit_construction(1, 131072)
       6.73±0.02s       7.11±0.03s     1.06  queko.QUEKOTranspilerBench.time_transpile_bntf(3, None)
          266±4ms          280±2ms     1.05  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 1024, 10)
              479              505     1.05  ripple_adder.RippleAdderTranspile.track_depth_transpile_square_grid_ripple_adder(10, 1)
       14.4±0.1ms       15.2±0.2ms     1.05  circuit_construction.CircuitConstructionBench.time_circuit_construction(1, 2048)
       91.9±0.2ms       96.8±0.5ms     1.05  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm(0)
       24.2±0.1ms       25.5±0.1ms     1.05  circuit_construction.CircuitConstructionBench.time_circuit_construction(14, 2048)
       1.06±0.01s       1.11±0.01s     1.05  queko.QUEKOTranspilerBench.time_transpile_bigd(3, None)
       1.35±0.03s       1.42±0.01s     1.05  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 1024, 50)
       11.1±0.08s       11.6±0.08s     1.05  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 4096, 100)
       35.8±0.4ms       37.6±0.3ms     1.05  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 128, 10)
          5.96±0s       6.26±0.02s     1.05  queko.QUEKOTranspilerBench.time_transpile_bntf(2, None)
          3.46±0m       3.63±0.03m     1.05  queko.QUEKOTranspilerBench.time_transpile_bss(3, 'sabre')
          582±7μs          611±5μs     1.05  converters.ConverterBenchmarks.time_dag_to_circuit(1, 128)
       25.6±0.4ms       26.8±0.2ms     1.05  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 1024, 1)
       2.68±0.02s       2.81±0.03s     1.05  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 2048, 50)
          534±6ms          561±6ms     1.05  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 2048, 10)
         99.8±1ms          105±1ms     1.05  circuit_construction.CircuitConstructionBench.time_circuit_construction(20, 8192)
       1.16±0.03s       1.22±0.05s     1.05  ripple_adder.RippleAdderTranspile.time_transpile_square_grid_ripple_adder(10, 3)
          132±2ms          138±1ms     1.05  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 1024, 5)
       60.6±0.2μs         63.5±1μs     1.05  converters.ConverterBenchmarks.time_dag_to_circuit(1, 8)
       71.7±0.6ms       75.1±0.4ms     1.05  converters.ConverterBenchmarks.time_dag_to_circuit(2, 8192)
          4.60±0m       4.82±0.04m     1.05  queko.QUEKOTranspilerBench.time_transpile_bntf(3, 'sabre')
       17.9±0.2ms       18.7±0.2ms     1.05  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 128, 5)
          349±2ms          365±2ms     1.05  passes.PassBenchmarks.time_unroll_3q_or_more(5, 1024)
          266±6ms        278±0.5ms     1.04  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 2048, 5)
          183±2ms          191±1ms     1.04  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 128, 50)
          408±3ms          426±2ms     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(8, 32768)
       1.10±0.01s       1.15±0.01s     1.04  queko.QUEKOTranspilerBench.time_transpile_bigd(2, 'sabre')
          746±1ms          778±1ms     1.04  passes.PassBenchmarks.time_unroller(5, 1024)
          1.64±0s       1.71±0.01s     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(5, 131072)
       40.1±0.8ms       41.7±0.2ms     1.04  converters.ConverterBenchmarks.time_dag_to_circuit(1, 8192)
       1.13±0.02s       1.17±0.01s     1.04  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 1024, 100)
        162±0.9ms          169±2ms     1.04  converters.ConverterBenchmarks.time_dag_to_circuit(5, 8192)
       1.24±0.01s       1.29±0.01s     1.04  queko.QUEKOTranspilerBench.time_transpile_bigd(1, 'sabre')
       1.12±0.01s       1.17±0.02s     1.04  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 4096, 10)
       10.4±0.2ms      10.8±0.02ms     1.04  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 1024, 1)
      3.60±0.05ms      3.75±0.02ms     1.04  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 128, 1)
        107±0.9ms        111±0.5ms     1.04  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 4096, 1)
        101±0.8ms        106±0.7ms     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(5, 8192)
          559±9ms          582±2ms     1.04  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 1024, 50)
       48.6±0.6ms         50.6±2ms     1.04  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 2048, 8)
       52.2±0.8ms       54.3±0.3ms     1.04  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 2048, 1)
       24.5±0.2ms       25.5±0.3ms     1.04  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(2, 'synthesis')
          108±2ms          112±1ms     1.04  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 1024, 10)
       8.82±0.2ms      9.17±0.07ms     1.04  converters.ConverterBenchmarks.time_dag_to_circuit(20, 128)
          211±5μs        220±0.4μs     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(8, 8)
          222±4ms        231±0.7ms     1.04  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 2048, 10)
        101±0.5ms        105±0.7ms     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(14, 8192)
        404±0.8ms          420±2ms     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(14, 32768)
       14.8±0.2ms       15.3±0.2ms     1.04  converters.ConverterBenchmarks.time_dag_to_circuit(32, 128)
          102±2ms        106±0.7ms     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(8, 8192)
          555±5ms          576±6ms     1.04  assembler.AssemblerBenchmarks.time_assemble_circuit(8, 4096, 5)
              476              494     1.04  ripple_adder.RippleAdderTranspile.track_depth_transpile_square_grid_ripple_adder(10, 2)
         99.6±1μs          103±2μs     1.04  converters.ConverterBenchmarks.time_dag_to_circuit(2, 8)
          404±2ms          419±2ms     1.04  passes.PassBenchmarks.time_decompose_pass(5, 1024)
       32.9±0.08s          34.1±0s     1.04  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 4096, 100)
       4.53±0.03s       4.69±0.02s     1.04  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 4096, 100)
          133±1μs        138±0.3μs     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(5, 8)
          257±2ms          266±1ms     1.04  converters.ConverterBenchmarks.time_dag_to_circuit(8, 8192)
       17.3±0.3ms       18.0±0.2ms     1.04  converters.ConverterBenchmarks.time_dag_to_circuit(2, 2048)
          508±2μs          526±5μs     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(20, 8)
       9.21±0.2ms       9.54±0.1ms     1.04  converters.ConverterBenchmarks.time_dag_to_circuit(1, 2048)
          203±3μs          210±4μs     1.04  converters.ConverterBenchmarks.time_dag_to_circuit(5, 8)
         78.4±1μs       81.1±0.3μs     1.04  circuit_construction.CircuitConstructionBench.time_circuit_construction(1, 8)
      2.30±0.04ms      2.38±0.04ms     1.03  converters.ConverterBenchmarks.time_dag_to_circuit(5, 128)
          245±2ms          253±1ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(1, 32768)
          292±3μs          302±7μs     1.03  converters.ConverterBenchmarks.time_dag_to_circuit(8, 8)
       20.9±0.3ms       21.7±0.1ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 2048, 1)
          1.62±0s          1.67±0s     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 2048, 10)
         52.2±2ms       54.0±0.2ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 1024, 5)
      1.41±0.02ms      1.46±0.01ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 128, 1)
       8.22±0.03s       8.50±0.03s     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 2048, 50)
      1.01±0.01ms      1.05±0.01ms     1.03  converters.ConverterBenchmarks.time_dag_to_circuit(2, 128)
       1.13±0.02s       1.17±0.01s     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 2048, 50)
       25.6±0.4ms       26.5±0.4ms     1.03  converters.ConverterBenchmarks.time_dag_to_circuit(53, 128)
       39.6±0.4ms       40.9±0.5ms     1.03  converters.ConverterBenchmarks.time_dag_to_circuit(5, 2048)
      1.79±0.03ms      1.85±0.03ms     1.03  converters.ConverterBenchmarks.time_dag_to_circuit(53, 8)
          387±1ms          400±1ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(2, 32768)
       8.27±0.1μs       8.54±0.5μs     1.03  passes.PassBenchmarks.time_width_pass(5, 1024)
       10.4±0.01s       10.8±0.06s     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 2048, 100)
       8.24±0.03s       8.51±0.01s     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 1024, 100)
          148±2ms        153±0.5ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 128, 100)
         70.9±3ms       73.2±0.4ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 128, 50)
         97.2±1ms        100±0.7ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(2, 8192)
          886±1ms          914±3ms     1.03  transpiler_benchmarks.TranspilerBenchSuite.time_compile_from_large_qasm
         719±40ms          741±4ms     1.03  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(14, 'translator')
       4.11±0.05s          4.24±0s     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 1024, 50)
      1.50±0.02ms      1.54±0.01ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(2, 128)
       10.4±0.05s       10.7±0.01s     1.03  queko.QUEKOTranspilerBench.time_transpile_bigd(0, 'sabre')
          409±4ms          421±1ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(5, 32768)
          809±5ms          833±3ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 2048, 5)
       23.6±0.06s       24.3±0.03s     1.03  transpiler_levels.TranspilerLevelBenchmarks.time_quantum_volume_transpile_50_x_20(3)
       6.15±0.1ms       6.33±0.1ms     1.03  converters.ConverterBenchmarks.time_dag_to_circuit(14, 128)
      1.67±0.02ms      1.72±0.01ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(8, 128)
       1.60±0.01s       1.65±0.01s     1.03  passes.PassBenchmarks.time_decompose_pass(14, 1024)
          3.72±0s       3.83±0.01s     1.03  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_qv_14_x_14(3)
       24.8±0.4ms       25.5±0.2ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(20, 2048)
       14.1±0.3ms      14.5±0.03ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 128, 10)
          447±8ms          459±5ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 4096, 10)
          2.17±0s          2.23±0s     1.03  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(3, 'stochastic', 'noise_adaptive')
      1.92±0.03ms      1.98±0.01ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(20, 128)
          124±2μs        128±0.7μs     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(2, 8)
       20.7±0.02s        21.3±0.1s     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 4096, 100)
          937±3μs         963±20μs     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(1, 128)
          676±9μs         695±10μs     1.03  converters.ConverterBenchmarks.time_dag_to_circuit(20, 8)
       2.92±0.05s       3.00±0.01s     1.03  passes.PassBenchmarks.time_unroller(14, 1024)
         79.1±2ms         81.2±2ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 1024, 1)
       1.64±0.03s       1.68±0.02s     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(20, 131072)
          222±6ms          228±1ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 4096, 5)
       7.07±0.1ms      7.26±0.02ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 128, 5)
      1.10±0.02ms      1.13±0.02ms     1.03  converters.ConverterBenchmarks.time_dag_to_circuit(32, 8)
       23.5±0.2ms      24.1±0.06ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(2, 2048)
       25.0±0.5ms       25.6±0.2ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(8, 2048)
       24.8±0.6ms      25.4±0.08ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(5, 2048)
      1.66±0.02ms      1.71±0.01ms     1.03  circuit_construction.CircuitConstructionBench.time_circuit_construction(14, 128)
          2.28±0s          2.34±0s     1.03  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(3, 'stochastic', 'dense')
          514±4ms        527±0.9ms     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 128, 50)
          1.18±0s          1.21±0s     1.03  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(3, 'sabre', 'noise_adaptive')
       16.4±0.01s        16.8±0.1s     1.03  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 4096, 50)
       1.59±0.02s          1.63±0s     1.02  circuit_construction.CircuitConstructionBench.time_circuit_construction(2, 131072)
       1.63±0.01s       1.67±0.02s     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 4096, 5)
       1.65±0.02s          1.69±0s     1.02  passes.PassBenchmarks.time_unroll_3q_or_more(14, 1024)
       3.14±0.01s       3.21±0.02s     1.02  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 131072, 32768)
       9.66±0.09s       9.89±0.05s     1.02  queko.QUEKOTranspilerBench.time_transpile_bigd(1, None)
          366±8μs          375±3μs     1.02  circuit_construction.CircuitConstructionBench.time_circuit_construction(14, 8)
       2.27±0.05s       2.32±0.01s     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 4096, 50)
          1.85±0s       1.89±0.01s     1.02  randomized_benchmarking.RandomizedBenchmarkingBenchmark.time_ibmq_backend_transpile([[0]])
          407±7ms          417±2ms     1.02  circuit_construction.CircuitConstructionBench.time_circuit_construction(20, 32768)
        22.2±0.2s        22.7±0.1s     1.02  queko.QUEKOTranspilerBench.time_transpile_bigd(0, None)
       2.77±0.01s       2.83±0.01s     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(3, 'stochastic', 'sabre')
       7.66±0.01s       7.84±0.01s     1.02  randomized_benchmarking.RandomizedBenchmarkingBenchmark.time_ibmq_backend_transpile([[0, 1]])
       2.27±0.04s       2.32±0.01s     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 2048, 100)
       1.86±0.01s       1.90±0.01s     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(3, 'sabre', 'dense')
       2.86±0.01s       2.93±0.01s     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(3, 'stochastic', 'dense')
       3.64±0.01s       3.72±0.01s     1.02  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 131072, 131072)
          110±1ms        112±0.8ms     1.02  converters.ConverterBenchmarks.time_dag_to_circuit(14, 2048)
          894±7μs          914±7μs     1.02  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8, 8)
       10.4±0.02s       10.7±0.06s     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 4096, 50)
          109±3ms        112±0.5ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 2048, 5)
       1.03±0.01s          1.05±0s     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 128, 100)
          405±2ms        414±0.6ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 1024, 5)
          1.85±0s       1.89±0.01s     1.02  randomized_benchmarking.RandomizedBenchmarkingBenchmark.time_ibmq_backend_transpile_single_thread([[0]])
         817±10ms          835±1ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 1024, 10)
        403±0.5ms        412±0.8ms     1.02  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm(1)
        769±0.9ms          785±4ms     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(3, 'sabre', 'noise_adaptive')
       2.97±0.03s          3.03±0s     1.02  passes.PassBenchmarks.time_decompose_pass(20, 1024)
       3.11±0.01s       3.17±0.01s     1.02  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 131072, 8192)
          2.04±0s       2.08±0.01s     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(3, 'sabre', 'sabre')
          483±7μs          492±8μs     1.02  converters.ConverterBenchmarks.time_dag_to_circuit(14, 8)
       1.85±0.01s          1.88±0s     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(3, 'sabre', 'noise_adaptive')
       3.27±0.02s       3.34±0.05s     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 4096, 10)
         63.0±1ms       64.3±0.8ms     1.02  converters.ConverterBenchmarks.time_dag_to_circuit(8, 2048)
      1.13±0.01ms      1.15±0.01ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 8, 10)
       2.07±0.02s       2.12±0.03s     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 4096, 10)
        3.20±0.1s       3.26±0.07s     1.02  ripple_adder.RippleAdderTranspile.time_transpile_square_grid_ripple_adder(20, 3)
         88.2±1ms       90.0±0.8ms     1.02  state_tomography.StateTomographyBench.time_state_tomography_bell(2)
        175±0.7ms        179±0.6ms     1.02  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8192, 128)
       1.95±0.01s       1.99±0.01s     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(3, 'sabre', 'sabre')
       5.20±0.04s       5.30±0.01s     1.02  passes.PassBenchmarks.time_unroller(20, 1024)
       4.25±0.05s       4.33±0.01s     1.02  transpiler_levels.TranspilerLevelBenchmarks.time_quantum_volume_transpile_50_x_20(1)
          1.13±0s          1.15±0s     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(3, 'stochastic', 'dense')
       3.14±0.03s       3.20±0.01s     1.02  passes.PassBenchmarks.time_unroll_3q_or_more(20, 1024)
          769±7ms          783±5ms     1.02  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 32768, 8192)
        803±0.9ms          817±2ms     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(3, 'stochastic', 'noise_adaptive')
          566±5μs          576±5μs     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 8, 5)
         87.6±1ms         89.1±1ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 4096, 1)
       56.4±0.3μs       57.4±0.6μs     1.02  passes.PassBenchmarks.time_resource_optimization(14, 1024)
        139±0.9ms          142±3ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 128, 50)
      3.33±0.01ms      3.38±0.03ms     1.02  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 128, 8)
          321±2ms          326±4ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 4096, 1)
          455±5ms          462±6ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 4096, 5)
          180±2ms        183±0.7ms     1.02  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8192, 2048)
          1.75±0s       1.78±0.01s     1.02  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_qv_14_x_14(2)
      3.62±0.06ms      3.68±0.04ms     1.02  converters.ConverterBenchmarks.time_dag_to_circuit(8, 128)
       16.4±0.03s        16.7±0.1s     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 2048, 100)
          1.06±0s          1.08±0s     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(3, 'stochastic', 'sabre')
       11.2±0.2ms       11.4±0.1ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 8, 100)
      5.62±0.06ms      5.71±0.02ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 8, 50)
          327±1ms        332±0.6ms     1.02  random_circuit_hex.BenchRandomCircuitHex.time_ibmq_backend_transpile(12)
          7.71±0s       7.83±0.03s     1.02  randomized_benchmarking.RandomizedBenchmarkingBenchmark.time_ibmq_backend_transpile_single_thread([[0, 1]])
          2.83±0s       2.88±0.01s     1.02  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(3, 'stochastic', 'sabre')
         913±10ms          927±9ms     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 4096, 10)
       1.16±0.02s       1.18±0.02s     1.02  quantum_info.CliffordDecomposeBench.time_decompose('3,100')
          831±2ms          844±3ms     1.02  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_qv_14_x_14(1)
       2.30±0.02s       2.34±0.03s     1.02  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 1024, 100)
      3.45±0.01ms      3.50±0.02ms     1.01  converters.ConverterBenchmarks.time_ast_to_circuit(32, 8)
       5.27±0.03s       5.34±0.03s     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 1024, 100)
          159±2ms        162±0.8ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 2048, 1)
       9.27±0.04s       9.40±0.05s     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 4096, 100)
          843±9ms          855±2ms     1.01  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 32768, 128)
          766±5ms          777±2ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(3, 'sabre', 'dense')
       1.05±0.01s       1.06±0.02s     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 2048, 10)
              438              444     1.01  ripple_adder.RippleAdderTranspile.track_depth_transpile_square_grid_ripple_adder(10, 0)
       52.9±0.6ms       53.6±0.2ms     1.01  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 2048, 2048)
       56.5±0.3μs         57.2±1μs     1.01  passes.PassBenchmarks.time_resource_optimization(20, 1024)
       4.63±0.03s       4.69±0.04s     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 4096, 50)
       20.5±0.3ms       20.7±0.4ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 8, 100)
       30.9±0.3ms       31.3±0.5ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 128, 5)
       60.4±0.6ms       61.2±0.9ms     1.01  circuit_construction.CircuitConstructionBench.time_circuit_construction(1, 8192)
          966±2ms          978±2ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(3, 'sabre', 'sabre')
        327±0.9μs        331±0.8μs     1.01  pulse.schedule_construction.ScheduleConstructionBench.time_parametric_pulse_schedule_construction(2, 8)
      1.67±0.02ms         1.69±0ms     1.01  circuit_construction.CircuitConstructionBench.time_circuit_construction(5, 128)
          689±7μs          697±2μs     1.01  pulse.schedule_construction.ScheduleConstructionBench.time_sample_pulse_schedule_construction(2, 8)
          569±6μs          576±9μs     1.01  pulse.schedule_construction.ScheduleConstructionBench.time_insert_instruction_left_to_right(2, 128)
      7.45±0.02ms       7.54±0.1ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 8, 10)
          1.96±0s          1.98±0s     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(3, 'stochastic', 'noise_adaptive')
          662±1ms          669±2ms     1.01  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm_backend_with_prop(1)
       1.30±0.01s          1.31±0s     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(3, 'sabre', 'dense')
       2.63±0.02s       2.66±0.03s     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 1024, 50)
       21.4±0.05s       21.6±0.04s     1.01  randomized_benchmarking.RandomizedBenchmarkingBenchmark.time_ibmq_backend_transpile_single_thread([[0, 2], [1]])
       1.15±0.01s       1.16±0.01s     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 1024, 50)
       1.04±0.01s       1.05±0.02s     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 4096, 5)
          204±3ms          206±4ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 4096, 1)
        173±0.8ms        175±0.2ms     1.01  random_circuit_hex.BenchRandomCircuitHex.time_ibmq_backend_transpile(10)
        344±0.9ms        347±0.6ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(1, 'sabre', 'noise_adaptive')
          520±6ms          526±6ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 2048, 5)
       39.0±0.2ms       39.4±0.3ms     1.01  random_circuit_hex.BenchRandomCircuitHex.time_ibmq_backend_transpile(4)
       21.6±0.4μs       21.9±0.2μs     1.01  pulse.schedule_construction.ScheduleConstructionBench.time_append_instruction(1, 8)
          257±3ms          259±3ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 1024, 5)
       42.4±0.7ms       42.9±0.2ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 4096, 1)
          520±5ms          525±7ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 1024, 10)
          615±2ms          621±3ms     1.01  random_circuit_hex.BenchRandomCircuitHex.time_ibmq_backend_transpile(14)
          114±1μs          116±1μs     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(1, 8, 1)
          928±4ms          937±2ms     1.01  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm(2)
        280±0.5ms        283±0.8ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(0, 'sabre', 'noise_adaptive')
          429±2ms          433±1ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(0, 'sabre', 'sabre')
          754±8μs          761±4μs     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 8, 1)
         89.0±1ms       89.8±0.2ms     1.01  state_tomography.StateTomographyBench.time_state_tomography_cat(2)
       48.6±0.7ms       49.1±0.5ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 1024, 1)
        221±0.3ms        223±0.3ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(0, 'sabre', 'noise_adaptive')
          225±2ms          227±2ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 2048, 5)
          21.5±0s       21.7±0.04s     1.01  randomized_benchmarking.RandomizedBenchmarkingBenchmark.time_ibmq_backend_transpile([[0, 2], [1]])
       4.64±0.02s       4.68±0.03s     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 2048, 100)
        287±0.7ms        290±0.5ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(0, 'sabre', 'dense')
          289±3ms          292±4ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 128, 100)
        197±0.5ms          198±2ms     1.01  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm_backend_with_prop(0)
       30.1±0.6μs       30.4±0.2μs     1.01  pulse.schedule_construction.ScheduleConstructionBench.time_insert_instruction_left_to_right(1, 8)
         940±20ms          948±4ms     1.01  pulse.schedule_construction.ScheduleConstructionBench.time_parametric_pulse_schedule_construction(2, 2048)
       5.28±0.03s       5.33±0.03s     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 2048, 50)
       38.3±0.4ms       38.6±0.5ms     1.01  quantum_info.CliffordDecomposeBench.time_decompose('1,1000')
       3.46±0.04s       3.48±0.01s     1.01  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 131072, 2048)
          665±6ms          670±5ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 128, 100)
         198±10ms         199±10ms     1.01  qft.QftTranspileBench.time_ibmq_backend_transpile(13)
          329±1ms          331±1ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(0, 'stochastic', 'sabre')
        300±0.5ms          303±1ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(0, 'sabre', 'dense')
          499±2ms          503±3ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(0, 'sabre', 'sabre')
          723±4ms          729±5ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(1, 'sabre', 'sabre')
          822±2ms          828±2ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(2, 'stochastic', 'dense')
          717±3ms          723±2ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(1, 'stochastic', 'sabre')
        269±0.4ms        271±0.5ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(0, 'sabre', 'noise_adaptive')
          456±7ms          460±6ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 2048, 10)
        333±0.6ms          336±1ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(0, 'stochastic', 'noise_adaptive')
          236±6ms          237±3ms     1.01  ripple_adder.RippleAdderTranspile.time_transpile_square_grid_ripple_adder(10, 1)
          302±3μs          304±3μs     1.01  pulse.schedule_construction.ScheduleConstructionBench.time_append_instruction(2, 128)
          435±1ms        438±0.6ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(1, 'stochastic', 'dense')
         25.4±2ms         25.5±2ms     1.01  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(3, 'translator')
          2.14±0s          2.16±0s     1.01  transpiler_levels.TranspilerLevelBenchmarks.time_quantum_volume_transpile_50_x_20(0)
         914±10ms          920±3ms     1.01  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 32768, 32768)
          554±2ms          558±1ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(0, 'stochastic', 'sabre')
       10.4±0.2ms       10.4±0.2ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 8, 50)
        266±0.9ms        268±0.5ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(1, 'sabre', 'dense')
        341±0.7ms          343±1ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(1, 'sabre', 'noise_adaptive')
          523±2ms        527±0.8ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(0, 'stochastic', 'sabre')
        353±0.4ms          355±1ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(1, 'sabre', 'dense')
       89.4±0.8ms       90.0±0.6ms     1.01  state_tomography.StateTomographyBench.time_state_tomography_bell(3)
        397±0.6ms        399±0.7ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(1, 'stochastic', 'noise_adaptive')
      13.6±0.07ms       13.7±0.2ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 128, 5)
          628±3ms          632±2ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(1, 'sabre', 'sabre')
          951±3ms          956±3ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(2, 'sabre', 'sabre')
          207±1μs          208±4μs     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 8, 1)
        265±0.6ms        266±0.5ms     1.01  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(0, 'stochastic', 'dense')
          217±2ms        219±0.5ms     1.01  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8192, 8192)
       14.4±0.2ms      14.5±0.04ms     1.01  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(2, 'translator')
          158±1ms          158±2ms     1.01  ripple_adder.RippleAdderTranspile.time_transpile_square_grid_ripple_adder(10, 0)
       47.2±0.7ms       47.5±0.6ms     1.01  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 8, 100)
          1.19±0s       1.20±0.01s     1.01  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_from_large_qasm_backend_with_prop(2)
       22.6±0.3μs       22.7±0.1μs     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_append_instruction(2, 8)
          420±1ms        423±0.6ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(1, 'stochastic', 'noise_adaptive')
       29.1±0.2ms       29.2±0.2ms     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(20, 128)
        242±0.2ms          243±1ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(0, 'stochastic', 'noise_adaptive')
          275±2ms        276±0.6ms     1.00  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 8192, 8)
        242±0.9ms        243±0.5ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(0, 'sabre', 'dense')
          790±5ms          794±3ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(1, 'stochastic', 'sabre')
          417±2ms          419±2ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(1, 'stochastic', 'sabre')
        377±0.4ms          378±1ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(0, 'stochastic', 'dense')
       2.31±0.03s       2.32±0.03s     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 2048, 50)
        110±0.8ms          111±2ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 1024, 5)
        247±0.6ms        248±0.4ms     1.00  transpiler_levels.TranspilerLevelBenchmarks.time_transpile_qv_14_x_14(0)
      3.76±0.03ms      3.78±0.07ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 8, 5)
          402±2ms          403±2ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(1, 'sabre', 'sabre')
       1.04±0.01s          1.05±0s     1.00  passes.UnrolledPassBenchmarks.time_optimize_1q(14, 1024)
          263±1ms        264±0.2ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(1, 'stochastic', 'noise_adaptive')
          370±1ms        371±0.6ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(1, 'sabre', 'dense')
        290±0.5ms        291±0.3ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(1, 'stochastic', 'dense')
       62.2±0.6ms         62.4±1ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 128, 10)
        308±0.8ms        309±0.8ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(0, 'sabre', 'sabre')
      3.11±0.05ms      3.12±0.01ms     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(2, 128)
          439±1ms        440±0.7ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(1, 'stochastic', 'dense')
        657±0.8ms          659±3ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(2, 'sabre', 'dense')
          226±4ms          226±3ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 1024, 10)
      2.72±0.06ms      2.73±0.04ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 128, 1)
          331±3ms          332±4ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 128, 50)
      1.56±0.01ms      1.56±0.01ms     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_sample_pulse_schedule_construction(5, 8)
          361±1ms        361±0.3ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(0, 'stochastic', 'noise_adaptive')
          372±1ms        373±0.8ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(0, 'stochastic', 'dense')
          1.50±0s       1.51±0.01s     1.00  passes.UnrolledPassBenchmarks.time_optimize_1q(20, 1024)
       1.23±0.01s       1.23±0.01s     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(2, 'stochastic', 'sabre')
      1.54±0.01ms         1.55±0ms     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(14, 8)
       17.7±0.3ms       17.8±0.1ms     1.00  passes.PassBenchmarks.time_collect_2q_blocks(20, 1024)
          601±1ms          602±2ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(2, 'sabre', 'dense')
          803±1ms          804±2ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(2, 'stochastic', 'noise_adaptive')
       1.01±0.01s          1.01±0s     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_sample_pulse_schedule_construction(2, 2048)
        394±0.8ms        394±0.8ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(2, 'sabre', 'noise_adaptive')
       91.2±0.6ms         91.3±1ms     1.00  state_tomography.StateTomographyBench.time_state_tomography_bell(5)
        259±0.4ms        260±0.4ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(1, 'sabre', 'noise_adaptive')
       6.64±0.01s       6.64±0.01s     1.00  state_tomography.StateTomographyBench.time_state_tomography_cat(5)
         97.5±2ms         97.6±2ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 128, 10)
       25.4±0.2ms       25.5±0.2ms     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_insert_instruction_left_to_right(5, 2048)
          218±3ms          218±1ms     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(2, 8192)
          559±2ms        560±0.4ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(2, 'stochastic', 'sabre')
          670±4ms          670±4ms     1.00  quantum_info.CliffordComposeBench.time_compose('3,5000')
       45.8±0.7μs       45.8±0.3μs     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_insert_instruction_left_to_right(2, 8)
          555±2ms          555±2ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(2, 'sabre', 'noise_adaptive')
       48.2±0.2ms       48.2±0.3ms     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(32, 128)
      6.47±0.07ms      6.47±0.03ms     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_append_instruction(5, 2048)
       1.41±0.03s       1.41±0.03s     1.00  ripple_adder.RippleAdderTranspile.time_transpile_square_grid_ripple_adder(20, 2)
      1.04±0.03ms      1.04±0.02ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 8, 5)
       9.80±0.05s       9.80±0.01s     1.00  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 131072, 128)
      2.07±0.02ms      2.07±0.03ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 8, 10)
          326±3ms        326±0.8ms     1.00  passes.UnrolledPassBenchmarks.time_optimize_1q(5, 1024)
        408±0.5ms          408±1ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(2, 'stochastic', 'noise_adaptive')
               10               10     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(0, 3)
               29               29     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(0, 4)
               74               74     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(0, 5)
              192              192     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(0, 6)
               28               28     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(1, 3)
               76               76     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(1, 4)
              194              194     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(1, 5)
              483              483     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(1, 6)
               54               54     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(2, 3)
              171              171     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(2, 4)
              398              398     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(2, 5)
              923              923     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(2, 6)
              110              110     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(3, 3)
              386              386     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(3, 4)
              913              913     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(3, 5)
             1989             1989     1.00  isometry.IsometryTranspileBench.track_cnot_counts_after_mapping_to_ibmq_16_melbourne(3, 6)
             8690             8690     1.00  mapping_passes.PassBenchmarks.track_basic_swap_depth(14, 1024)
            14091            14091     1.00  mapping_passes.PassBenchmarks.track_basic_swap_depth(20, 1024)
             3175             3175     1.00  mapping_passes.PassBenchmarks.track_basic_swap_depth(5, 1024)
             4062             4062     1.00  mapping_passes.PassBenchmarks.track_stochastic_swap_depth(14, 1024)
             5871             5871     1.00  mapping_passes.PassBenchmarks.track_stochastic_swap_depth(20, 1024)
             1666             1666     1.00  mapping_passes.PassBenchmarks.track_stochastic_swap_depth(5, 1024)
             8139             8139     1.00  mapping_passes.PassBenchmarks.track_stochastic_swap_swap_count(14, 1024)
            16179            16179     1.00  mapping_passes.PassBenchmarks.track_stochastic_swap_swap_count(20, 1024)
             1179             1179     1.00  mapping_passes.PassBenchmarks.track_stochastic_swap_swap_count(5, 1024)
             1210             1210     1.00  passes.Collect2QPassBenchmarks.track_consolidate_blocks_depth(14, 1024)
             1389             1389     1.00  passes.Collect2QPassBenchmarks.track_consolidate_blocks_depth(20, 1024)
             1055             1055     1.00  passes.Collect2QPassBenchmarks.track_consolidate_blocks_depth(5, 1024)
             1210             1210     1.00  passes.CommutativeAnalysisPassBenchmarks.track_commutative_cancellation_depth(14, 1024)
             1389             1389     1.00  passes.CommutativeAnalysisPassBenchmarks.track_commutative_cancellation_depth(20, 1024)
             1055             1055     1.00  passes.CommutativeAnalysisPassBenchmarks.track_commutative_cancellation_depth(5, 1024)
             7747             7747     1.00  passes.PassBenchmarks.track_decompose_depth(14, 1024)
             8800             8800     1.00  passes.PassBenchmarks.track_decompose_depth(20, 1024)
             5239             5239     1.00  passes.PassBenchmarks.track_decompose_depth(5, 1024)
             1210             1210     1.00  passes.PassBenchmarks.track_optimize_swap_before_measure_depth(14, 1024)
             1389             1389     1.00  passes.PassBenchmarks.track_optimize_swap_before_measure_depth(20, 1024)
             1055             1055     1.00  passes.PassBenchmarks.track_optimize_swap_before_measure_depth(5, 1024)
             1210             1210     1.00  passes.PassBenchmarks.track_remove_diagonal_gates_before_measurement(14, 1024)
             1388             1388     1.00  passes.PassBenchmarks.track_remove_diagonal_gates_before_measurement(20, 1024)
             1055             1055     1.00  passes.PassBenchmarks.track_remove_diagonal_gates_before_measurement(5, 1024)
             1209             1209     1.00  passes.PassBenchmarks.track_remove_final_measurements_depth(14, 1024)
             1388             1388     1.00  passes.PassBenchmarks.track_remove_final_measurements_depth(20, 1024)
             1054             1054     1.00  passes.PassBenchmarks.track_remove_final_measurements_depth(5, 1024)
             1210             1210     1.00  passes.PassBenchmarks.track_remove_reset_in_zero_state(14, 1024)
             1389             1389     1.00  passes.PassBenchmarks.track_remove_reset_in_zero_state(20, 1024)
             1055             1055     1.00  passes.PassBenchmarks.track_remove_reset_in_zero_state(5, 1024)
            11002            11002     1.00  passes.PassBenchmarks.track_unroll_3q_or_more_depth(14, 1024)
            12221            12221     1.00  passes.PassBenchmarks.track_unroll_3q_or_more_depth(20, 1024)
             7553             7553     1.00  passes.PassBenchmarks.track_unroll_3q_or_more_depth(5, 1024)
            11261            11261     1.00  passes.PassBenchmarks.track_unroller_depth(14, 1024)
            12543            12543     1.00  passes.PassBenchmarks.track_unroller_depth(20, 1024)
             8260             8260     1.00  passes.PassBenchmarks.track_unroller_depth(5, 1024)
            11140            11140     1.00  passes.UnrolledPassBenchmarks.track_optimize_1q_depth(14, 1024)
            12440            12440     1.00  passes.UnrolledPassBenchmarks.track_optimize_1q_depth(20, 1024)
             8041             8041     1.00  passes.UnrolledPassBenchmarks.track_optimize_1q_depth(5, 1024)
              231              231     1.00  queko.QUEKOTranspilerBench.track_depth_bigd_optimal_depth_45(0, 'sabre')
              335              335     1.00  queko.QUEKOTranspilerBench.track_depth_bigd_optimal_depth_45(0, None)
              141              141     1.00  queko.QUEKOTranspilerBench.track_depth_bigd_optimal_depth_45(1, 'sabre')
              215              215     1.00  queko.QUEKOTranspilerBench.track_depth_bigd_optimal_depth_45(1, None)
              134              134     1.00  queko.QUEKOTranspilerBench.track_depth_bigd_optimal_depth_45(2, 'sabre')
               40               40     1.00  queko.QUEKOTranspilerBench.track_depth_bigd_optimal_depth_45(2, None)
              162              162     1.00  queko.QUEKOTranspilerBench.track_depth_bigd_optimal_depth_45(3, 'sabre')
              100              100     1.00  queko.QUEKOTranspilerBench.track_depth_bigd_optimal_depth_45(3, None)
              523              523     1.00  queko.QUEKOTranspilerBench.track_depth_bntf_optimal_depth_25(1, 'sabre')
              523              523     1.00  queko.QUEKOTranspilerBench.track_depth_bntf_optimal_depth_25(2, 'sabre')
               33               33     1.00  queko.QUEKOTranspilerBench.track_depth_bntf_optimal_depth_25(2, None)
              360              360     1.00  queko.QUEKOTranspilerBench.track_depth_bntf_optimal_depth_25(3, 'sabre')
               52               52     1.00  queko.QUEKOTranspilerBench.track_depth_bntf_optimal_depth_25(3, None)
              804              804     1.00  queko.QUEKOTranspilerBench.track_depth_bss_optimal_depth_100(0, 'sabre')
              526              526     1.00  queko.QUEKOTranspilerBench.track_depth_bss_optimal_depth_100(1, 'sabre')
              546              546     1.00  queko.QUEKOTranspilerBench.track_depth_bss_optimal_depth_100(2, 'sabre')
              470              470     1.00  queko.QUEKOTranspilerBench.track_depth_bss_optimal_depth_100(3, 'sabre')
              176              176     1.00  random_circuit_hex.BenchRandomCircuitHex.track_depth_ibmq_backend_transpile(10)
              263              263     1.00  random_circuit_hex.BenchRandomCircuitHex.track_depth_ibmq_backend_transpile(12)
              493              493     1.00  random_circuit_hex.BenchRandomCircuitHex.track_depth_ibmq_backend_transpile(14)
               61               61     1.00  random_circuit_hex.BenchRandomCircuitHex.track_depth_ibmq_backend_transpile(4)
               92               92     1.00  random_circuit_hex.BenchRandomCircuitHex.track_depth_ibmq_backend_transpile(6)
              126              126     1.00  random_circuit_hex.BenchRandomCircuitHex.track_depth_ibmq_backend_transpile(8)
             2705             2705     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm(0)
             2005             2005     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm(1)
             2005             2005     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm(2)
                7                7     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm(3)
             4705             4705     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm_backend_with_prop(0)
             2005             2005     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm_backend_with_prop(1)
             2005             2005     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm_backend_with_prop(2)
                7                7     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_from_large_qasm_backend_with_prop(3)
              766              766     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_qv_14_x_14(0)
              677              677     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_qv_14_x_14(1)
              677              677     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_qv_14_x_14(2)
              709              709     1.00  transpiler_levels.TranspilerLevelBenchmarks.track_depth_transpile_qv_14_x_14(3)
              294              294     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(0, 'sabre', 'dense')
              289              289     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(0, 'sabre', 'noise_adaptive')
              245              245     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(0, 'sabre', 'sabre')
              240              240     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(0, 'stochastic', 'dense')
              226              226     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(0, 'stochastic', 'noise_adaptive')
              251              251     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(0, 'stochastic', 'sabre')
              226              226     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(1, 'sabre', 'dense')
              225              225     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(1, 'sabre', 'noise_adaptive')
              218              218     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(1, 'sabre', 'sabre')
              211              211     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(1, 'stochastic', 'dense')
              205              205     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(1, 'stochastic', 'noise_adaptive')
              208              208     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(1, 'stochastic', 'sabre')
              220              220     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(2, 'sabre', 'dense')
              219              219     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(2, 'sabre', 'noise_adaptive')
              212              212     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(2, 'sabre', 'sabre')
              195              195     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(2, 'stochastic', 'dense')
              199              199     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(2, 'stochastic', 'noise_adaptive')
              204              204     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(2, 'stochastic', 'sabre')
              285              285     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(3, 'sabre', 'dense')
              283              283     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(3, 'sabre', 'noise_adaptive')
              274              274     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(3, 'sabre', 'sabre')
              330              330     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(3, 'stochastic', 'dense')
              366              366     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(3, 'stochastic', 'noise_adaptive')
              315              315     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4gt10_v1_81(3, 'stochastic', 'sabre')
               69               69     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(0, 'sabre', 'dense')
               57               57     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(0, 'sabre', 'noise_adaptive')
               65               65     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(0, 'sabre', 'sabre')
               55               55     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(0, 'stochastic', 'dense')
               60               60     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(0, 'stochastic', 'noise_adaptive')
               53               53     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(0, 'stochastic', 'sabre')
               54               54     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(1, 'sabre', 'dense')
               58               58     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(1, 'sabre', 'noise_adaptive')
               51               51     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(1, 'sabre', 'sabre')
               48               48     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(1, 'stochastic', 'dense')
               53               53     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(1, 'stochastic', 'noise_adaptive')
               47               47     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(1, 'stochastic', 'sabre')
               54               54     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(2, 'sabre', 'dense')
               58               58     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(2, 'sabre', 'noise_adaptive')
               51               51     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(2, 'sabre', 'sabre')
               45               45     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(2, 'stochastic', 'dense')
               52               52     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(2, 'stochastic', 'noise_adaptive')
               46               46     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(2, 'stochastic', 'sabre')
               66               66     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(3, 'sabre', 'dense')
               73               73     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(3, 'sabre', 'noise_adaptive')
               67               67     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(3, 'sabre', 'sabre')
               99               99     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(3, 'stochastic', 'dense')
               86               86     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(3, 'stochastic', 'noise_adaptive')
               68               68     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_4mod5_v0_19(3, 'stochastic', 'sabre')
              650              650     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(0, 'sabre', 'dense')
              646              646     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(0, 'sabre', 'noise_adaptive')
              642              642     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(0, 'sabre', 'sabre')
              571              571     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(0, 'stochastic', 'dense')
              580              580     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(0, 'stochastic', 'noise_adaptive')
              590              590     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(0, 'stochastic', 'sabre')
              524              524     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(1, 'sabre', 'dense')
              542              542     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(1, 'sabre', 'noise_adaptive')
              508              508     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(1, 'sabre', 'sabre')
              499              499     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(1, 'stochastic', 'dense')
              521              521     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(1, 'stochastic', 'noise_adaptive')
              522              522     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(1, 'stochastic', 'sabre')
              514              514     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(2, 'sabre', 'dense')
              524              524     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(2, 'sabre', 'noise_adaptive')
              488              488     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(2, 'sabre', 'sabre')
              481              481     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(2, 'stochastic', 'dense')
              510              510     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(2, 'stochastic', 'noise_adaptive')
              500              500     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(2, 'stochastic', 'sabre')
              651              651     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(3, 'sabre', 'dense')
              686              686     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(3, 'sabre', 'noise_adaptive')
              627              627     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(3, 'sabre', 'sabre')
              697              697     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(3, 'stochastic', 'dense')
              773              773     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(3, 'stochastic', 'noise_adaptive')
              746              746     1.00  transpiler_qualitative.TranspilerQualitativeBench.track_depth_transpile_mod8_10_178(3, 'stochastic', 'sabre')
      4.74±0.01ms      4.74±0.08ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 8, 10)
       37.6±0.4ms       37.6±0.6ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 8, 50)
          657±2ms          657±3ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(2, 'sabre', 'noise_adaptive')
          335±6μs          335±5μs     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_insert_instruction_left_to_right(1, 128)
      8.39±0.08ms      8.38±0.01ms     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_parametric_pulse_schedule_construction(2, 128)
        407±0.9ms        407±0.8ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(2, 'sabre', 'dense')
       10.3±0.01s       10.3±0.02s     1.00  transpiler_levels.TranspilerLevelBenchmarks.time_quantum_volume_transpile_50_x_20(2)
      2.57±0.01ms      2.57±0.01ms     1.00  transpiler_benchmarks.TranspilerBenchSuite.time_cx_compile
       9.58±0.2ms       9.57±0.1ms     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_insert_instruction_left_to_right(2, 2048)
      5.44±0.08ms      5.43±0.08ms     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_insert_instruction_left_to_right(1, 2048)
          398±9μs          398±2μs     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_sample_pulse_schedule_construction(1, 8)
          411±1ms          411±4ms     1.00  quantum_info.CliffordComposeBench.time_compose('2,5000')
          535±2ms          534±2ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(2, 'sabre', 'sabre')
          291±2μs          291±4μs     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_append_instruction(1, 128)
       27.2±0.2ms       27.1±0.3ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 128, 10)
       5.50±0.1ms      5.50±0.02ms     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_sample_pulse_schedule_construction(1, 128)
       6.23±0.1ms       6.22±0.1ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 128, 1)
        110±0.6ms        109±0.6ms     1.00  random_circuit_hex.BenchRandomCircuitHex.time_ibmq_backend_transpile(8)
      1.66±0.02ms      1.66±0.01ms     1.00  passes.PassBenchmarks.time_depth_pass(20, 1024)
          340±3ms          339±1ms     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(14, 2048)
       3.09±0.01s          3.09±0s     1.00  mapping_passes.PassBenchmarks.time_basic_swap(14, 1024)
          1.43±0s          1.43±0s     1.00  state_tomography.StateTomographyBench.time_state_tomography_cat(4)
         743±10ms          742±6ms     1.00  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 32768, 2048)
          211±3μs        211±0.2μs     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(1, 8)
          896±2ms          894±1ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(2, 'stochastic', 'dense')
       43.9±0.5ms       43.8±0.1ms     1.00  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 2048, 128)
          101±1ms          101±2ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 2048, 1)
          1.11±0s          1.10±0s     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_180(2, 'stochastic', 'sabre')
          776±5ms          774±3ms     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(8, 8192)
         521±20ms         520±20ms     1.00  ripple_adder.RippleAdderTranspile.time_transpile_square_grid_ripple_adder(10, 2)
          933±4ms          930±2ms     1.00  passes.Collect2QPassBenchmarks.time_consolidate_blocks(5, 1024)
       48.3±0.7ms       48.2±0.8ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 128, 5)
         71.7±4ms         71.5±2ms     1.00  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(5, 'translator')
       22.6±0.4μs       22.5±0.3μs     1.00  mapping_passes.PassBenchmarks.time_full_ancilla_allocation(20, 1024)
      1.44±0.03ms      1.43±0.02ms     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_insert_instruction_left_to_right(5, 128)
       23.7±0.3ms       23.6±0.4ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 8, 50)
          487±1ms          485±2ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_cnt3_5_179(2, 'stochastic', 'dense')
          747±9ms          744±6ms     1.00  ripple_adder.RippleAdderTranspile.time_transpile_square_grid_ripple_adder(20, 1)
          967±2ms          963±1ms     1.00  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(2, 'sabre', 'sabre')
          586±5ms        584±0.9ms     1.00  quantum_info.CliffordComposeBench.time_compose('5,2000')
      3.94±0.06ms      3.93±0.02ms     1.00  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 128, 128)
       12.5±0.2ms       12.4±0.1ms     1.00  pulse.schedule_construction.ScheduleConstructionBench.time_sample_pulse_schedule_construction(2, 128)
          484±9ms          482±9ms     1.00  quantum_info.CnotDihedralComposeBench.time_compose('4,40')
      2.87±0.02ms      2.86±0.01ms     1.00  qft.QftTranspileBench.time_ibmq_backend_transpile(2)
        355±0.9ms        354±0.5ms     1.00  state_tomography.StateTomographyBench.time_state_tomography_cat(3)
       21.5±0.2ms       21.4±0.3ms     1.00  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 1024, 1)
      6.13±0.05ms      6.10±0.03ms     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(53, 8)
          121±1ms        121±0.6ms     1.00  mapping_passes.PassBenchmarks.time_apply_layout(20, 1024)
      2.19±0.02ms      2.18±0.01ms     1.00  converters.ConverterBenchmarks.time_ast_to_circuit(20, 8)
         69.8±1ms       69.4±0.5ms     0.99  mapping_passes.PassBenchmarks.time_apply_layout(14, 1024)
      2.53±0.01ms      2.52±0.01ms     0.99  transpiler_benchmarks.TranspilerBenchSuite.time_single_gate_compile
          347±5μs          345±5μs     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_append_instruction(5, 128)
      4.86±0.07ms      4.84±0.07ms     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_append_instruction(1, 2048)
          100±1μs       99.9±0.2μs     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_insert_instruction_left_to_right(5, 8)
      1.24±0.01ms         1.23±0ms     0.99  passes.PassBenchmarks.time_dag_longest_path(14, 1024)
       33.5±0.5ms       33.3±0.3ms     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_sample_pulse_schedule_construction(5, 128)
       23.3±0.3ms       23.1±0.2ms     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_parametric_pulse_schedule_construction(5, 128)
       2.66±0.03s          2.65±0s     0.99  circuit_construction.ParameterizedCircuitConstructionBench.time_build_parameterized_circuit(20, 32768, 8)
       9.68±0.1ms       9.62±0.2ms     0.99  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 128, 1)
       43.1±0.5ms       42.8±0.6ms     0.99  assembler.DisassemblerBenchmarks.time_disassemble_circuit(2, 2048, 1)
       76.2±0.7ms         75.7±2ms     0.99  assembler.DisassemblerBenchmarks.time_disassemble_circuit(8, 8, 100)
          959±1ms          953±6ms     0.99  passes.PassBenchmarks.time_commutation_analysis(5, 1024)
       3.99±0.02s       3.96±0.01s     0.99  passes.PassBenchmarks.time_commutation_analysis(20, 1024)
       25.7±0.5ms       25.5±0.2ms     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(1, 2048)
      2.04±0.02ms      2.03±0.03ms     0.99  mapping_passes.PassBenchmarks.time_check_map(14, 1024)
          459±2μs          455±2μs     0.99  passes.PassBenchmarks.time_dag_longest_path(5, 1024)
         51.8±1ms       51.4±0.7ms     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(2, 2048)
          506±3ms        503±0.8ms     0.99  quantum_info.CliffordComposeBench.time_compose('4,2500')
          372±2ms          370±2ms     0.99  import.QiskitImport.time_qiskit_import
          195±2ms        194±0.5ms     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(8, 2048)
      1.26±0.01ms      1.25±0.01ms     0.99  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(1, 'translator')
      4.15±0.01ms      4.12±0.02ms     0.99  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(1, 'synthesis')
       69.0±0.8ms       68.5±0.3ms     0.99  random_circuit_hex.BenchRandomCircuitHex.time_ibmq_backend_transpile(6)
          324±5μs          322±1μs     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(2, 8)
         88.2±1ms       87.5±0.4ms     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(53, 128)
      3.23±0.04ms      3.20±0.04ms     0.99  passes.PassBenchmarks.time_collect_2q_blocks(5, 1024)
          248±1ms          246±5ms     0.99  quantum_info.RandomCliffordBench.time_random_clifford('6,700')
          842±4ms          835±2ms     0.99  transpiler_qualitative.TranspilerQualitativeBench.time_transpile_time_qft_16(2, 'stochastic', 'noise_adaptive')
          928±9μs          920±3μs     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(8, 8)
       2.88±0.01s          2.85±0s     0.99  passes.PassBenchmarks.time_commutation_analysis(14, 1024)
       2.61±0.03s          2.58±0s     0.99  mapping_passes.PassBenchmarks.time_stochastic_swap(14, 1024)
          493±5ms        489±0.7ms     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(5, 8192)
          481±2ms          477±2ms     0.99  quantum_info.RandomCnotDihedralBench.time_random_cnotdihedral('1,2000')
       25.2±0.4μs       24.9±0.1μs     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_append_instruction(5, 8)
          597±6ms          591±3ms     0.99  ripple_adder.RippleAdderTranspile.time_transpile_square_grid_ripple_adder(20, 0)
       1.33±0.01s       1.32±0.01s     0.99  quantum_info.CliffordDecomposeBench.time_decompose('4,50')
          242±3ms        239±0.8ms     0.99  quantum_info.RandomCnotDihedralBench.time_random_cnotdihedral('5,800')
       11.4±0.2ms      11.3±0.07ms     0.99  passes.PassBenchmarks.time_barrier_before_final_measurements(14, 1024)
       10.4±0.2ms       10.3±0.1ms     0.99  passes.PassBenchmarks.time_collect_2q_blocks(14, 1024)
      2.39±0.01ms      2.36±0.04ms     0.99  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 8, 5)
       5.31±0.1ms      5.26±0.06ms     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_append_instruction(2, 2048)
          351±4μs        348±0.5μs     0.99  passes.PassBenchmarks.time_depth_pass(5, 1024)
       8.44±0.2μs       8.35±0.2μs     0.99  passes.PassBenchmarks.time_size_pass(20, 1024)
       4.09±0.06s          4.05±0s     0.99  mapping_passes.PassBenchmarks.time_stochastic_swap(20, 1024)
          327±7ms          324±1ms     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_parametric_pulse_schedule_construction(1, 2048)
       13.2±0.09s       13.1±0.03s     0.99  passes.Collect2QPassBenchmarks.time_consolidate_blocks(20, 1024)
          358±5ms          353±1ms     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_sample_pulse_schedule_construction(1, 2048)
       57.7±0.9μs       57.0±0.8μs     0.99  passes.PassBenchmarks.time_resource_optimization(5, 1024)
       91.2±0.7ms       90.1±0.9ms     0.99  state_tomography.StateTomographyBench.time_state_tomography_bell(4)
          112±2ms        111±0.4ms     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(1, 8192)
      4.73±0.05ms      4.67±0.02ms     0.99  passes.PassBenchmarks.time_merge_adjacent_barriers(14, 1024)
        156±0.3μs          154±1μs     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_parametric_pulse_schedule_construction(1, 8)
          216±2ms          213±1ms     0.99  quantum_info.RandomCnotDihedralBench.time_random_cnotdihedral('6,700')
      3.60±0.03ms      3.56±0.01ms     0.99  passes.PassBenchmarks.time_cx_cancellation(14, 1024)
         858±30μs          847±2μs     0.99  pulse.schedule_construction.ScheduleConstructionBench.time_parametric_pulse_schedule_construction(5, 8)
          346±3ms        341±0.6ms     0.99  quantum_info.RandomCnotDihedralBench.time_random_cnotdihedral('3,1200')
      1.56±0.02ms      1.54±0.01ms     0.99  qft.QftTranspileBench.time_ibmq_backend_transpile(1)
          467±5ms        461±0.1ms     0.99  quantum_info.RandomCliffordBench.time_random_clifford('2,2500')
          327±3ms        323±0.5ms     0.99  quantum_info.RandomCliffordBench.time_random_clifford('5,1000')
      1.17±0.01ms      1.16±0.01ms     0.99  passes.PassBenchmarks.time_cx_cancellation(5, 1024)
          838±2μs          827±1μs     0.99  passes.PassBenchmarks.time_count_ops_longest_path(5, 1024)
       21.8±0.5ms       21.5±0.3ms     0.99  mapping_passes.PassBenchmarks.time_apply_layout(5, 1024)
          505±7ms        498±0.8ms     0.99  quantum_info.RandomCliffordBench.time_random_clifford('1,3000')
          408±4ms          403±1ms     0.99  quantum_info.RandomCnotDihedralBench.time_random_cnotdihedral('2,1500')
          553±7ms        545±0.8ms     0.99  mapping_passes.PassBenchmarks.time_stochastic_swap(5, 1024)
       22.8±0.9μs       22.5±0.2μs     0.99  mapping_passes.PassBenchmarks.time_full_ancilla_allocation(5, 1024)
          123±2ms        121±0.4ms     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(5, 2048)
       20.1±0.2ms       19.8±0.1ms     0.99  converters.ConverterBenchmarks.time_ast_to_circuit(14, 128)
      1.57±0.01ms         1.55±0ms     0.99  passes.PassBenchmarks.time_count_ops_pass(5, 1024)
      7.87±0.05ms      7.76±0.05ms     0.99  passes.PassBenchmarks.time_count_ops_pass(20, 1024)
      1.83±0.02ms      1.80±0.01ms     0.99  passes.PassBenchmarks.time_dag_longest_path(20, 1024)
       24.3±0.5μs       23.9±0.2μs     0.99  mapping_passes.PassBenchmarks.time_set_layout(14, 1024)
      2.47±0.02ms      2.43±0.02ms     0.99  passes.PassBenchmarks.time_count_ops_longest_path(20, 1024)
       6.67±0.02s       6.57±0.02s     0.98  passes.Collect2QPassBenchmarks.time_consolidate_blocks(14, 1024)
      1.12±0.02ms         1.10±0ms     0.98  passes.PassBenchmarks.time_depth_pass(14, 1024)
          479±5μs          471±8μs     0.98  assembler.DisassemblerBenchmarks.time_disassemble_circuit(5, 8, 1)
      4.87±0.02ms      4.80±0.02ms     0.98  passes.PassBenchmarks.time_count_ops_pass(14, 1024)
          377±4ms        371±0.1ms     0.98  quantum_info.RandomCliffordBench.time_random_clifford('4,1500')
          334±2ms          329±1ms     0.98  quantum_info.CliffordComposeBench.time_compose('1,7000')
         371±10ms         365±10ms     0.98  quantum_info.CnotDihedralComposeBench.time_compose('5,10')
      1.76±0.01ms         1.73±0ms     0.98  passes.PassBenchmarks.time_count_ops_longest_path(14, 1024)
         651±10μs          640±2μs     0.98  converters.ConverterBenchmarks.time_ast_to_circuit(5, 8)
       10.8±0.3μs       10.6±0.2μs     0.98  mapping_passes.PassBenchmarks.time_enlarge_with_ancilla(14, 1024)
         1.53±0ms      1.50±0.01ms     0.98  passes.PassBenchmarks.time_merge_adjacent_barriers(5, 1024)
      3.50±0.04ms         3.44±0ms     0.98  pulse.schedule_construction.ScheduleConstructionBench.time_parametric_pulse_schedule_construction(1, 128)
       5.28±0.04s       5.19±0.01s     0.98  mapping_passes.PassBenchmarks.time_basic_swap(20, 1024)
       55.1±0.6μs       54.1±0.3μs     0.98  mapping_passes.PassBenchmarks.time_trivial_layout(20, 1024)
      16.2±0.07ms       15.9±0.1ms     0.98  mapping_passes.PassBenchmarks.time_dense_layout(20, 1024)
          353±4ms          347±2ms     0.98  quantum_info.CnotDihedralComposeBench.time_compose('1,1500')
         832±10ms          817±2ms     0.98  mapping_passes.PassBenchmarks.time_basic_swap(5, 1024)
       7.27±0.1ms      7.14±0.06ms     0.98  converters.ConverterBenchmarks.time_ast_to_circuit(5, 128)
      7.70±0.05ms      7.56±0.02ms     0.98  passes.PassBenchmarks.time_merge_adjacent_barriers(20, 1024)
        9.70±0.2s       9.52±0.07s     0.98  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(20, 'synthesis')
          435±5ms        426±0.2ms     0.98  quantum_info.RandomCliffordBench.time_random_clifford('3,2000')
          341±7ms          335±4ms     0.98  quantum_info.CnotDihedralComposeBench.time_compose('3,100')
      5.75±0.03ms      5.64±0.03ms     0.98  passes.PassBenchmarks.time_cx_cancellation(20, 1024)
       24.3±0.6μs       23.9±0.2μs     0.98  mapping_passes.PassBenchmarks.time_set_layout(5, 1024)
       24.4±0.4μs       23.9±0.4μs     0.98  mapping_passes.PassBenchmarks.time_set_layout(20, 1024)
          846±6ms          829±2ms     0.98  passes.PassBenchmarks.time_remove_final_measurements(14, 1024)
      2.11±0.03ms      2.06±0.03ms     0.98  mapping_passes.PassBenchmarks.time_check_cx_direction(14, 1024)
      1.66±0.03ms      1.62±0.03ms     0.98  converters.ConverterBenchmarks.time_ast_to_circuit(1, 128)
         10.7±2ms         10.5±1ms     0.98  qft.QftTranspileBench.time_ibmq_backend_transpile(3)
       2.57±0.04s       2.52±0.01s     0.98  passes.PassBenchmarks.time_remove_final_measurements(20, 1024)
       14.0±0.2ms      13.7±0.08ms     0.98  passes.PassBenchmarks.time_barrier_before_final_measurements(5, 1024)
      6.17±0.09ms      6.03±0.02ms     0.98  mapping_passes.PassBenchmarks.time_csp_layout(5, 1024)
       56.3±0.4μs       55.1±0.2μs     0.98  mapping_passes.PassBenchmarks.time_trivial_layout(14, 1024)
          300±3ms          294±3ms     0.98  quantum_info.RandomCnotDihedralBench.time_random_cnotdihedral('4,1000')
       19.6±0.4ms       19.2±0.2ms     0.98  passes.PassBenchmarks.time_barrier_before_final_measurements(20, 1024)
       27.2±0.2ms       26.5±0.1ms     0.98  mapping_passes.PassBenchmarks.time_csp_layout(14, 1024)
       26.0±0.5ms       25.4±0.2ms     0.98  mapping_passes.PassBenchmarks.time_noise_adaptive_layout(20, 1024)
      6.11±0.04ms      5.96±0.02ms     0.98  mapping_passes.PassBenchmarks.time_dense_layout(5, 1024)
         48.5±1ms       47.3±0.1ms     0.98  mapping_passes.PassBenchmarks.time_csp_layout(20, 1024)
          544±8ms          530±5ms     0.98  quantum_info.CliffordDecomposeBench.time_decompose('5,10')
       20.6±0.3ms       20.1±0.2ms     0.97  mapping_passes.PassBenchmarks.time_layout_2q_distance(20, 1024)
       3.04±0.05s          2.96±0s     0.97  pulse.schedule_construction.ScheduleConstructionBench.time_sample_pulse_schedule_construction(5, 2048)
      3.19±0.03ms      3.11±0.05ms     0.97  mapping_passes.PassBenchmarks.time_check_map(20, 1024)
       10.7±0.2ms      10.5±0.09ms     0.97  mapping_passes.PassBenchmarks.time_dense_layout(14, 1024)
       11.6±0.2ms      11.3±0.05ms     0.97  converters.ConverterBenchmarks.time_ast_to_circuit(8, 128)
       8.43±0.1μs       8.19±0.2μs     0.97  passes.PassBenchmarks.time_width_pass(20, 1024)
      1.27±0.01ms      1.23±0.03ms     0.97  passes.PassBenchmarks.time_remove_reset_in_zero_state(20, 1024)
       2.90±0.06s          2.81±0s     0.97  pulse.schedule_construction.ScheduleConstructionBench.time_parametric_pulse_schedule_construction(5, 2048)
       23.0±0.6μs       22.4±0.3μs     0.97  mapping_passes.PassBenchmarks.time_full_ancilla_allocation(14, 1024)
        3.68±0.6s        3.57±0.3s     0.97  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(14, 'synthesis')
      1.06±0.01ms      1.03±0.03ms     0.97  passes.PassBenchmarks.time_optimize_swap_before_measure(14, 1024)
       8.84±0.2μs       8.58±0.3μs     0.97  passes.PassBenchmarks.time_size_pass(14, 1024)
       56.3±0.7μs       54.6±0.3μs     0.97  mapping_passes.PassBenchmarks.time_trivial_layout(5, 1024)
          730±5μs          707±5μs     0.97  mapping_passes.PassBenchmarks.time_check_cx_direction(5, 1024)
       16.6±0.4ms       16.1±0.1ms     0.97  mapping_passes.PassBenchmarks.time_noise_adaptive_layout(14, 1024)
       10.8±0.1μs       10.4±0.2μs     0.97  mapping_passes.PassBenchmarks.time_enlarge_with_ancilla(5, 1024)
         239±20ms         231±10ms     0.97  quantum_volume.QuantumVolumeBenchmark.time_ibmq_backend_transpile(8, 'translator')
       8.61±0.2μs       8.33±0.1μs     0.97  passes.PassBenchmarks.time_width_pass(14, 1024)
          332±3ms          321±2ms     0.97  quantum_info.CnotDihedralComposeBench.time_compose('2,400')
       5.71±0.1ms      5.52±0.01ms     0.97  passes.PassBenchmarks.time_remove_final_measurements(5, 1024)
         690±10μs          666±7μs     0.97  mapping_passes.PassBenchmarks.time_check_map(5, 1024)
       8.75±0.2μs       8.45±0.2μs     0.97  passes.PassBenchmarks.time_size_pass(5, 1024)
         29.9±1ms       28.9±0.2ms     0.97  qft.QftTranspileBench.time_ibmq_backend_transpile(5)
         266±10ms          256±6ms     0.97  qft.QftTranspileBench.time_ibmq_backend_transpile(14)
      4.74±0.09ms      4.56±0.01ms     0.96  mapping_passes.PassBenchmarks.time_noise_adaptive_layout(5, 1024)
      1.50±0.01ms      1.44±0.03ms     0.96  passes.PassBenchmarks.time_optimize_swap_before_measure(20, 1024)
             1060             1016     0.96  ripple_adder.RippleAdderTranspile.track_depth_transpile_square_grid_ripple_adder(20, 3)
          335±6μs          320±6μs     0.96  passes.PassBenchmarks.time_remove_diagonal_gates_before_measurement(5, 1024)
          917±9μs         876±20μs     0.96  passes.PassBenchmarks.time_remove_reset_in_zero_state(14, 1024)
         850±10μs         812±20μs     0.96  passes.PassBenchmarks.time_remove_diagonal_gates_before_measurement(14, 1024)
       10.0±0.2μs       9.56±0.3μs     0.95  mapping_passes.PassBenchmarks.time_enlarge_with_ancilla(20, 1024)
             1092             1042     0.95  ripple_adder.RippleAdderTranspile.track_depth_transpile_square_grid_ripple_adder(20, 2)
          417±7μs          398±8μs     0.95  passes.PassBenchmarks.time_optimize_swap_before_measure(5, 1024)
          369±5μs          352±7μs     0.95  passes.PassBenchmarks.time_remove_reset_in_zero_state(5, 1024)
       45.7±0.9μs       43.6±0.5μs     0.95  passes.PassBenchmarks.time_num_tensor_factors(5, 1024)
             1108             1053     0.95  ripple_adder.RippleAdderTranspile.track_depth_transpile_square_grid_ripple_adder(20, 1)
          141±3μs        134±0.3μs     0.95  passes.PassBenchmarks.time_num_tensor_factors(14, 1024)
      1.22±0.01ms      1.15±0.03ms     0.95  passes.PassBenchmarks.time_remove_diagonal_gates_before_measurement(20, 1024)
              501              474     0.95  ripple_adder.RippleAdderTranspile.track_depth_transpile_square_grid_ripple_adder(10, 3)
      3.35±0.02ms      3.16±0.08ms     0.94  mapping_passes.PassBenchmarks.time_check_cx_direction(20, 1024)
          212±5μs        199±0.2μs     0.94  passes.PassBenchmarks.time_num_tensor_factors(20, 1024)

Benchmarks that have got worse:

       before           after         ratio
     [522de2a0]       [895f094d]
     <lint_incr_latest>       <operation-class>
+      18.1±0.2ms       33.3±0.1ms     1.84  circuit_construction.CircuitConstructionBench.time_circuit_copy(1, 8192)
+     4.53±0.08ms      8.19±0.08ms     1.81  circuit_construction.CircuitConstructionBench.time_circuit_copy(1, 2048)
+         292±5μs          525±4μs     1.80  circuit_construction.CircuitConstructionBench.time_circuit_copy(1, 128)
+      84.8±0.7ms        151±0.7ms     1.78  circuit_construction.CircuitConstructionBench.time_circuit_copy(1, 32768)
+         350±1ms          613±1ms     1.75  circuit_construction.CircuitConstructionBench.time_circuit_copy(1, 131072)
+      13.9±0.3ms       23.9±0.3ms     1.72  circuit_construction.CircuitConstructionBench.time_circuit_extend(1, 8192)
+        58.4±1ms          100±2ms     1.71  circuit_construction.CircuitConstructionBench.time_circuit_extend(1, 32768)
+     3.47±0.08ms       5.92±0.1ms     1.71  circuit_construction.CircuitConstructionBench.time_circuit_extend(1, 2048)
+         235±4ms          400±7ms     1.71  circuit_construction.CircuitConstructionBench.time_circuit_extend(1, 131072)
+         217±4μs          370±7μs     1.70  circuit_construction.CircuitConstructionBench.time_circuit_extend(1, 128)
+         251±3μs          422±3μs     1.68  circuit_construction.CircuitConstructionBench.time_circuit_extend(8, 128)
+      65.6±0.9ms          110±1ms     1.67  circuit_construction.CircuitConstructionBench.time_circuit_extend(8, 32768)
+     3.86±0.09ms      6.45±0.03ms     1.67  circuit_construction.CircuitConstructionBench.time_circuit_extend(14, 2048)
+         254±4μs          423±1μs     1.67  circuit_construction.CircuitConstructionBench.time_circuit_extend(14, 128)
+     3.87±0.09ms      6.45±0.04ms     1.67  circuit_construction.CircuitConstructionBench.time_circuit_extend(8, 2048)
+      16.0±0.4ms       26.5±0.1ms     1.66  circuit_construction.CircuitConstructionBench.time_circuit_extend(14, 8192)
+      16.1±0.3ms       26.7±0.1ms     1.66  circuit_construction.CircuitConstructionBench.time_circuit_extend(20, 8192)
+     3.93±0.05ms      6.52±0.02ms     1.66  circuit_construction.CircuitConstructionBench.time_circuit_extend(20, 2048)
+      15.4±0.5ms       25.6±0.4ms     1.66  circuit_construction.CircuitConstructionBench.time_circuit_extend(2, 8192)
+         265±5ms          439±5ms     1.66  circuit_construction.CircuitConstructionBench.time_circuit_extend(14, 131072)
+         258±3ms          428±4ms     1.66  circuit_construction.CircuitConstructionBench.time_circuit_extend(5, 131072)
+        75.8±2μs        125±0.8μs     1.66  circuit_construction.CircuitConstructionBench.time_circuit_extend(20, 8)
+       371±0.7μs          615±7μs     1.66  circuit_construction.CircuitConstructionBench.time_circuit_copy(2, 128)
+         296±6μs          490±3μs     1.66  circuit_construction.CircuitConstructionBench.time_circuit_extend(20, 128)
+         253±4ms          418±5ms     1.66  circuit_construction.CircuitConstructionBench.time_circuit_extend(2, 131072)
+      64.4±0.7ms          107±1ms     1.65  circuit_construction.CircuitConstructionBench.time_circuit_extend(5, 32768)
+      15.9±0.5ms       26.3±0.1ms     1.65  circuit_construction.CircuitConstructionBench.time_circuit_extend(8, 8192)
+     3.74±0.08ms       6.18±0.1ms     1.65  circuit_construction.CircuitConstructionBench.time_circuit_extend(2, 2048)
+         235±4μs          388±6μs     1.65  circuit_construction.CircuitConstructionBench.time_circuit_extend(2, 128)
+        64.1±2ms          106±1ms     1.65  circuit_construction.CircuitConstructionBench.time_circuit_extend(2, 32768)
+      25.6±0.4μs       42.2±0.6μs     1.65  circuit_construction.CircuitConstructionBench.time_circuit_copy(1, 8)
+         264±2ms          435±3ms     1.64  circuit_construction.CircuitConstructionBench.time_circuit_extend(20, 131072)
+     3.86±0.08ms      6.34±0.06ms     1.64  circuit_construction.CircuitConstructionBench.time_circuit_extend(5, 2048)
+         254±4μs          416±7μs     1.64  circuit_construction.CircuitConstructionBench.time_circuit_extend(5, 128)
+         263±5ms          432±4ms     1.64  circuit_construction.CircuitConstructionBench.time_circuit_extend(8, 131072)
+        53.3±1μs       87.4±0.4μs     1.64  circuit_construction.CircuitConstructionBench.time_circuit_extend(14, 8)
+        66.3±1ms          109±1ms     1.64  circuit_construction.CircuitConstructionBench.time_circuit_extend(14, 32768)
+      5.85±0.1ms       9.58±0.1ms     1.64  circuit_construction.CircuitConstructionBench.time_circuit_copy(2, 2048)
+      15.9±0.5ms       26.0±0.4ms     1.64  circuit_construction.CircuitConstructionBench.time_circuit_extend(5, 8192)
+      67.0±0.8ms        109±0.5ms     1.63  circuit_construction.CircuitConstructionBench.time_circuit_extend(20, 32768)
+      24.2±0.6ms       39.4±0.3ms     1.63  circuit_construction.CircuitConstructionBench.time_circuit_copy(2, 8192)
+     6.26±0.02ms       9.99±0.2ms     1.60  circuit_construction.CircuitConstructionBench.time_circuit_copy(14, 2048)
+      30.7±0.8μs       49.0±0.5μs     1.59  circuit_construction.CircuitConstructionBench.time_circuit_extend(8, 8)
+         485±3μs         770±20μs     1.59  circuit_construction.CircuitConstructionBench.time_circuit_copy(20, 128)
+         421±2μs         667±20μs     1.58  circuit_construction.CircuitConstructionBench.time_circuit_copy(14, 128)
+      19.4±0.3μs       30.6±0.4μs     1.58  circuit_construction.CircuitConstructionBench.time_circuit_extend(5, 8)
+      19.0±0.3μs       30.0±0.4μs     1.58  circuit_construction.CircuitConstructionBench.time_circuit_extend(2, 8)
+      16.2±0.3μs       25.6±0.4μs     1.58  circuit_construction.CircuitConstructionBench.time_circuit_extend(1, 8)
+      26.3±0.7ms         41.5±1ms     1.58  circuit_construction.CircuitConstructionBench.time_circuit_copy(20, 8192)
+      6.27±0.2ms       9.86±0.3ms     1.57  circuit_construction.CircuitConstructionBench.time_circuit_copy(5, 2048)
+      6.41±0.1ms       10.1±0.3ms     1.57  circuit_construction.CircuitConstructionBench.time_circuit_copy(20, 2048)
+      26.3±0.3ms         41.3±1ms     1.57  circuit_construction.CircuitConstructionBench.time_circuit_copy(14, 8192)
+      26.0±0.3ms         40.9±1ms     1.57  circuit_construction.CircuitConstructionBench.time_circuit_copy(8, 8192)
+      6.36±0.1ms       9.96±0.3ms     1.57  circuit_construction.CircuitConstructionBench.time_circuit_copy(8, 2048)
+     33.7±0.07μs       52.7±0.8μs     1.57  circuit_construction.CircuitConstructionBench.time_circuit_copy(2, 8)
+      90.6±0.4μs          142±4μs     1.57  circuit_construction.CircuitConstructionBench.time_circuit_copy(14, 8)
+        421±10μs         655±20μs     1.56  circuit_construction.CircuitConstructionBench.time_circuit_copy(5, 128)
+         426±8μs         663±20μs     1.56  circuit_construction.CircuitConstructionBench.time_circuit_copy(8, 128)
+      26.0±0.7ms         40.4±1ms     1.55  circuit_construction.CircuitConstructionBench.time_circuit_copy(5, 8192)
+         117±1ms        181±0.7ms     1.55  circuit_construction.CircuitConstructionBench.time_circuit_copy(2, 32768)
+         129±2μs          199±6μs     1.55  circuit_construction.CircuitConstructionBench.time_circuit_copy(20, 8)
+      53.8±0.3μs         83.1±3μs     1.54  circuit_construction.CircuitConstructionBench.time_circuit_copy(8, 8)
+       124±0.7ms        191±0.4ms     1.53  circuit_construction.CircuitConstructionBench.time_circuit_copy(14, 32768)
+         483±7ms          736±5ms     1.52  circuit_construction.CircuitConstructionBench.time_circuit_copy(2, 131072)
+         511±1ms          775±1ms     1.52  circuit_construction.CircuitConstructionBench.time_circuit_copy(14, 131072)
+         508±1ms         767±20ms     1.51  circuit_construction.CircuitConstructionBench.time_circuit_copy(8, 131072)
+         125±1ms          188±4ms     1.51  circuit_construction.CircuitConstructionBench.time_circuit_copy(8, 32768)
+         126±2ms          188±3ms     1.50  circuit_construction.CircuitConstructionBench.time_circuit_copy(20, 32768)
+         510±3ms         762±10ms     1.49  circuit_construction.CircuitConstructionBench.time_circuit_copy(5, 131072)
+      35.7±0.7μs         53.0±2μs     1.49  circuit_construction.CircuitConstructionBench.time_circuit_copy(5, 8)
+         125±3ms          185±2ms     1.48  circuit_construction.CircuitConstructionBench.time_circuit_copy(5, 32768)
+        519±10ms         761±20ms     1.47  circuit_construction.CircuitConstructionBench.time_circuit_copy(20, 131072)
+     3.16±0.05ms      4.42±0.09ms     1.40  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 8, 100)
+     1.60±0.03ms      2.23±0.03ms     1.40  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 8, 50)
+        43.8±1ms         60.5±1ms     1.38  converters.ConverterBenchmarks.time_circuit_to_instruction(1, 8192)
+      10.5±0.2ms       14.4±0.2ms     1.38  converters.ConverterBenchmarks.time_circuit_to_instruction(1, 2048)
+        679±10μs          935±9μs     1.38  converters.ConverterBenchmarks.time_circuit_to_instruction(1, 128)
+         353±7μs          475±6μs     1.34  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 8, 10)
+        77.4±1ms          104±1ms     1.34  converters.ConverterBenchmarks.time_circuit_to_instruction(2, 8192)
+     1.13±0.02ms      1.50±0.02ms     1.33  converters.ConverterBenchmarks.time_circuit_to_instruction(2, 128)
+      18.7±0.4ms       24.8±0.2ms     1.32  converters.ConverterBenchmarks.time_circuit_to_instruction(2, 2048)
+     2.44±0.04ms      3.23±0.06ms     1.32  converters.ConverterBenchmarks.time_circuit_to_instruction(5, 128)
+         194±3μs          255±3μs     1.32  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 8, 5)
+      9.30±0.2ms       12.2±0.2ms     1.31  converters.ConverterBenchmarks.time_circuit_to_instruction(20, 128)
+     3.81±0.08ms      4.95±0.05ms     1.30  converters.ConverterBenchmarks.time_circuit_to_instruction(8, 128)
+     1.88±0.04ms      2.44±0.03ms     1.30  converters.ConverterBenchmarks.time_circuit_to_instruction(53, 8)
+     1.17±0.02ms      1.51±0.01ms     1.29  converters.ConverterBenchmarks.time_circuit_to_instruction(32, 8)
+      6.57±0.2ms       8.45±0.1ms     1.29  converters.ConverterBenchmarks.time_circuit_to_instruction(14, 128)
+      41.1±0.5ms       52.9±0.6ms     1.29  converters.ConverterBenchmarks.time_circuit_to_instruction(5, 2048)
+         177±2ms          227±2ms     1.28  converters.ConverterBenchmarks.time_circuit_to_instruction(5, 8192)
+         280±2ms          357±5ms     1.28  converters.ConverterBenchmarks.time_circuit_to_instruction(8, 8192)
+        734±10μs         936±10μs     1.27  converters.ConverterBenchmarks.time_circuit_to_instruction(20, 8)
+      25.8±0.6ms       32.7±0.4ms     1.27  converters.ConverterBenchmarks.time_circuit_to_instruction(53, 128)
+        65.4±1ms       82.8±0.8ms     1.27  converters.ConverterBenchmarks.time_circuit_to_instruction(8, 2048)
+      15.3±0.4ms       19.3±0.3ms     1.26  converters.ConverterBenchmarks.time_circuit_to_instruction(32, 128)
+     2.80±0.04ms      3.54±0.04ms     1.26  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 8, 50)
+     5.63±0.08ms      7.11±0.07ms     1.26  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 8, 100)
+         545±8μs          687±9μs     1.26  converters.ConverterBenchmarks.time_circuit_to_instruction(14, 8)
+         116±2ms          147±2ms     1.26  converters.ConverterBenchmarks.time_circuit_to_instruction(14, 2048)
+         339±4μs          426±4μs     1.25  converters.ConverterBenchmarks.time_circuit_to_instruction(8, 8)
+         247±3μs          309±4μs     1.25  converters.ConverterBenchmarks.time_circuit_to_instruction(5, 8)
+       312±0.8μs          389±4μs     1.25  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 8, 5)
+     11.1±0.07ms       13.8±0.1ms     1.24  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 8, 100)
+         141±2μs          175±2μs     1.24  converters.ConverterBenchmarks.time_circuit_to_instruction(2, 8)
+         598±3μs          736±1μs     1.23  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 8, 10)
+     17.9±0.07ms       22.1±0.1ms     1.23  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 2048, 8)
+     5.60±0.02ms      6.88±0.03ms     1.23  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 8, 50)
+      18.5±0.2ms       22.6±0.1ms     1.22  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 2048, 128)
+        1.16±0ms      1.41±0.01ms     1.22  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 8, 10)
+        76.0±1ms       92.4±0.4ms     1.22  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8192, 128)
+         597±7μs          724±6μs     1.21  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 8, 5)
+      31.9±0.3ms       38.5±0.4ms     1.21  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 128, 100)
+         342±4ms        411±0.6ms     1.20  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 32768, 8)
+        76.4±2ms       91.7±0.8ms     1.20  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8192, 8)
+         397±1μs          475±4μs     1.20  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8, 8)
+         345±4ms          413±3ms     1.20  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 32768, 128)
+      14.6±0.3ms       17.5±0.4ms     1.19  converters.ConverterBenchmarks.time_circuit_to_dag(1, 2048)
+      16.0±0.2ms       19.1±0.2ms     1.19  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 128, 50)
+     1.45±0.03ms      1.73±0.01ms     1.19  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 128, 8)
+        61.4±2ms         73.0±2ms     1.19  converters.ConverterBenchmarks.time_circuit_to_dag(1, 8192)
+         354±4ms          421±2ms     1.19  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 32768, 2048)
+        901±20μs      1.07±0.02ms     1.19  converters.ConverterBenchmarks.time_circuit_to_dag(1, 128)
+      61.5±0.5μs       73.1±0.3μs     1.19  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 8, 1)
+     3.24±0.04ms      3.85±0.04ms     1.19  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 128, 10)
+        85.8±2ms        102±0.4ms     1.19  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8192, 2048)
+     1.65±0.02ms      1.96±0.02ms     1.19  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 128, 5)
+             990             1172     1.18  ripple_adder.RippleAdderTranspile.track_depth_transpile_square_grid_ripple_adder(20, 0)
+      1.40±0.01s       1.66±0.01s     1.18  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 131072, 2048)
+         378±5ms        443±0.6ms     1.17  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 32768, 8192)
+       112±0.8ms          132±3ms     1.17  converters.ConverterBenchmarks.time_circuit_to_dag(2, 8192)
+      27.4±0.2ms       32.1±0.7ms     1.17  converters.ConverterBenchmarks.time_circuit_to_dag(2, 2048)
+      1.55±0.01s       1.81±0.01s     1.17  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 131072, 32768)
+         144±1μs        168±0.7μs     1.17  assembler.AssemblerBenchmarks.time_assemble_circuit(5, 8, 1)
+      1.46±0.02s       1.70±0.01s     1.17  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 131072, 8192)
+     1.62±0.02ms      1.89±0.04ms     1.16  converters.ConverterBenchmarks.time_circuit_to_dag(2, 128)
+        86.2±1μs        100±0.7μs     1.16  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 8, 1)
+      25.2±0.3ms       29.2±0.2ms     1.16  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 2048, 2048)
+         351±3μs          406±1μs     1.16  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 128, 1)
+      23.2±0.2ms       26.8±0.1ms     1.15  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 1024, 10)
+     1.84±0.03ms      2.13±0.02ms     1.15  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 128, 128)
+      11.6±0.1ms      13.3±0.02ms     1.15  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 1024, 5)
+        83.8±1μs         96.0±2μs     1.15  converters.ConverterBenchmarks.time_circuit_to_dag(1, 8)
+         255±2ms          292±7ms     1.15  converters.ConverterBenchmarks.time_circuit_to_dag(5, 8192)
+      23.4±0.1ms       26.7±0.2ms     1.14  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 2048, 5)
+     6.07±0.05ms       6.94±0.2ms     1.14  converters.ConverterBenchmarks.time_circuit_to_dag(8, 128)
+       150±0.6μs          171±3μs     1.14  converters.ConverterBenchmarks.time_circuit_to_dag(2, 8)
+     3.74±0.01ms      4.27±0.09ms     1.14  converters.ConverterBenchmarks.time_circuit_to_dag(5, 128)
+         403±3ms         460±10ms     1.14  converters.ConverterBenchmarks.time_circuit_to_dag(8, 8192)
+         513±4ms          585±5ms     1.14  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 2048, 100)
+         254±2ms          289±3ms     1.14  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 1024, 100)
+     4.62±0.01ms      5.25±0.02ms     1.14  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 2048, 1)
+      62.5±0.7ms         71.1±1ms     1.14  converters.ConverterBenchmarks.time_circuit_to_dag(5, 2048)
+     10.9±0.08ms       12.4±0.3ms     1.14  converters.ConverterBenchmarks.time_circuit_to_dag(14, 128)
+     2.32±0.03ms      2.64±0.01ms     1.14  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 1024, 1)
+      99.7±0.8ms          113±2ms     1.14  converters.ConverterBenchmarks.time_circuit_to_dag(8, 2048)
+      49.2±0.8ms       55.8±0.2ms     1.14  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 4096, 5)
+         522±5ms          591±2ms     1.13  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 4096, 50)
+         113±1ms          128±1ms     1.13  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 8192, 8192)
+         181±1ms          204±3ms     1.13  converters.ConverterBenchmarks.time_circuit_to_dag(14, 2048)
+         126±2ms          142±1ms     1.13  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 1024, 50)
+      22.0±0.2ms      24.8±0.07ms     1.13  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 1024, 5)
+         257±3ms        290±0.6ms     1.13  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 2048, 50)
+         481±8ms          542±3ms     1.13  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 32768, 32768)
+      9.32±0.1ms      10.5±0.05ms     1.13  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 4096, 1)
+      1.05±0.02s       1.18±0.01s     1.13  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 4096, 100)
+      61.5±0.7ms       69.2±0.2ms     1.13  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 128, 100)
+      1.96±0.01s       2.20±0.02s     1.12  circuit_construction.ParameterizedCircuitBindBench.time_bind_params(20, 131072, 131072)
+         102±1ms        115±0.3ms     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 4096, 10)
+         493±3μs          554±8μs     1.12  converters.ConverterBenchmarks.time_circuit_to_dag(8, 8)
+      30.5±0.2ms       34.2±0.1ms     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 128, 50)
+      48.9±0.3ms       54.8±0.4ms     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(1, 2048, 10)
+     3.08±0.04ms      3.45±0.02ms     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 128, 5)
+         963±2ms       1.08±0.01s     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 2048, 100)
+     8.86±0.09ms      9.92±0.03ms     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 2048, 1)
+     4.42±0.05ms      4.94±0.04ms     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 1024, 1)
+      93.6±0.4ms        104±0.5ms     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 4096, 5)
+         482±3ms          538±3ms     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 2048, 50)
+      45.1±0.4ms       50.4±0.3ms     1.12  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 1024, 10)
+         480±3ms          534±2ms     1.11  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 1024, 100)
+      45.5±0.6ms      50.7±0.09ms     1.11  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 2048, 5)
+         322±2μs          358±5μs     1.11  converters.ConverterBenchmarks.time_circuit_to_dag(5, 8)
+     18.1±0.06ms       20.1±0.1ms     1.11  ripple_adder.RippleAdderConstruction.time_build_ripple_adder(100)
+        94.4±1ms        105±0.4ms     1.11  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 2048, 10)
+     9.07±0.07ms      10.0±0.05ms     1.11  ripple_adder.RippleAdderConstruction.time_build_ripple_adder(50)
+      16.4±0.2ms       18.2±0.5ms     1.11  converters.ConverterBenchmarks.time_circuit_to_dag(20, 128)
+     6.19±0.05ms      6.85±0.05ms     1.11  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 128, 10)
+      91.5±0.3ms        101±0.5ms     1.11  ripple_adder.RippleAdderConstruction.time_build_ripple_adder(500)
+         880±4μs          973±9μs     1.11  converters.ConverterBenchmarks.time_circuit_to_dag(14, 8)
+         645±9μs          713±5μs     1.11  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 128, 1)
+      36.4±0.2ms       40.2±0.2ms     1.11  ripple_adder.RippleAdderConstruction.time_build_ripple_adder(200)
+      17.9±0.3ms       19.7±0.1ms     1.10  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 4096, 1)
+         1.94±0s       2.14±0.01s     1.10  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 4096, 100)
+     1.82±0.03ms      2.01±0.01ms     1.10  ripple_adder.RippleAdderConstruction.time_build_ripple_adder(10)
+         969±5ms          1.07±0s     1.10  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 4096, 50)
+         239±2ms          264±1ms     1.10  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 1024, 50)
+         192±2ms          212±1ms     1.10  assembler.AssemblerBenchmarks.time_assemble_circuit(2, 4096, 10)

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE DECREASED.

So I think the next step here is to update all the QuantumCircuit methods to use attribute access and see if that fixes the overhead from __getitem__.

Copy link
Member

@kdk kdk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking this on. Agree this will be much needed as the circuit model evolves going forward.

I'm thinking for performance we'll need to update the access patterns before merging this (which increases the scope of the PR quite a bit). The test execution seems to have slowed down a ton (mostly the shor's algorithm tests).
...
So I think the next step here is to update all the QuantumCircuit methods to use attribute access and see if that fixes the overhead from getitem.

This definitely increases the scope of this PR. (If the performance impact really is that substantial, would we need to deprecate index-based access or otherwise help users know to migrate their code?)

Given that the existing access pattern is entirely index-based, would starting with a NamedTuple be a reasonable first step? (Alternately, using a tuple internally so that we could still have def __getitem__(self, idx): return self._tuple[idx])

from collections.abc import Sequence


class Operation(Sequence):
Copy link
Member

@kdk kdk Sep 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The terminology we've used here has varied a bit, but it's probably worth thinking over before we nail this down.

Maybe someone with more compiler experience can weigh in, but I thought canonically an Instruction was the combination of an operation and its operands (qargs and cargs), whereas with this PR we'd have an Operation as the combination of an Instruction and its operands. Is there another name we want to use here, or are we set on Operation? (We do already have an InstructionSet which is ~largely unused but very similar in structure to what's here.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking this on. Agree this will be much needed as the circuit model evolves going forward.

I'm thinking for performance we'll need to update the access patterns before merging this (which increases the scope of the PR quite a bit). The test execution seems to have slowed down a ton (mostly the shor's algorithm tests).
...
So I think the next step here is to update all the QuantumCircuit methods to use attribute access and see if that fixes the overhead from getitem.

This definitely increases the scope of this PR. (If the performance impact really is that substantial, would we need to deprecate index-based access or otherwise help users know to migrate their code?)

Given that the existing access pattern is entirely index-based, would starting with a NamedTuple be a reasonable first step? (Alternately, using a tuple internally so that we could still have def __getitem__(self, idx): return self._tuple[idx])

Yeah, I was under the impression that slotted attribute access was the fastest return and that's what I was optimizing for and my previous experience with named tuple was it's named attribute access was slower. However, as of py 3.8 that no longer seems to be the case (with this pr: python/cpython#10495 ). I did a quick test with this pr applied on python 3.9:

from qiskit import QuantumCircuit
from collections import namedtuple

qc = QuantumCircuit(2)
qc.h(0)

Op = namedtuple('Op', ['instruction', 'qargs', 'cargs'])

op = qc.data[1]
op_tuple = tuple(op)
op_named_tuple = Op(*op_tuple)

With indexed access:

%timeit op[0]
75.5 ns ± 0.201 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit op_tuple[0]
22.6 ns ± 0.0474 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit op_named_tuple[0]
23 ns ± 0.0631 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

with attribute access:

%timeit op.instruction
28.1 ns ± 0.11 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit op_named_tuple.instruction
26.8 ns ± 0.298 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

So I'm thinking the best choice is a named tuple despite my earlier hesitation (which was clearly wrong). I'll have to see how things behave in py3.7 and 3.6 too (although this is the last release with 3.6 support) but I doubt it will be an issue and even if it causes a regression I think it'll be an ok tradeoff (or we can wait until after 0.19 to do this and then we'll only support 3.7, 3.8, 3.9, and 3.10).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It just seemed like the logical choice to me since we're already using instruction to represent the opcode. The terminology here is a bit fuzzy, like I've heard instructions and operation (well really opcode) used interchangeable. If you think operation here would be too overloaded the other term I was thinking of was Statement (ie one line in assembly). But I'll defer to what others like I don't feel too strongly as long as we're not reusing a name already used (since deprecating Instruction as it's used today isn't really a viable path).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I think Instruction is the most appropriate name to refer to the tuple, which is like one line of qasm. It's unfortunate it wasn't used like that since the beginning. But there are places in qiskit where it's used like that, e.g. InstructionScheduleMap.

I was thinking in this release we can deprecate Instruction as it is now, and call it something else (actually Operation is a good name for that: https://en.wikipedia.org/wiki/Quantum_operation). And then re-introduce Instruction in the next release to refer to the tuple (Operation, qubits, clbits). This would abide by our 3-month deprecation policy I think.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also prefer Instruction for this class, and Operation for the base class currently-known-as-Instruction.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding InstructionScheduleMap, is it possible to wrap instruction to return parameters as a dictionary Dict[str, ParameterValue]? This has been really problematic since parameters in a circuit instruction is order sensitive, and thus management of parameter in the mapper is not straightforward (because parameters in schedules are not order sensitive, i.e. this is always managed by dict). It seems to be good chance to address this issue.
https://github.com/Qiskit/qiskit-terra/blob/66edc9d651f863be7fd195c5c9b40c5f610b3e03/qiskit/scheduler/lowering.py#L159

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a possible candidate to avoid the name collision around the re-use of Instruction, can we maybe re-use the InstructionSet class here (and then, at some point in the future, rename InstructionSet to Instruction)?

@mtreinish
Copy link
Member Author

So I'm thinking the best choice is a named tuple despite my earlier hesitation (which was clearly wrong). I'll have to see how things behave in py3.7 and 3.6 too (although this is the last release with 3.6 support) but I doubt it will be an issue and even if it causes a regression I think it'll be an ok tradeoff (or we can wait until after 0.19 to do this and then we'll only support 3.7, 3.8, 3.9, and 3.10).

I just ran with 3.7 it's about what I thought:

%timeit op[0]
118 ns ± 0.0906 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit op_tuple[0]
25.5 ns ± 0.0294 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit op_named_tuple[0]
24.6 ns ± 0.0334 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit op.instruction
33.1 ns ± 0.196 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit op_named_tuple.instruction
42.9 ns ± 0.177 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

@kdk
Copy link
Member

kdk commented Sep 16, 2021

I just ran with 3.7 it's about what I thought:

...

That looks good. The existing path stays about the same and the new patch is marginally slower (for py3.6 and 3.7).

I'm still a bit surprised that the tests in test.python.algorithms.test_shor.TestShor were that much slower (at ~50 additional ns per call, that'd be ~5.5 billion calls to account for the difference). Maybe a good candidate for profiling to understand where that slowdown is coming from.

Co-authored-by: Lev Bishop <18673315+levbishop@users.noreply.github.com>
@kdk kdk changed the title [WIP] Encapsulate instruction in args in Operation class [WIP] Encapsulate instruction in args in "Instruction" class Oct 26, 2021
@kdk kdk modified the milestones: 0.19, 0.20 Oct 26, 2021
@mtreinish mtreinish mentioned this pull request Nov 16, 2021
8 tasks
@jakelishman
Copy link
Member

Since I just had cause to mention this PR in another issue: this PR is going to be obsoleted by the dynamic-circuits-related work on #7624 (currently visible on the tmp/instruction-data branch on my fork), because we need to do this and extend the scope further to handle the numeric parameter split.

I'll close this PR for clarity, but this encapsulation is still planned to happen. It's just delayed a little bit because of me being off to write my thesis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: New Feature Include in the "Added" section of the changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants