List view
“Adaptive quantum circuits” (also known as _dynamic circuits_ or _feedforward circuits_) combine mid-circuit measurements in one part of a circuit with real-time classical computation and logic to control gates in another part of the circuit. Although such circuits can sometimes be expressed as equivalent sequences of static unitary gates, adaptive circuits can scale more favorably. Cirq already has support for many basic features of classical control. Some additional features have been requested by researchers working on adaptive/feedforward circuits.
No due datePerform general code/project maintenance. * Determine what vendor packages are unused and too costly to maintain. Decide if they should be deprecated or converted to independent projects. Move them out of the Cirq repository. * Improve developer tools and experience. Use ruff for fast linting and formatting. Check if we are approaching PyPI storage limits; if so, switch to a daily or weekly dev-release cadence. * Keep third_party/py/cirq and third_party/py/cirq_google modules operational and weekly-updated.
No due dateConcerns: Better control is needed over moment structure (gates to moment customization) at construction and transformation time. NISQ users perform simplifying transformations by hand rather than using Cirq circuit transformers. Currently, `cirq.merge_single_qubit_moments_to_phxz` has poor performance. Cirq also has poor scaling of transformations for larger circuits. * Identify concrete use cases where the concerns above arise. * Explore if there is a common pattern for new customizable transformers that would satisfy missing needs. * Establish what transformers need to be improved for large circuits and optimize them to meet the required throughput. * Ensure these transformers are covered by ASV benchmarks to guard against performance regressions.
No due dateASCII-based diagrams depicting quantum circuits are unwieldy and not useful for larger circuits. Cirq users want to see improvements. * Allow control over the level of detail that is rendered on ASCII diagrams (e.g., for Kraus operations). * Support slicing of circuit diagrams to selected qubits only. * Implement visualization with an ability to zoom in/out of circuit details. * Support styling by operation tags and tag regular expressions. * Support generation of publication-quality figures with QPIC.
No due dateJSON serialization is slow and the output can be very bulky. * Determine if it is worthwhile to switch to a faster third-party JSON library (helps with speed, but not size). * Explore the use of protobuf, and in particular, determine if proto size limits are sufficient for the upcoming large circuits or if a different format is needed. * If the proto format is good, implement protobuf serialization for an essential subset of JSON-serializable gates and encode the rest as proto-wrapped JSON.
No due dateCirq gets slow for circuits of ~100 qubits. Users have raised concerns about memory needs and ability to handle circuits of 500 or 1000 qubits. We still need to clarify: * What use cases are already slow at 100 qubit size? * When do we need the capability to handle circuits of 500 and 1000 qubits? * What functions and use cases need to be covered for circuits of that size?
No due dateAssess the current level of support for classical controls in Cirq, and determine what additional functionality is needed to support adaptive quantum circuits that use mid-circuit measurements to control the application of gates later in the circuit.
No due date•1/1 issues closedUpdate and improve support of other formats. * Achieve compatibility with OpenQASM3 at an extent to be determined. * Formulate contributions to QASM support as a Google 20% project. Look for other ways to get additional help.
No due date•14/15 issues closedPerform general code/project maintenance. * Determine what vendor packages are unused and too costly to maintain. Decide if they should be deprecated or converted to independent projects. Move them out of the Cirq repository. * Improve developer tools and experience. Use ruff for fast linting and formatting. Check if we are approaching PyPI storage limits; if so, switch to a daily or weekly dev-release cadence. * Keep third_party/py/cirq and third_party/py/cirq_google modules operational and weekly-updated.
No due date•78/94 issues closedConcerns: Better control is needed over moment structure (gates to moment customization) at construction and transformation time. NISQ users perform simplifying transformations by hand rather than using Cirq circuit transformers. Currently, `cirq.merge_single_qubit_moments_to_phxz` has poor performance. Cirq also has poor scaling of transformations for larger circuits. * Identify concrete use cases where the concerns above arise. * Explore if there is a common pattern for new customizable transformers that would satisfy missing needs. * Establish what transformers need to be improved for large circuits and optimize them to meet the required throughput. * Ensure these transformers are covered by ASV benchmarks to guard against performance regressions.
No due date•8/12 issues closedASCII-based diagrams depicting quantum circuits are unwieldy and not useful for larger circuits. Cirq users want to see improvements. * Allow control over the level of detail that is rendered on ASCII diagrams (e.g., for Kraus operations). * Support slicing of circuit diagrams to selected qubits only. * Implement visualization with an ability to zoom in/out of circuit details. * Support styling by operation tags and tag regular expressions. * Support generation of publication-quality figures with QPIC.
No due date•11/18 issues closedJSON serialization is slow and the output can be very bulky. * Determine if it is worthwhile to switch to a faster third-party JSON library (helps with speed, but not size). * Explore the use of protobuf, and in particular, determine if proto size limits are sufficient for the upcoming large circuits or if a different format is needed. * If the proto format is good, implement protobuf serialization for an essential subset of JSON-serializable gates and encode the rest as proto-wrapped JSON.
No due date•8/11 issues closedTo guide Cirq performance improvements, we need to benchmark existing code and monitor performance changes. A past effort in this direction used Airspeed Velocity (ASV). For several reasons including internal requirements, we are switching back to the use of `pytest-benchmark`. Tasks: * Reuse internal testing infrastructure to add Cirq benchmarks, run them regularly, and store results * Convert ASV benchmarks in Cirq to pytest-benchmarks for execution and monitoring * Collect additional benchmark test cases
No due date•3/3 issues closedCirq gets slow for circuits of ~100 qubits. Users have raised concerns about memory needs and ability to handle circuits of 500 or 1000 qubits. We still need to clarify: * What use cases are already slow at 100 qubit size? * When do we need the capability to handle circuits of 500 and 1000 qubits? * What functions and use cases need to be covered for circuits of that size?
No due date•5/10 issues closed