Debugging quantum programs
AssigneeMicrosoft Technology Licensing, LLC
InventorsAlan Geller, Krysta Svore
Life of this patent
Estimating the term…
Abstract
This disclosure concerns tools and techniques for debugging a quantum program (e.g., a program used to configure and control a quantum computing device). Because the state space of a quantum program is so much larger and less structured than the state space for a classical program, new techniques are required to help the program developer and coder determine whether or not their program is working correctly and to identify errors if not. The disclosed technology provides tools and techniques for debugging quantum programs using a classical computer.
Claims10
A method for debugging a quantum program on a classical computer for implementation on a quantum computing device, comprising:
- inputting a quantum program written in a quantum computer language that is synthesizable into quantum-computer-executable instructions for operating a quantum computer having a sequence of gates defining quantum operations;
- receiving a command to set a breakpoint in the quantum program;
- simulating, on the classical computer, execution of the quantum program as if it were being executed by the quantum computing device;
- halting the simulating when the breakpoint in the quantum program is reached;
- implementing a command to examine a current state of one or more qubits being simulated by the classical computer;
- wherein the command is associated with a determination concerning entanglement of at least two qubits;
- and
- displaying data describing an outcome of the command on a graphical user interface.
A system, comprising:
- a quantum computing device;
- and
- a classical computing device in communication with the quantum computing device and configured to perform a method, the method comprising:
- receiving a quantum program written in a quantum computing device language that is synthesizable into quantum-computing device-executable instructions for operating a quantum computing device having a sequence of gates defining quantum operations;
- receiving a command to set a breakpoint in the quantum program;
- simulating, on the classical computer, execution of the quantum program as if it were being executed by the quantum computing device;
- halting the simulating when the breakpoint in the quantum program is reached;
- implementing a command to examine a current state of one or more qubits being simulated by the classical computer;
- wherein the command is associated with a determination concerning entanglement of at least two qubits;
- displaying data describing an outcome of the command on a graphical user interface;
- synthesizing a modified quantum program into the quantum-computing device-executable instructions for operating the quantum computing device;
- and
- configuring the quantum computing device to execute the quantum-computing device-executable instructions for the modified quantum program.
Dependencies are inferred from the claim text.