Skip to content

Cirq Performance Improvement Roadmap Item #6097

@tanujkhattar

Description

@tanujkhattar

This is a high level roadmap item that captures key areas where we need to improve performance in Cirq to support writing and running larger circuits in Cirq. The four key areas of performance improvements to enable M3 experiments are:

  • Circuit Construction: This was addressed as part of PR5332 and PR5898. Constructing a d25 surface code memory experiment circuit with 625 rounds now takes ~32ms. Further improving this number is always better but we believe this is fast enough to not be a blocking roadmap item.

  • Parameter Resolution: Running circuits for calibrations often require repeatedly executing parameterized circuits with different parameter values. cirq.resolve_parameters is slow #6091 gives a good overview of why cirq.resolve_parameters is slow. We should make the necessary changes to address the concerns raised in the issue.

  • Circuit Transformations: PR5957 adds performance benchmarks for common circuit transformation primitives in Cirq. We need to make the primitives more performant to bring down the circuit transformations runtime for the (1000 qubit, 100 moments) to run under 100ms.

  • Circuit Serializations: The Json serialization was not designed to be compact or fast. Benchmarks for json serialization, added in PR5957, show that it takes O(seconds) to serialize a (1000 qubit, 100 moment) circuit containing one and two qubit gates. We want this number to be O(milliseconds). To make this happen, see whether:

    • We can improve the performance of serialization/deserialization using the existing json serialization data model.
    • If not, design a new serialization model with better performance scaling.

Running list of blocking issues which must be addressed to mark this item as completed

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/performancegood first issueThis issue can be resolved by someone who is not familiar with the codebase. A good starting issue.good part-time projectA meaty non-urgent issue with a substantial amount of work to be done.kind/design-issueA conversation around designno QC knowledge neededWant to contribute to Cirq, but don't know quantum computing? This issue is for you.roadmapfor higher level roadmap items to capture conversations and feedback (not for project tracking)triage/acceptedA consensus emerged that this bug report, feature request, or other action should be worked on

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions