Skip to content

Classical Control: Subcircuits #3235

@balopat

Description

@balopat

Problem: Cirq currently supports circuits, which are made of a series of moments, each moment is made up of different operations that act on disjoint sets of qubits. These are meant to represent as closely as possible the execution of the circuit on hardware (the exception being that some gates are virtual and compiled out the circuit at runtime). In addition there is the concept of a noise model, which, at runtime, adds on extra operations to a moment. Stepping through a simulation with noise has the same iteration order as stepping through the moments, but with extra noise model operations per moment. This feature would be to add some notion of grouping or subcircuits. This is likely a necessary feature for the Flow Control issues listed above. It would also be useful for compilation in order to delineate structures that could and could not be broken (in addition to the pragmas supplied by tags). Such structures could presumably be used to replace noise models.

Is coupled to feature: Flow control (#3234), Feedforward (#3232)

Rough requirements:

  • Add an abstraction to group portions of circuits
  • Be able to deal with disjoint groups of qubits
  • Maintain the ability to write unrolled moment by moment circuits
  • Be flexible enough to supply information to executors which, may interpret the grouping as it executes the subgroup.
  • Potentially be able to specify execution time information that can change the ordering of the execution
  • Be serializable

Metadata

Metadata

Labels

area/classicalarea/subcircuitsroadmapfor higher level roadmap items to capture conversations and feedback (not for project tracking)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions