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

Quantum and classical scheduling are not independent #487

Open
jvansomeren opened this issue May 5, 2023 · 0 comments
Open

Quantum and classical scheduling are not independent #487

jvansomeren opened this issue May 5, 2023 · 0 comments

Comments

@jvansomeren
Copy link
Collaborator

Unlike earlier reasoning, the quantum scheduling depends on classical dependences and, when not done at the same time but in sequence, the quantum scheduling will impose deadlines to the classical scheduling.

For example: in a conditional gate, the condition may depend on classical boolean variables that got their value through long dependence chains that at the start could be fed by measurement results. A b[x] is depending on an earlier q[x] having been measured.
That would indeed imply a dependence in the quantum program.
With the classical and the quantum stream, the quantum stream being operations with at least one qubit reference, in the timing (and scheduling) of the quantum stream the durations of the operations in the classical stream can thus not be ignored.
There can be a very long dependence chain from measurement results through the full program (by loops etc) through classical variables, what ever, to reach a condition on a gate. So at least the dependences of classical code matter to scheduling the quantum code. This also means that the classical code must be scheduled together with the quantum code.
However, this still is peculiar:

  • the quantum code has its own timing which must be fixed in the code
  • the quantum gates are translated to classical micro operations (operating on the quantum channels as devices to implement the gates) so then participate in the classical schedule

So there isn't a quantum scheduling that it is independent from classical scheduling. But from the point of view that the classical code is just supportive to the quantum operation, we could set constraints here:

  • when the classical code doesn't meet the deadline imposed by the quantum code (e.g. the condition of a gate can be computed) then the system is allowed to crash
  • at each control-flow fork or join, dynamic waits are inserted to wait for everything to be ready: this means that there are no timing assumptions after the flow change on before the flow change

The cycle assignment by the quantum scheduler can be seen as imposing deadlines to the classical scheduler. Those cycles could be (and are probably) transferred from the gates to the microcodes implementing those gates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant