Quantum virtual machine for simulation of a quantum processing system
AssigneeRigetti & Co, LLC
InventorRobert Stanley SMITH
Life of this patent
Estimating the term…
Abstract
Quantum operations can be simulated on a classical processing system using a quantum virtual machine (QVM). The QVM receives a quantum virtual state including a virtual wavefunction of n qubits. The virtual wavefunction is represented by probability amplitudes stored in a memory location of the classical processing system. The QVM simulates a received quantum operation by determining a set of virtual partial wavefunctions, accessing probability amplitudes for the virtual partial wavefunctions, and executing the quantum operation on the sub-bitstrings. The QVM can measure the result of the quantum operation, add noise, share the virtual wavefunction, or generate efficient machine instructions when simulating the quantum operation.
Claims18
A method for determining a result of executing a quantum algorithm using a classical processing system, the method comprising:
- receiving, from a client device, the quantum algorithm for execution on the classical processing system to determine the result, the quantum algorithm comprising a quantum operation acting on at least one qubit of a virtual wavefunction comprising a plurality of qubits, each combination of qubits of the virtual wavefunction represented by a complex amplitude stored at a memory location of the classical processing system;
- determining, by the classical processing system and based on a number of quantum operations in the quantum algorithm, whether execution of the received quantum algorithm is more efficient on the classical processing system or on a quantum processing system;
- responsive to determining execution is more efficient on the classical processing system based on the number of quantum operations in the quantum algorithm:
- instantiating, by the classical processing system, a virtual quantum processing system configured to execute the quantum operation, the virtual quantum processing system configured to:
- identify a set of virtual partial wavefunctions based on the qubits the quantum operation acts on and the qubits of the virtual wavefunction, each virtual partial wavefunction comprising a proper subset of one or more complex amplitudes of the virtual wavefunction;
- access the proper subset of the one or more complex amplitudes of each virtual partial wavefunction in the set of virtual partial wavefunctions from a corresponding memory location of the classical processing system;
- execute the quantum operation on the accessed complex amplitudes for each virtual partial wavefunction in the proper subset of the set of virtual partial wavefunctions to determine resulting complex amplitudes by multiplying a matrix representing the quantum operation and a set of sub-bitstring vectors representing the virtual partial wavefunctions, wherein the resulting complex amplitudes representing a state evolution of the virtual wavefunction;
- determining, by the virtual quantum processing system on the classical processing system, the result of executing the quantum algorithm based on the stored resulting complex amplitudes;
- and
- providing, by the classical processing system, the result of executing the quantum algorithm on the classical processing system to the client device;
- and
- responsive to determining execution is more efficient on the quantum processing system based on the number of quantum operations in the quantum algorithm:
- executing the quantum algorithm on the quantum processing system;
- and
- providing, the result of executing the quantum algorithm on the quantum processing system to the client device.
A system comprising:
- one or more classical processors for a classical processing system;
- one or more qubits for a quantum processing system;
- and
- a datastore comprising a non-transitory computer-readable storage medium storing instructions that, when executed by the one or more classical processors, cause the classical processors to perform steps comprising:
- receiving, from a client device, a quantum algorithm for execution on the classical processing system to determine the result, the quantum algorithm comprising a quantum operation acting on at least one qubit of a virtual wavefunction comprising a plurality of qubits, each combination of qubits of the virtual wavefunction represented by a complex amplitude stored at a memory location of the classical processing system;
- determining, by the classical processing system and based on a number of quantum operations in the quantum algorithm, whether execution of the received quantum algorithm is more efficient on the classical processing system or on a quantum processing system;
- responsive to determining execution is more efficient on the classical processing system based on the number of quantum operations in the quantum algorithm:
- instantiating, by the classical processing system, a virtual quantum processing system configured to execute the quantum operation, the virtual quantum processing system configured to:
- identify a set of virtual partial wavefunctions based on the qubits the quantum operation acts on and the qubits of the virtual wavefunction, each virtual partial wavefunction comprising a proper subset of one or more complex amplitudes of the virtual wavefunction;
- access the proper subset of the one or more complex amplitudes of each virtual partial wavefunction in the set of virtual partial wavefunctions from a corresponding memory location of the classical processing system;
- execute the quantum operation on the accessed complex amplitudes for each virtual partial wavefunction in the proper subset of the set of virtual partial wavefunctions to determine resulting complex amplitudes by multiplying a matrix representing the quantum operation and a set of sub-bitstring vectors representing the virtual partial wavefunctions, wherein the resulting complex amplitudes representing a state evolution of the virtual wavefunction;
- determining, by the virtual quantum processing system on the classical processing system, the result of executing the quantum algorithm based on the stored resulting complex amplitudes;
- and
- providing, by the classical processing system, the result of executing the quantum algorithm on the classical processing system to the client device;
- and
- responsive to determining execution is more efficient on the quantum processing system based on the number of quantum operations in the quantum algorithm:
- executing the quantum algorithm on the quantum processing system;
- and
- providing, the result of executing the quantum algorithm on the quantum processing system to the client device.
A client device comprising:
- one or more classical processors,
- a datastore comprising a non-transitory computer-readable storage medium storing instructions for an application for a virtual quantum processing system, the application configured to execute a quantum operation using classical processors, and the instructions, when executed by the one or more classical processors, cause the classical processors to perform steps comprising:
- accessing a quantum algorithm comprising the quantum operation for execution on the classical processing system to determine the result, the quantum algorithm comprising a quantum operation acting on at least one qubit of a virtual wavefunction comprising a plurality of qubits, each combination of qubits of the virtual wavefunction represented by a complex amplitude stored at a memory location of the classical processing system;
- determining, by the classical processing system and based on a number of quantum operations in the quantum algorithm, whether execution of the received quantum algorithm is more efficient on the classical processing system or on a quantum processing system;
- responsive to determining execution is more efficient on the classical processing system based on the number of quantum operations in the quantum algorithm:
- instantiating, by the classical processing system, a virtual quantum processing system configured to execute the quantum operation, the virtual quantum processing system configured to:
- identify a set of virtual partial wavefunctions based on the qubits the quantum operation acts on and the qubits of the virtual wavefunction, each virtual partial wavefunction comprising a proper subset of one or more complex amplitudes of the virtual wavefunction;
- access the proper subset of the one or more complex amplitudes of each virtual partial wavefunction in the set of virtual partial wavefunctions from a corresponding memory location of the classical processing system;
- execute the quantum operation on the accessed complex amplitudes for each virtual partial wavefunction in the proper subset of the set of virtual partial wavefunctions to determine resulting complex amplitudes by multiplying a matrix representing the quantum operation and a set of sub-bitstring vectors representing the virtual partial wavefunctions, wherein the resulting complex amplitudes representing a state evolution of the virtual wavefunction;
- determining, by the virtual quantum processing system on the classical processing system, the result of executing the quantum algorithm based on the stored resulting complex amplitudes;
- and
- providing, by the classical processing system, the result of executing the quantum algorithm on the classical processing system to the client device;
- and
- responsive to determining execution is more efficient on the quantum processing system based on the number of quantum operations in the quantum algorithm:
- transmitting the quantum algorithm to a quantum processing system for execution;
- and
- providing, the result of the quantum algorithm executed on the quantum processing system.
Dependencies are inferred from the claim text.