Hybrid quantum-classical computing environment
The hybrid quantum-classical computing environment addresses error correction challenges by integrating real-time engines and classical computing engines to enhance the efficiency and performance of quantum computing systems.
Patent Information
- Application Number
- JP2025508790
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-09
- Filing Date
- 2023-08-11
- Publication Date
- 2025-09-09
- Estimated Expiration
- 2043-08-11
AI Technical Summary
Existing quantum computing systems face challenges in efficiently correcting errors during program execution, leading to resource-intensive operations due to difficulties in adjusting quantum programs in real-time.
A hybrid quantum-classical computing environment with real-time engines and classical computing engines that facilitate real-time control of quantum processors, enabling error correction and efficient execution of quantum circuits through classical function calls and responses.
Enhances the efficiency and performance of quantum computing by allowing real-time adjustments and error correction, improving the execution of quantum algorithms and circuits within coherence time constraints.
Smart Images

Figure 2025529801000001_ABST
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Application No. 18 / 446,825, filed August 9, 2023, and U.S. Application No. 63 / 371,579, filed August 16, 2022, the contents of which are incorporated herein by reference in their entireties.
[0002] Various embodiments relate to hybrid quantum-classical computing environments and methods for their use. For example, various embodiments relate to the use of classical function results in controlling the execution of a quantum computer. For example, various embodiments relate to using quantum computing results in executing classical algorithms. [Background technology]
[0003] Quantum programs can be created and executed on a quantum processor. Various errors can occur during the execution of a quantum program. However, it can be difficult to make adjustments to the executing quantum program to correct the errors before they become unsolvable. As a result, instances can arise where executing a quantum program is resource-intensive. Through applied work, ingenuity, and innovation, many deficiencies in such conventional computing systems have been addressed by developing solutions constructed in accordance with embodiments of the present invention, many examples of which are described in detail herein. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] U.S. Patent Application No. 63 / 368,421 [Patent Document 2] U.S. Patent No. 11,037,776 [Patent Document 3] U.S. Patent Application No. 17 / 533,587 (U.S. Patent Application Publication No. 2022 / 0199391) [Patent Document 4] U.S. Patent Application No. 17 / 810,082 (U.S. Patent Application Publication No. 2023 / 0057368) Summary of the Invention [Means for solving the problem]
[0005] Exemplary embodiments provide a hybrid quantum-classical computing environment. In various embodiments, the hybrid quantum-classical computing environment includes one or more real-time engines configured to execute real-time executable instructions for controlling one or more components of a quantum processor to cause the quantum processor to execute a quantum circuit. Various embodiments provide hybrid quantum-classical computing systems, quantum computer processors, methods for using hybrid quantum-classical computing systems, etc. In various embodiments, the hybrid quantum-classical computing environment further includes at least one classical computing engine configured to execute one or more classical functions, algorithms, and / or calculations.
[0006] In various embodiments, the one or more real-time engines are configured to generate and provide classical function calls, receive classical call responses, and control one or more components of the quantum processor based on the classical call responses. In various embodiments, the classical computing engine is configured to receive the classical function calls that include quantum measurement information, execute the respective classical functions based at least in part on the quantum measurement information, and provide classical call responses that include results of the execution of the classical functions based at least in part on the quantum measurement information.
[0007] In various embodiments, the at least one classical computing engine is configured to execute a quantum-assisted classical algorithm, generate and provide quantum function calls, receive quantum invocation responses, and use the quantum invocation responses in executing the quantum-assisted classical algorithm. In various embodiments, the one or more real-time engines are configured to receive the quantum function calls, cause the quantum processor to execute a quantum circuit based at least in part on the quantum function calls, determine a result of the quantum circuit, and generate and provide a quantum invocation response based on the result of the quantum circuit.
[0008] According to a first aspect, a method for operating a quantum computer is provided. In an exemplary embodiment, the method is performed by one or more real-time engines of the quantum computer. The quantum computer includes a controller comprising the one or more real-time engines, the real-time engines in communication with at least one classical computing engine. The quantum computer further includes a quantum processor. The controller is configured to control operation of one or more components of the quantum processor. In an exemplary embodiment, the method includes providing quantum measurement information to the at least one classical computing engine via a classical function call; receiving a classical call response including an indication of a result determined by execution of the classical function by the classical computing engine based at least in part on the classical function call; and controlling operation of the one or more components of the quantum processor based at least in part on the result.
[0009] In an exemplary embodiment, the method further includes controlling operation of one or more components of the quantum processor to cause the capture of one or more quantum measurements, and the quantum measurement information is determined based on the one or more quantum measurements.
[0010] In an exemplary embodiment, the controller further comprises or is in communication with one or more voltage supply drivers and one or more laser drivers, and controlling the operation of one or more components of the quantum processor includes controlling the operation of the one or more voltage supply drivers and controlling the operation of the one or more laser drivers.
[0011] In an exemplary embodiment, communication between one or more real-time engines and at least one classical computing engine is asynchronous.
[0012] In an exemplary embodiment, the one or more real-time engines include two or more real-time engines, and communication between the two or more real-time engines is synchronous.
[0013] In an exemplary embodiment, the one or more real-time engines are configured to execute executable instructions compiled from quantum assembly (QASM) or quantum intermediate representation (QIR) code.
[0014] In an exemplary embodiment, the classical computing engine is part of the controller.
[0015] In an exemplary embodiment, both classical function calls and classical call responses follow the Inter-Component Communication (ICC) standard.
[0016] In an exemplary embodiment, the one or more quantum measurements are syndrome measurements and the classical function is a quantum error correction (QEC) decoder.
[0017] In an exemplary embodiment, the quantum measurement information provides an indication of the outcome of each of one or more quantum measurements taken during execution of the quantum circuit by the quantum processor.
[0018] In an exemplary embodiment, controlling the operation of one or more components of the quantum processor based at least in part on the classical call response includes at least one of: (a) selecting a quantum circuit portion to be executed; (b) adjusting one or more quantum gates; and (c) determining, based on the classical call response, the number of times the quantum circuit portion is executed.
[0019] In an exemplary embodiment, the time between providing a classical function call and receiving a classical call response is less than the coherence time of a quantum bit (qubit) of the quantum processor.
[0020] According to another aspect, a controller for a quantum computing system is provided. The controller (a) is configured to control operation of one or more components of a quantum processor, (b) includes one or more real-time engines in communication with at least one classical computing engine, and (c) includes a classical memory that stores executable instructions. The executable instructions, when executed by the one or more real-time engines, are configured to cause the controller to: provide quantum measurement information to the at least one classical computing engine via at least a classical function call; receive a classical call response that includes an indication of a result determined by execution of the classical function by the classical computing engine based at least in part on the classical function call; and control operation of the one or more components of the quantum processor based at least in part on the result.
[0021] In an exemplary embodiment, the executable instructions, when executed by the one or more real-time engines, are further configured to cause the controller to at least control operation of one or more components of the quantum processor to cause the capture of one or more quantum measurements, and the quantum measurement information is determined based on the one or more quantum measurements.
[0022] In an exemplary embodiment, the controller further comprises or is in communication with one or more voltage supply drivers and one or more laser drivers, and controlling the operation of the one or more components of the quantum processor includes controlling the operation of the one or more voltage supply drivers and controlling the operation of the one or more laser drivers.
[0023] In an exemplary embodiment, communication between one or more real-time engines and at least one classical computing engine is asynchronous.
[0024] In an exemplary embodiment, the one or more real-time engines include two or more real-time engines, and communication between the two or more real-time engines is synchronous.
[0025] In an exemplary embodiment, the one or more real-time engines are configured to execute executable instructions compiled from quantum assembly (QASM) or quantum intermediate representation (QIR) code.
[0026] In an exemplary embodiment, the classical computing engine is part of the controller.
[0027] In an exemplary embodiment, both classical function calls and classical call responses follow the Inter-Component Communication (ICC) standard.
[0028] In an exemplary embodiment, the one or more quantum measurements are syndrome measurements and the classical function is a quantum error correction (QEC) decoder.
[0029] In an exemplary embodiment, the quantum measurement information provides an indication of the outcome of each of one or more quantum measurements taken during execution of the quantum circuit by the quantum processor.
[0030] In an example embodiment, controlling the operation of one or more components of the quantum processor based at least in part on the classical call response includes at least one of (a) selecting a quantum circuit portion to be executed, (b) adjusting one or more quantum gates, and (c) determining the number of times the quantum circuit portion is executed based on the classical call response.
[0031] In an exemplary embodiment, the time between providing a classical function call and receiving a classical call response is less than the coherence time of a qubit in the quantum processor.
[0032] According to yet another aspect, a hybrid quantum-classical computing system is provided. In one exemplary embodiment, the hybrid quantum-classical computing system includes at least one classical computing engine, one or more real-time engines, and a quantum processor. The one or more real-time engines are configured to control operation of one or more components of the quantum processor. The one or more real-time engines are configured to execute executable instructions to cause execution of: providing quantum measurement information to the at least one classical computing engine via a classical function call; receiving a classical call response including an indication of a result determined by execution of the classical function by the classical computing engine based at least in part on the classical function call; and controlling operation of one or more components of the quantum processor based at least in part on the result. The at least one classical computing engine is configured to execute program code to cause execution of a classical algorithm based on the classical function call and providing the classical call response.
[0033] In an example embodiment, the executable instructions are further configured to cause the one or more real-time engines to control operation of one or more components of the quantum processor to cause the capture of one or more quantum measurements, and the quantum measurement information is determined based on the one or more quantum measurements.
[0034] In an exemplary embodiment, the controller further comprises or is in communication with one or more voltage supply drivers and one or more laser drivers, and controlling the operation of the one or more components of the quantum processor includes controlling the operation of the one or more voltage supply drivers and controlling the operation of the one or more laser drivers.
[0035] In an exemplary embodiment, communication between one or more real-time engines and at least one classical computing engine is asynchronous.
[0036] In an exemplary embodiment, the one or more real-time engines include two or more real-time engines, and communication between the two or more real-time engines is synchronous.
[0037] In an exemplary embodiment, the one or more real-time engines are configured to execute executable instructions compiled from quantum assembly (QASM) or quantum intermediate representation (QIR) code.
[0038] In an exemplary embodiment, the classical computing engine is part of the controller.
[0039] In an exemplary embodiment, both classical function calls and classical call responses follow the Inter-Component Communication (ICC) standard.
[0040] In an exemplary embodiment, the one or more quantum measurements are syndrome measurements and the classical function is a quantum error correction (QEC) decoder.
[0041] In an exemplary embodiment, the quantum measurement information provides an indication of the outcome of each of one or more quantum measurements taken during execution of the quantum circuit by the quantum processor.
[0042] In an example embodiment, controlling the operation of one or more components of the quantum processor based at least in part on the classical call response includes at least one of (a) selecting a quantum circuit portion to be executed, (b) adjusting one or more quantum gates, and (c) determining the number of times the quantum circuit portion is executed based on the classical call response.
[0043] In an exemplary embodiment, the time between providing a classical function call and receiving a classical call response is less than the coherence time of a qubit in the quantum processor.
[0044] According to yet another aspect, a method for executing a quantum-assisted classical algorithm is provided. For example, in one exemplary embodiment, the quantum-assisted classical algorithm includes one or more quantum function calls used to improve performance of a classical computing engine that executes the quantum-assisted classical algorithm. In one exemplary embodiment, the method includes: commencing execution of the quantum-assisted classical algorithm; generating and providing, by the one or more real-time engines, quantum function calls to cause a controller of the quantum computer to control operation of one or more components of the quantum processor to execute the quantum function and generate a quantum call response based on a result of executing the quantum function; receiving the quantum call response; and continuing to execute the quantum-assisted classical algorithm based at least in part on the quantum call response.
[0045] In an exemplary embodiment, the controller further comprises or is in communication with one or more voltage supply drivers and one or more laser drivers, and controlling the operation of the one or more components of the quantum processor includes controlling the operation of the one or more voltage supply drivers and controlling the operation of the one or more laser drivers.
[0046] In an exemplary embodiment, communication between one or more real-time engines and the classical computing engine is asynchronous.
[0047] According to yet another aspect, a classical computing entity is provided. In an exemplary embodiment, the classical computing entity comprises at least one processor and a non-transitory memory that stores program code. The program code, when executed by the at least one processor, is configured to cause the classical computing entity to begin executing a quantum-assisted classical algorithm, and to cause one or more real-time engines to cause a controller of the quantum computer to generate and provide quantum function calls to control operation of one or more components of the quantum processor to execute a quantum function and generate a quantum invocation response based on a result of executing the quantum function, receive the quantum invocation response, and continue executing the quantum-assisted classical algorithm based at least in part on the quantum invocation response.
[0048] In an exemplary embodiment, the controller further comprises or is in communication with one or more voltage supply drivers and one or more laser drivers, and controlling the operation of the one or more components of the quantum processor includes controlling the operation of the one or more voltage supply drivers and controlling the operation of the one or more laser drivers.
[0049] In an exemplary embodiment, communication between one or more real-time engines and the classical computing engine is asynchronous.
[0050] According to another aspect, a hybrid quantum-classical computing system is provided. In an exemplary embodiment, the system comprises a quantum computer including a controller and a quantum processor. The controller (a) is configured to control operation of one or more components of the quantum processor and (b) comprises one or more real-time engines and a first classical memory that stores executable instructions. The system further includes a classical computing engine and a second classical memory that stores program code. The program code, when executed by the classical computing engine, is configured to cause the classical computing engine to at least begin executing a quantum-assisted classical algorithm; generate and provide quantum function calls that cause the one or more real-time engines to control operation of one or more components of the quantum processor to execute a quantum function and generate a quantum invocation response based on a result of executing the quantum function; receive the quantum invocation response; and continue executing the quantum-assisted classical algorithm based at least in part on the quantum invocation response. The first executable instructions, when executed by the one or more real-time engines, are configured to cause the quantum processor to at least execute a quantum function in response to a quantum function invocation; determine a quantum invocation response based on a result of executing the quantum function; and provide the quantum invocation response such that the classical computing engine receives the quantum invocation response.
[0051] In an exemplary embodiment, the controller further comprises or is in communication with one or more voltage supply drivers and one or more laser drivers, and controlling the operation of the one or more components of the quantum processor includes controlling the operation of the one or more voltage supply drivers and controlling the operation of the one or more laser drivers.
[0052] In an exemplary embodiment, communication between one or more real-time engines and the classical computing engine is asynchronous.
[0053] In an exemplary embodiment, the classical computing engine is part of the controller.
[0054] In an exemplary embodiment, the classical computing engine is part of a classical computing entity that communicates with the controller.
[0055] Having thus described the invention in general terms, reference is now made to the accompanying drawings, which are not necessarily drawn to scale. [Brief explanation of the drawings]
[0056] [Figure 1] FIG. 1 is a schematic diagram illustrating an exemplary hybrid quantum-classical computing system in accordance with various embodiments. [Figure 2] FIG. 1 is a schematic diagram of an exemplary controller for a quantum computer, according to various embodiments. [Figure 3] FIG. 1 is a schematic diagram of an exemplary processing device of a controller of a quantum computer, according to various embodiments. [Figure 4] FIG. 1 is a dataflow diagram providing respective executable instructions to various computing engines of a hybrid quantum-classical computing system, according to various embodiments. [Figure 5] FIG. 1 illustrates a data flow diagram for classical function calls and classical call responses, according to various embodiments. [Figure 6A] 1 is a flowchart illustrating processes, procedures, and / or operations performed by one or more real-time engines for executing quantum circuits, according to various embodiments. [Figure 6B]1 is a flowchart illustrating processes, procedures, and / or actions performed by at least one classical computing engine to respond to classical function calls, according to various embodiments. [Figure 7A] 1 is a flowchart illustrating processes, procedures, and / or operations performed by at least one classical computing engine to implement and / or execute quantum-assisted classical algorithms, according to various embodiments. [Figure 7B] 1 is a flowchart illustrating processes, procedures, and / or actions performed by one or more real-time engines to respond to quantum function calls, according to various embodiments. [Figure 8] FIG. 1 is a schematic diagram of an example computing entity of a quantum computer system that may be used in accordance with certain example embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0057] The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments of the invention are shown. Indeed, the present invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. The term "or" (also written " / ") is used herein in both an alternative and connective sense, unless otherwise specified. The terms "illustrative" and "exemplary" are used to be examples that do not indicate a level of quality. The terms "generally" and "about" refer to being within engineering and / or manufacturing limits / tolerances and / or user measurement capabilities, unless otherwise specified. Like numbers refer to like elements throughout.
[0058] I. Overview Exemplary embodiments provide a hybrid quantum-classical computing environment. In various embodiments, the hybrid quantum-classical computing environment includes one or more real-time engines configured to execute real-time executable instructions for controlling one or more components of a quantum processor to cause the quantum processor to execute a quantum circuit. Various embodiments provide hybrid quantum-classical computing systems, quantum computer processors, methods for using hybrid quantum-classical computing systems, etc. In various embodiments, the hybrid quantum-classical computing environment further includes at least one classical computing engine configured to execute one or more classical functions, algorithms, and / or calculations.
[0059] In various embodiments, the one or more real-time engines are configured to generate and provide classical function calls, receive classical call responses, and control one or more components of the quantum processor based on the classical call responses. In various embodiments, the classical computing engine is configured to receive the classical function calls that include quantum measurement information, execute the respective classical functions based at least in part on the quantum measurement information, and provide classical call responses that include results of the execution of the classical functions based at least in part on the quantum measurement information.
[0060] In various embodiments, the at least one classical computing engine is configured to execute a quantum-assisted classical algorithm, generate and provide quantum function calls, receive quantum invocation responses, and use the quantum invocation responses in executing the quantum-assisted classical algorithm. In various embodiments, the one or more real-time engines are configured to receive the quantum function calls, cause the quantum processor to execute a quantum circuit based at least in part on the quantum function calls, determine a result of the quantum circuit, and generate and provide a quantum invocation response based on the result of the quantum circuit.
[0061] In various embodiments, a hybrid quantum-classical computing environment is an environment in which a quantum computer's controller (and / or one or more real-time engines of the controller) is configured and / or programmed to invoke functions, applications, programs, modules, etc. running on a classical computer (e.g., on a classical processor or classical computing engine of the controller or another classical / semiconductor-based computing entity). For example, the quantum computer's controller may use a low-level embedded programming language to permit and / or enable classical callouts (e.g., to functions, applications, programs, modules, etc. running on a classical computing engine) within a timeframe that enables the quantum computer to perform quantum operations within the coherence time of the quantum states of the quantum computer's qubits.
[0062] In various embodiments, the hybrid quantum-classical computing environment allows the controller to invoke functions, applications, programs, modules, etc. running on the classical computing engine and pass information about measurements taken by the quantum processor (e.g., syndrome measurements (see U.S. Application No. 63 / 368,421, filed July 14, 2022, the contents of which are incorporated herein by reference in their entirety), qubit measurements / readings, etc.). For example, during execution of a quantum algorithm or circuit, the controller causes quantum measurements to be captured. A real-time engine of the controller invokes functions, applications, programs, modules, etc. running on the classical computing engine (also referred to herein as “classical functions”) and passes information about the quantum measurements to be provided to the classical functions. Upon receiving the classical function call and the information about the quantum measurements, the classical functions process the information about the quantum measurements taken by the quantum computer. The classical functions then generate and provide a classical call response. In various embodiments, the classical call response includes an integer, a float, a string, etc. The real-time engine of the controller receives the classical call response and processes the classical call response. In various embodiments, the real-time engine of the controller may use the classical call response (e.g., its contents) to adjust and / or modify one or more subsequent actions performed by the quantum computer.
[0063] In various embodiments, the hybrid quantum-classical computing environment enables improved quantum circuit compilation such that quantum algorithms and / or circuits can be executed in a relatively small amount of time.
[0064] In various embodiments, the classical function is a real-time quantum error decoder. For example, a classical function call may pass one or more quantum measurements that are syndrome measurements to the classical function. The one or more syndrome measurements correspond to and / or represent one or more interactions (e.g., between two or more qubits, between one or more qubits and various components / electrical and / or magnetic fields / manipulation signals of a quantum computer, etc.) that occurred as part of the execution of a quantum circuit and / or algorithm. The classical function may then determine and / or identify one or more quantum errors that may be present or absent in the interaction and provide a classical call response to the real-time engine of the controller that includes an appropriate indication of the quantum errors that are present or absent in the interaction. The controller may then perform one or more quantum error corrections (e.g., execute additional gates, correction gates, etc.) based on the classical call response.
[0065] In various embodiments, the classical function is a convergence monitoring function. For example, the classical function may determine when the results of the quantum algorithm and / or circuit have converged to an appropriate level of convergence or satisfied one or more convergence criteria. For example, the controller may determine that execution of the quantum circuit and / or algorithm by the quantum computer is complete in response to an indication of whether the results of the quantum algorithm and / or circuit have converged to an appropriate level of convergence or satisfied one or more convergence criteria indicated by a classical call response.
[0066] For example, in an exemplary embodiment, the classical function is configured to return a classical call response that includes a Boolean (e.g., true / false). For example, the Boolean, in an exemplary embodiment, indicates whether the result of the quantum algorithm and / or circuit has converged to an appropriate level of convergence or satisfied one or more convergence criteria. For example, the quantum algorithm and / or circuit is partitioned into portions and / or shots (e.g., where each time the circuit is executed is called a shot). After execution of each portion and / or shot, quantum measurements (or corresponding information) taken by the quantum computer as part of executing the respective portion or shot are provided to the classical function (e.g., via a classical function call). The classical function tracks and / or monitors the information across portions or shots. For example, upon receiving each classical function call that provides information about quantum measurements taken by the quantum computer as part of the respective portion or shot, the classical function may perform a routine or check to determine whether the result of the quantum algorithm and / or circuit has converged to an appropriate level of convergence or satisfied one or more convergence criteria (or other stopping criteria). The classical computing engine executes the classical function and then returns a classical call response containing the appropriate and / or determined Boolean. The real-time engine of the controller receives the classical call response, processes the Boolean therein, and proceeds to control the various components of the quantum computer accordingly. For example, the real-time engine of the controller causes the quantum processor to continue executing the quantum algorithm or circuit (or an iterated subpart thereof) when the Boolean indicates that the results of the quantum algorithm and / or circuit (or an iterated subpart thereof) have not converged to an appropriate convergence level or have not satisfied one or more convergence criteria (or other stopping criteria).In another example, the real-time engine of the controller causes the quantum processor to cease or stop executing the quantum algorithm and / or circuit (or subparts thereof being iterated) when the Boolean indicates that the results of the quantum algorithm and / or circuit (or subparts thereof being iterated) have converged to an appropriate convergence level or have satisfied one or more convergence criteria (or other stopping criteria).
[0067] In various embodiments, the quantum algorithm and / or circuit is a variational quantum algorithm (VQA). One example of a VQA is a variational quantum eigensolver (VQE), although various embodiments may relate to and / or use various other VQAs. In various embodiments, the controller is configured to determine parameters to be used during real-time execution of the VQA in response to quantum measurements taken during execution of a previous portion of the quantum algorithm and / or circuit. For example, classical function calls are used to pass the quantum measurements and / or corresponding information to a classical computing engine. The classical computing engine executes a classical function based on the classical function call and then determines and provides a classical call response. The real-time engine of the controller receives the classical call response and, based on the classical call response, updates and / or sets parameters to be subsequently used in executing the upcoming portion of the quantum algorithm and / or circuit.
[0068] In various embodiments, the real-time engine of the controller is configured and / or programmed to update, modify, and / or set one or more parameters of a gate to be executed on one or more qubits based on the classical call response (and / or its contents). For example, the real-time engine controls one or more laser drivers, one or more active optical components, and / or one or more voltage supply drivers to execute the gate with a particular set of parameters. For example, in one exemplary embodiment, the quantum algorithm and / or circuit is a VQE that uses arbitrary-angle gates. The classical call response may provide values used to update, modify, and / or set the angle of one or more arbitrary-angle gates during execution of the quantum algorithm and / or circuit for the next execution (e.g., next shot) of the quantum algorithm and / or circuit and / or for another quantum algorithm and / or circuit. For example, the angle of an arbitrary gate may correspond to the intensity or length of time that one or more laser beams are directed to a target location where one or more qubits on which the gate is executing are located. For example, the angle of an arbitrary angle gate may be set, modified, and / or updated during execution of a quantum algorithm and / or circuit based on mid-circuit quantum measurements and use of a quantum-classical computing environment. For example, a real-time engine may modify, set, and / or update the manner in which one or more laser drivers, active optical elements, and / or voltage source drivers are operating to control the execution of the arbitrary angle gate.
[0069] In one exemplary embodiment, the classical call response provides the angle to be used within an arbitrary angle gate. In one exemplary embodiment, the classical call response provides an index value that indexes the angle to be used by the gate. For example, the gate may be configured to be executed based on a function result b that takes the classical call response (or its content) as an input for an angle a, such that when a = v1 or within the range v0 ≤ a < v1, the gate is executed for a first angle (e.g., to perform a qubit rotation of the first angle), and when a = v2 or within the range v1 ≤ a < v2, the gate is executed for a second angle (e.g., to perform a qubit rotation of the second angle), where the first angle and the second angle are different from each other.
[0070] In another example, parameterized single and / or multiple (e.g., two) qubit gates are implemented by expanding with respect to the R ZZ (θ) gate into ZZ Max R Z (θ)ZZ Max and general single qubit gates are implemented by expanding the gate with respect to each Euler decomposition in which a Hadamard gate is inserted so as to give each Euler decomposition with respect to R Z (θ) (only). A binary expansion and / or representation of the angle θ, which is a set of integers / binary numbers, is determined. Each R Z (θ) gate is decomposed into a set of R Z (θ), one for each digit of the binary expansion of the angle θ, and is adjusted / selected based on the binary number of the angle θ. The angle θ and / or the binary representation of the angle θ is received as part of the classical call response by the real-time engine of the controller.
[0071] In an exemplary embodiment, the real-time engine of the controller provides a corresponding classical function call to the classical function and provides the quantum measurement information to the classical function via the classical function call. The classical function may then update a parameter file (e.g., a JSON file, etc.) referenced by the real-time engine of the controller during execution of one or more functions of the quantum computer. For example, the parameter file may provide parameters used by the real-time engine of the controller to control one or more voltage sources, manipulation sources, etc. of the quantum computer to cause execution of one or more functions of the quantum computer (e.g., qubit read, qubit gating, qubit transport, cooling, etc.).
[0072] In various embodiments, the hybrid quantum-classical computing environment is used to determine one or more parameters of a quantum algorithm and / or circuit based on quantum measurements taken during execution of the quantum algorithm and / or circuit. For example, a classical function may receive information about quantum measurements taken by the quantum computer during execution of the quantum algorithm and / or circuit (e.g., via a classical function call) and, based thereon, determine the number of iterations to execute a particular subpart of the quantum algorithm and / or circuit. The classical function may then provide a classical call response indicating the number of iterations such that a real-time engine of the controller receives the classical call response, and, based thereon, cause the quantum processor to execute the indicated number of iterations of the particular subpart of the quantum algorithm and / or circuit.
[0073] In various embodiments, a hybrid quantum-classical computing environment is used to provide improvements and / or speed up classical computations. For example, a classical computing engine may be performing classical computations and generate and provide quantum function calls. A real-time engine of the quantum computer's controller receives the quantum function calls, triggers the execution of a quantum circuit, captures quantum measurements based on the execution of the quantum circuit, and provides the quantum measurements as part of a quantum invocation response. The classical computing engine receives the quantum invocation response and continues to perform classical computations based on the quantum invocation response. For example, quantum computers are expected to be faster and / or more efficient (compared to classical / semiconductor-based computers) in handling certain types of problems or computations. If the classical computation involves a computation that would be faster or more efficient to perform on a quantum computer, the classical computing engine may generate and provide quantum function calls to take advantage of the performance improvements provided by the quantum computer. In another example, if the classical computation involves a computation for which a quantum computer would provide more accurate and / or precise results, the classical computing engine may generate and provide quantum function calls to take advantage of the performance improvements provided by the quantum computer.
[0074] The controller of the quantum computer includes one or more real-time engines configured to execute compiled executable instructions that cause real-time control of various components of the quantum processor. For example, execution of the executable instructions by the one or more real-time engines causes the one or more real-time engines to control the operation of one or more laser drivers, one or more voltage supply drivers, one or more active optical components (e.g., modulators, etc.), magnetic field sources, vacuum drivers, cooling system drivers, etc., to cause the quantum processor to perform one or more operations on one or more quantum bits and / or control the environment experienced by one or more quantum bits. To ensure that the execution of the various operations performed by the lasers and voltage supplies is, for example, properly timed, the one or more real-time engines are all time-synchronized and communicate with each other in a synchronous manner. For example, an operation may include projecting two laser beams at a target location at the same time. Thus, the operations of the two laser drivers must be performed (by the one or more real-time engines) in a time-synchronized manner.
[0075] However, given the speed and time synchronization scheme required for a real-time engine to operate, the real-time engine is not configured for dynamic memory allocation or for running more complex algorithms that may take more than a certain amount of time to execute. For example, a real-time engine may not be able to run a QEC decoder and / or other classical algorithms that may enable a quantum computer to operate more efficiently, correct / mitigate errors, etc. Thus, technical problems exist in the field of quantum computer controllers.
[0076] Furthermore, some algorithms or sub-algorithms are not efficiently performed by classical computers. For example, prime factorization of large numbers is a challenge for classical computers. However, some of these problems that are difficult for classical computers should be efficiently performed by quantum computers. Therefore, a technical challenge exists regarding how to harness the power of quantum computing to improve the performance of classical computers.
[0077] Various embodiments provide technical solutions to these technical problems. For example, various embodiments enable a real-time engine of a quantum computer controller to communicate with a classical computing engine such that function calls and responses can be communicated back and forth. For example, executable instructions executed by the real-time engine may cause the real-time engine to generate a classical function call including quantum measurement information and to provide the classical function call to the classical computing engine. The classical computing engine may execute a classical function corresponding to the classical function call based at least in part on the quantum measurement information and provide a classical call response including a result of the execution of the classical function. The real-time engine may receive the classical call response and control the quantum processor based at least in part on the result of the execution of the classical function indicated by the classical call response. In various embodiments, the classical computing engine may be executing program code, etc., that may cause the classical computing engine to generate and provide the quantum function call. The real-time engine of the controller receives the quantum function call and, based thereon, causes the quantum processor to execute a quantum algorithm and / or circuit. The controller determines quantum measurement information based on execution of the quantum algorithm and / or circuit and provides a quantum call response that includes the quantum measurement information. The classical computing engine receives the quantum call response and continues execution of program code, etc., based at least in part on the quantum measurement information included in the quantum call response. Thus, various embodiments improve the functionality of a quantum computer and / or a classical computer.
[0078] II. Exemplary Quantum Computers Various embodiments provide a hybrid quantum-classical computing environment. A schematic diagram of an exemplary hybrid quantum-classical computing environment is shown in FIG.
[0079] In various embodiments, hybrid quantum-classical computing environment 100 comprises classical computing entity 10 and quantum computer 110. In various embodiments, quantum computer 110 comprises controller 30 and quantum processor 115. In various embodiments, quantum processor 115 comprises a quantum object confinement device 70 enclosed in a cryostat and / or vacuum chamber 40, one or more voltage sources 50, one or more manipulation sources 60, one or more magnetic field generators, one or more photodetectors, one or more sensors, etc.
[0080] The illustrated exemplary hybrid quantum-classical computing environment 100 includes, according to certain exemplary embodiments, a quantum object confinement device 70 (e.g., an ion trap, a surface trap, a Paul trap, etc.). For example, the quantum object confinement device 70 is configured to confine one or more quantum objects. For example, the quantum objects may be neutral or ionic atoms, neutral, ionic, or multipolar molecules, quantum dots, or other quantum objects having confinable and manipulable quantum states. In various embodiments, the quantum objects are used as qubits in the quantum processor 115. Some non-limiting exemplary quantum object confinement devices (also referred to herein as atomic object confinement devices and / or confinement devices) are described by U.S. Patent No. 11,037,776, issued June 15, 2021; U.S. Application No. 17 / 533,587, filed November 23, 2021; and U.S. Application No. 17 / 810,082, filed June 30, 2022, the contents of which are incorporated herein by reference in their entireties.
[0081] In certain exemplary embodiments, the one or more manipulation sources 60 comprise one or more lasers (e.g., optical lasers, microwave sources, etc.). In various embodiments, the one or more manipulation sources 60 are configured to manipulate and / or cause controlled quantum state evolution of one or more quantum objects confined by the quantum object confinement device 70. For example, the one or more manipulation sources 60 comprise respective manipulation sources 60 configured to generate and provide, via respective beam path systems 66 (e.g., 66A, 66B, 66C), respective manipulation signals to respective target locations defined, at least in part, by the quantum object confinement device 70. In certain exemplary embodiments, at least some of the manipulation signals are laser beams, laser pulse trains, etc. For example, in exemplary embodiments in which the one or more manipulation sources 60 comprise one or more lasers, the lasers may provide one or more laser beams via respective beam path systems 66 to the confinement device within the cryostat and / or vacuum chamber 40. The laser beams may be used to perform various operations (e.g., parallel operations), such as defining one or more quantum gates on one or more qubits and / or quantum objects, synchronously cooling one or more quantum objects, reading qubits and / or determining the quantum state of a quantum object, initializing a quantum object into qubit space, etc. In various embodiments, manipulation sources 60 are controlled by respective driver controller elements 215 of controller 30 (see FIG. 2 ).
[0082] In various embodiments, quantum computer 110 includes one or more voltage sources 50. For example, voltage sources 50 may include multiple direct current (DC) voltage drivers and / or voltage sources and / or at least one radio frequency (RF) driver and / or voltage source. Voltage sources 50 may, in certain exemplary embodiments, be electrically coupled to corresponding potential-generating elements (e.g., electrodes) of quantum object confinement device 70. For example, voltage sources 50 are configured to provide an oscillating (RF) voltage signal to an RF rail electrode of quantum object confinement device 70. For example, voltage sources 50 are configured to provide a control voltage signal to a control electrode of quantum object confinement device 70. In various embodiments, voltage sources 50 are controlled by respective driver controller elements 215 of controller 30.
[0083] In various embodiments, quantum computer 110 includes one or more magnetic field generators. For example, the magnetic field generators may be internal magnetic field generators disposed within cryogenic and / or vacuum chamber 40 and / or external magnetic field generators disposed outside cryogenic and / or vacuum chamber 40. In various embodiments, the magnetic field generators are permanent magnets, Helmholtz coils, electromagnets, etc. In various embodiments, the magnetic field generators are configured to generate magnetic fields in one or more regions of quantum object confinement device 70 having a particular magnitude and a particular field direction in one or more regions of quantum object confinement device 70. In an exemplary embodiment, the particular magnitude is in the range of 2 to 5 Gauss. In an exemplary embodiment, the operation of the one or more magnetic field generators is controlled by controller 30 (e.g., via respective driver controller elements 215). In an exemplary embodiment, at least one of the magnetic field generators is a permanent magnet and is therefore not controlled by controller 30.
[0084] In various embodiments, classical computing entity 10 is configured to allow a user to provide input to quantum computer 110 (e.g., via a user interface of computing entity 10), receive, view, etc. output from quantum computer 110. Computing entity 10 may be in communication with controller 30 of quantum computer 110 via one or more wired or wireless networks 20 and / or via direct wired and / or wireless communication. In an exemplary embodiment, computing entity 10 may translate, configure, format, etc., information / data, quantum circuits, quantum computing algorithms, etc. into a computing language, executable instructions, command set, etc. that controller 30 can understand and / or implement. In various embodiments, classical computing entity 10 is configured to allow a user to program quantum assembly (QASM) and / or quantum intermediate representation (QIR) code that is compiled to generate executable instructions executed by a real-time engine of controller 30. In various embodiments, classical computing entity 10 is configured to allow a user to program classical algorithms that are compiled into web assembly (WASM) executable program code for execution by a classical computing engine, for example. In an exemplary embodiment, the classical computing engine is part of processing device 205 of controller 30. In an exemplary embodiment, the classical computing engine is part of processing device 808 of classical computing entity 10 (see FIG. 8).
[0085] In various embodiments, compiling classical algorithms into WASM executable program code enables sandboxed implementation of classical algorithms. For example, users are prevented from causing the execution of program code that adversely affects the hardware or performs any kind of attack against the security of the hybrid quantum-classical computing environment 100. Furthermore, compiling classical algorithms into WASM executable program code provides a portable program representation format for program code that is independent of a specific processor or central processing unit (CPU). This allows users to program in different languages and not have to worry about what kind of hardware will run the program code. Moreover, WASM is low-level and structured for high-performance execution, thus providing program code in an easy-to-transmit and execute format with good performance for time-sensitive applications such as quantum error correction (QEC).
[0086] In various embodiments, controller 30 is configured to control voltage source 50, a cryogenic system and / or vacuum system that controls the temperature and pressure within cryostat and / or vacuum chamber 40, manipulation source 60, magnetic field generators, and / or other systems that control various environmental conditions (e.g., temperature, pressure, etc.) within cryostat and / or vacuum chamber 40, and / or is configured to manipulate and / or cause the controlled evolution of the quantum states of one or more quantum objects confined by quantum object confinement device 70. For example, controller 30 may cause the controlled evolution of the quantum states of one or more quantum objects within quantum object confinement device 70 to execute quantum circuits and / or algorithms.
[0087] III. Exemplary Controller In various embodiments, quantum computer 110 comprises a controller 30 configured to control various elements and / or components of quantum computer 110. For example, controller 30 comprises one or more processing devices 205 configured to execute executable instructions to control the operation of one or more driver controller elements 215. One or more driver controller elements 215 are configured to control the operation of respective voltage sources 50, manipulation sources 60, cryogenic and / or vacuum system components, magnetic field generators, etc. For example, controller 30 may be configured to control voltage sources 50, cryogenic and / or vacuum systems that control the temperature and pressure within cryostat and / or vacuum chamber 40, manipulation sources 60, magnetic field generators, and / or other systems that control environmental conditions (e.g., temperature, humidity, pressure, etc.) within cryostat and / or vacuum chamber 40, and / or to manipulate and / or cause the controlled evolution of the quantum states of one or more quantum objects confined by quantum object confinement device 70.
[0088] 2, in various embodiments, controller 30 may comprise various controller elements including processing elements and / or devices 205, memory 210, driver controller elements 215, communication interfaces 220, analog-to-digital converter elements 225, etc. For example, processing elements and / or devices 205 comprise one or more real-time engines and / or classical computing engines. For example, processing elements and / or devices 205 may comprise programmable logic devices (CPLDs), microprocessors, coprocessing entities, application-specific instruction set processors (ASIPs), integrated circuits, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), programmable logic arrays (PLAs), hardware accelerators, other processing devices and / or circuit configurations, etc. For example, real-time engine (RTE) 310 and / or classical computing engine (CCE) 320 (see FIG. 3) may be and / or comprise CPLDs, microprocessors, compression entities, ASICs, FPGAs, PLAs, and / or other processing devices and / or circuit configurations. The term circuitry may refer to an entirely hardware embodiment or a combination of hardware and a computer program product. In an exemplary embodiment, the processing elements and / or devices 205 of the controller 30 include and / or communicate with a clock. For example, a real-time engine may be time-synchronized based on the clock.
[0089] In various embodiments, processing element and / or device 205 is configured to execute executable instructions to cause driver controller element 215 to control operation of respective drivers to cause quantum processor 115 to execute the quantum circuit. In various embodiments, execution of the quantum circuit includes generating one or more classical function calls and receiving corresponding classical call responses, and / or is performed based on receiving the quantum function calls.
[0090] For example, the memory 210 may comprise non-transitory memory, such as volatile and / or non-volatile storage, such as one or more of a hard disk, ROM, PROM, EPROM, EEPROM, flash memory, MMC, SD memory card, memory stick, CBRAM, PRAM, FeRAM, RRAM, SONOS, racetrack memory, RAM, DRAM, SRAM, FPMDRAM, EDODRAM, SDRAM, DDRSDRAM, DDR2SDRAM, DDR3SDRAM, RDRAM, RIMM, DIMM, SIMM, VRAM, cache memory, register memory, and the like. In various embodiments, memory 210 may store qubit records corresponding to qubits of the quantum computer (e.g., in a qubit record data store, qubit record database, qubit record table, etc.), one or more functional representations of manipulation signal power, frequency, duration, and / or combinations thereof, as a function of the respective manipulation signals, calibration tables, executable cues, computer program code (e.g., in one or more computer languages, specialized controller languages, etc.), one or more libraries, input signals (e.g., input signal parameter values) provided to modulators configured to adjust one or more waveform series to form control voltage signals for controlling transport of atomic objects along one-dimensional trapping regions and through junctions connecting the one-dimensional trapping regions and associated metadata, etc. In an exemplary embodiment, the qubit record corresponding to each qubit tracks the phase of the respective qubit, any AC Stark shifts imparted thereto, the results of any software gates on the phase of the qubit, etc.In an exemplary embodiment, execution of at least a portion of the computer program code stored in memory 210 (e.g., by processing element and / or device 205) causes controller 30 to perform one or more steps, operations, processes, procedures, etc. described herein for tracking the phase, location, etc. of quantum objects and / or multi-quantum object crystals confined by confinement apparatus 70, and for causing adjustments to the phase of one or more manipulation sources 60 and / or signals generated thereby.
[0091] In various embodiments, driver controller element 215 may include one or more driver and / or controller elements, each configured to control one or more drivers. In various embodiments, driver controller element 215 may comprise a driver and / or driver controller. For example, a driver controller may be configured to operate one or more corresponding drivers according to executable instructions, commands, etc., scheduled and executed by controller 30 (e.g., by processing element and / or device 205). In various embodiments, driver controller element 215 may enable controller 30 to operate manipulation source 60, voltage source 50, magnetic field generators, etc. In various embodiments, a driver may be a laser driver, a vacuum component driver, a driver for controlling the flow of current and / or voltage applied to control electrodes, RF rail electrodes, RF bus electrodes, and / or other electrodes used to maintain and / or control magnetic fields in various regions of quantum object confinement device 70, maintain and / or control trapping potentials of quantum object confinement device 70, and / or cause transport of one or more quantum objects, a cryogenic and / or vacuum system component driver, etc. For example, the driver may control and / or comprise a DC and / or RF voltage driver and / or voltage source 50 that provides voltage and / or electrical signals (e.g., oscillating voltage signals and / or control voltage signals) to potential generating elements (e.g., electrodes) of the containment device 70.
[0092] In various embodiments, controller 30 comprises means for communicating and / or receiving signals from one or more optical receiver components, such as photodetectors, cameras, MEMs cameras, CCD cameras, photodiodes, photomultiplier tubes, sensors, etc., of an optics collection system configured to capture, detect, measure, etc., optical signals generated by quantum objects confined by quantum object confinement device 70. For example, controller 30 may comprise one or more analog-to-digital converter elements 225 configured to receive signals from one or more optical receiver components, calibration sensors, etc.
[0093] In various embodiments, controller 30 may comprise a communications interface 220 for interfacing and / or communicating with computing entity 10. For example, controller 30 may comprise a communications interface 220 for receiving executable instructions, command sets, etc. from computing entity 10, and for providing computing entity 10 with outputs received from quantum computer 110 (e.g., from an optical collection system) and / or results of processing the outputs. In various embodiments, computing entity 10 and controller 30 may communicate via a direct wired and / or wireless connection and / or one or more wired and / or wireless networks 20.
[0094] 3 , the processing elements and / or devices 205 of the controller 30 comprise one or more real-time engines (RTEs) 310 (e.g., 310A, 310B, 310C, 310D). In various embodiments, the processing elements and / or devices 205 of the controller 30 comprise one or more classical computing engines (CCEs) 320. In various embodiments, the RTEs 310 communicate with each other in a time-synchronous manner, and the RTEs communicate with the CCEs 320 in an asynchronous manner. For example, the RTEs 310 and CCEs 320 communicate with each other via a bus network 315 in an exemplary embodiment. In various embodiments, each RTE 310 and CCE 320 comprises and / or is associated with a respective memory 210. For example, in various embodiments, each RTE 310 and / or CCE 320 is a respective processing card and / or printed circuit board comprising (semiconductor-based) processing and memory components.
[0095] In various embodiments, at least one of the RTEs is configured to perform real-time compilation (e.g., by a hardware-specific compiler) of device function library (DFL) program code into real-time (RT) binary and / or machine-level executable instructions. One or more RTEs execute the RT binary and / or machine-level executable instructions in a time-synchronized manner to cause driver controller element 215 to control the operation of each driver. For example, the operation of each driver is controlled to cause voltage source 50, manipulation source 60, and / or other quantum processor 115 components to perform various operations of quantum processor 115 (e.g., performing a single qubit gate, performing a two-qubit gate, initializing a quantum object into qubit space, performing qubit read and / or measurement operations, transporting qubits between target locations defined by confinement device 70, etc.).
[0096] IV. Example Data Flow 4 provides a data flow diagram illustrating the process of generation through execution of executable instructions executed by RTE 310 and program code executed by CCE 320. In various embodiments, some steps of the generation of executable instructions and program code are performed during a preparation time period 410, which occurs prior to execution of a quantum algorithm or circuit by quantum computer 110, or prior to execution of a classical algorithm by a CCE (e.g., processing element and / or device 808) of classical computing entity 10 and / or CCE 320 of controller 30. In various embodiments, the executable instructions are compiled into RT binaries and / or machine-level executable instructions in real time and / or during execution of a quantum algorithm and / or circuit by quantum computer 110.
[0097] For example, a user may interact with a user interface of classical computing entity 10 to prepare, write, or program a quantum circuit 412 written in a quantum programming language. For example, the quantum circuit may be prepared by a user in QASM, QIR, or another quantum programming language. In various embodiments, the quantum programming language is hardware independent. For example, a quantum circuit 412 written in a quantum programming language may be compiled to run on various types of quantum computers (e.g., quantum charge-coupled device (QCCD)-based quantum computers, superconducting quantum computers, photon quantum computers, neutral or Rydberg atom quantum computers, etc.).
[0098] In various embodiments, a user may interact with a user interface of classical computing entity 10 to prepare, write, or program classical computing algorithm 414. In various embodiments, classical computing algorithm may be written in various programming languages (e.g., C or variants thereof, Python, Rust, Perl, Java Script, etc.). In various embodiments, classical computing algorithm 414 is prepared, written, or programmed to cause CCE 320 to perform a desired classical function or algorithm.
[0099] In various embodiments, the quantum circuit 412 and classical computation algorithm 414 written in a quantum programming language are prepared, written, and / or programmed to include respective function calls. For example, a quantum circuit may be prepared, written, and / or programmed to include classical function calls and / or quantum call responses. In another example, a classical computation algorithm may be prepared, written, and / or programmed to include quantum function calls and / or classical call responses. In various embodiments, the classical function calls, classical call responses, quantum function calls, and / or quantum call responses are programmed according to the Inter-Component Communication (ICC) standard. For example, the classical function calls, classical call responses, quantum function calls, and / or quantum call responses are programmed using ICC semantics. In various embodiments, wire packet encoding is used for the classical function calls, classical call responses, quantum function calls, and / or quantum call response semantics. In one exemplary embodiment, raw Layer 2 Ethernet with a custom payload is layered on top of classical function call, classical call-response, quantum function call, and / or quantum call-response semantics. In various embodiments, the wire packet encoding used is configured to reduce and / or minimize communication stack processing latency. For example, the custom payload layered on top of raw Layer 2 Ethernet semantics is configured to reduce and / or minimize communication stack processing latency. In various embodiments, the quantum circuit and the classical computation algorithm are prepared, written, and / or programmed to use standardized calling conventions such that the quantum circuit and the classical computation algorithm are configured to communicate with each other during their execution by RTE 310 and CCE 320.
[0100] In various embodiments, the classical computing algorithm is compiled using a suitable classical language compiler 416. For example, the classical language compiler 416 is configured and / or programmed to compile a classical computing algorithm prepared, written, and / or programmed in a user-selected classical programming language into a compiled classical computing algorithm 418 in the format of Web Assembly (WASM) program code. For example, the compiled classical computing algorithm 418 is in the form of an executable file that can be executed by the CCE 320. The compiled classical computing algorithm 418 is provided by and stored in memory accessible to the CCE 320. For example, when the CCE is part of a processing element and / or device 808 of the classical computing entity 10, the compiled classical computing algorithm 418 is stored in memory 822, 824 of the classical computing entity 10. When the CCE 320 is part of the controller 30, the compiled classical computing algorithm 418 is provided by the classical computing entity 10 (e.g., transmitted over one or more wired and / or wireless networks 20). The controller 30 receives the compiled classical computation algorithm 418 and stores the compiled classical computation algorithm 418 in memory 210 associated with the CCE 320. The CCE 320 executes the program code (e.g., WASM program code) of the compiled classical computation algorithm 418 in response to a user interacting with a user interface of the classical computing entity 10 to cause its execution, or in response to the CCE receiving a classical function call (e.g., during execution of a quantum circuit by a quantum computer).
[0101] In various embodiments, quantum circuit 412 written in a quantum programming language is compiled into DFL program code 424 by quantum programming language compiler 422. In various embodiments, DFL is a low-level program format that represents basic quantum object transport and gating / measurement operations. For example, compiling a quantum programming language 412 version of a quantum circuit into DFL program code 424 results in identifying and aggregating hardware-specific operations (e.g., elementary operations specific to quantum processor 115) such that the resulting DFL program code 424 includes a sequence of primitive operations specific to quantum processor 115 that cause the quantum circuit to be executed by quantum processor 115. In other words, compiling quantum circuit 412 written in a quantum programming language into DFL program code 424 compiles a hardware-independent quantum circuit into hardware (e.g., quantum processor 115) specific program code.
[0102] In various embodiments, the quantum programming language compiler 422 is running on the classical computing entity 10, which provides the DFL 424 (e.g., transmits it over one or more wired and / or wireless networks 20) for the controller 30 to receive it. The controller 30 stores the DFL 424 in memory 210 accessible to at least one RTE 310. In one exemplary embodiment, the classical computing entity 10 provides the quantum circuit 412 written in a quantum programming language, and the quantum programming language compiler 422 is running on the controller 30.
[0103] In various embodiments, quantum circuits 412 written in a quantum programming language (e.g., QASM, QIR, etc.) are hardware-independent. A quantum programming language compiler 422 compiles the quantum circuit into a DFL 424. The DFL 424 is device-specific and includes, for example, scheduling / routing information from the quantum programming language compiler 422. For example, the DFL 424 may include transport operations to be performed on specific qubits at specific times, used as part of transport, as well as operations on qubits or collections / strings of qubits (split, concatenate, etc.). For example, the quantum programming language compiler 422 translates the hardware-independent quantum circuit 412 in a quantum programming language into a sequence of physical processes that will be executed for the quantum circuit and / or algorithm on a specific quantum computer.
[0104] Hardware-specific compiler 426 compiles DFL 424 into RT binary and / or machine-level code 430 that is specific to quantum computer 110. For example, RT binary and / or machine-level code 430 includes executable instructions that, when executed by the respective RTE 310, cause the RTE 310 to control the operation of the respective voltage source 50, manipulation source 60, and / or other components of quantum processor 115 to cause the quantum processor to execute a quantum circuit.
[0105] In one exemplary embodiment, compilation of DFL 424 by hardware-specific compiler 426 generates control signal sequence instructions 428, which are provided to respective driver controller elements 215 configured to control the operation of respective voltage sources 50.
[0106] In various embodiments, the hardware-specific compiler 426 compiles the DFL 424 in real time as the quantum circuit is executed by the quantum computer 110. For example, the compiled RT binaries and / or executable instructions of the machine-level code 430 may be provided directly to the respective RTE 310 for execution during execution of the quantum circuit. For example, the hardware-specific compiler 426 may modify which portions of the quantum circuit are executed, when and how many times portions of the quantum circuit are executed, parameters controlling how operations are performed, etc., based on the content of classical call responses and / or other inputs received during execution of the quantum circuit.
[0107] For example, when compiling a quantum program for execution on one or more RTEs 310, the compiler (e.g., quantum programming language compiler 422 and / or hardware-specific compiler 426) ensures that function calls in the quantum program (e.g., DFL program code 424 and / or RT binaries 430) match functions defined in the classical program. For example, classical language compiler 416 and quantum programming language compiler 422 and / or hardware-specific compiler 426 may be aware of each other and / or communicate with each other and / or one or more common libraries, so that the functions invoked by quantum function calls and / or classical function calls are functions defined for the corresponding engines (e.g., RTEs 310, CCEs 320).
[0108] In various embodiments, the RT binary 430 includes a specific segment to indicate what the classical function call is using metadata and / or another technique. For example, the RTE 310 generates a classical function call that includes the function name and its arguments, and then encodes the payload of the classical function call into a packet. The packet is then provided to the CCE 320 via the bus network 315. The CCE 320 receives the packet encoding the classical function call and parses the packet to determine the function to call and execute.
[0109] 5 provides an example data flow of the interaction between the RTE 310 and the CCE 320 during execution of a quantum circuit. For example, the sender RTE 310A executes executable instructions (e.g., in the form of RT binary and / or machine-level instructions), causing the sender RTE 310A to generate and provide a classical function call 510. In various embodiments, the classical function call 510 indicates a particular classical function to be invoked and includes quantum measurement information. In various embodiments, the controller 30 determines the quantum measurement information by reading and / or measuring the quantum states of one or more qubits of the quantum processor 115. For example, the quantum measurement information may be a string of bits indicating the results of a syndrome measurement.
[0110] CCE 320 executes program code (e.g., compiled classical computation algorithm 418) indicated by classical function calls that use quantum measurement information as input. CCE 320 generates output through execution of program code (e.g., compiled classical computation algorithm 418) indicated by classical function calls based at least in part on the quantum measurement information provided as input. CCE 320 generates classical call responses 520 (e.g., 520A, 520B) that include the output and / or an indication thereof. In various embodiments, the output and / or an indication thereof may be a single bit, a bit string, an integer, a float, a string, etc.
[0111] The CCE provides the classical call response 520 so that one or more RTEs 310 receive the classical call response 520. For example, the classical function call 510 may include an indication of which RTE 310 of the controller 30 is the receiving RTE 310B for the particular classical call response 520. The CCE 320 may provide an instance of the classical call response 520B so that the receiving RTE 310B receives the classical call response 520B. In an exemplary embodiment, the CCE 320 may also provide an instance of the classical call response 520A to the sending RTE 310A that provided the classical function call 510.
[0112] In various embodiments, the classical call response 520 is a packet containing classical data (in embodiments in which the response is returning data). For example, if the classical call is invoking a QEC decoder, the classical call response 520 may contain a correction.
[0113] In some instances, a classical call response may not prompt a classical call response, and the RTE 310 may continue without receiving a classical call response. For example, in some instances, the CCE 320 may accumulate multiple instances of classical data provided by each classical call response. For example, the RTE 310 may provide multiple syndrome measurements via multiple classical function calls. The CCE 320 then uses the multiple syndrome measurements analyzed for the multiple classical function calls to perform a classical (decoder) function. One or more determined corrections may then be provided via one or more classical call responses.
[0114] The RTEs 310A, 310B may then exchange time count sync values 530 so that the RTEs 310A, 310B remain synchronized and / or continue to operate in a time synchronized manner.
[0115] In various embodiments, CCE 320 does not operate in a time-synchronized manner with respect to RTE 310. In various embodiments, communication between RTE 310 is synchronous and communication between RTE 310 and CCE 320 is asynchronous.
[0116] In various embodiments, the time between providing the classical function call 510 by the sending RTE 310A and receiving the classical call response 520 by the receiving RTE 310B is less than the coherence time of the qubits of the quantum processor. The coherence time of a qubit is the amount of time that the qubit can retain its stored quantum information. In certain exemplary embodiments, such as those in which the classical call response 520 is used to coordinate the execution of the next shot and / or next iteration of a quantum circuit and / or algorithm, the time between providing the classical function call 510 by the sending RTE 310A and receiving the classical call response 520 by the receiving RTE 310B may be less than, equal to, or greater than the coherence time of the qubits of the quantum processor.
[0117] V. Example Implementation of a Quantum Algorithm or Circuit Including Classical Function Calls 6A illustrates various processes, procedures, operations, etc. performed by one or more RTEs 310 of controller 30 to cause a quantum computer to execute a quantum algorithm or circuit that includes classical function calls. FIG. 6B illustrates various processes, procedures, operations, etc. performed by at least one CCE as part of the execution of a quantum algorithm or circuit by a quantum computer, where the quantum algorithm or circuit includes classical function calls. In various embodiments, the CCE may be a CCE 320 that is part of controller 30, or may be a computing entity 10 that communicates with controller 30.
[0118] 6A, one or more RTEs 310 cause the quantum processor to begin executing a quantum algorithm or circuit. For example, the RTEs 310 execute respective executable instructions, which cause the RTEs 310 to control respective driver controller elements 215 to cause the quantum processor to confine respective quantum objects at respective locations defined by confinement devices 70, transport respective quantum objects to respective locations defined by confinement devices 70, initialize quantum objects into qubit space, etc. For example, execution of the respective executable instructions by each RTE 310 causes the RTE to control respective driver controller elements 215, which in turn cause desired operation of voltage sources 50, manipulation sources 60, etc. to perform operations of quantum computer 110.
[0119] In step 604, as part of executing a quantum algorithm or circuit, one or more RTEs 310 capture one or more quantum measurements. For example, the one or more RTEs 310 may cause the quantum processor to perform one or more read and / or measurement operations to determine, measure, and / or read the quantum state of one or more qubits. For example, the RTE 310 may control the operation of the manipulation source 60 to project a manipulation signal (e.g., a laser beam) to each location defined at least in part by the confinement device 70, such that the manipulation signal is projected onto a quantum object located at the respective location. The photodetector provides a signal to the controller 30 (e.g., via the AD converter element 225) that provides an indication of whether the quantum object fluoresced in response to the manipulation signal being projected thereon. Based on the signal provided by the photodetector, the one or more RTEs 310 determine the quantum state of the quantum object. In an exemplary embodiment, the quantum measurement information includes an indication of the determined quantum state of the quantum object. In certain exemplary embodiments, the quantum measurement information includes an indication of the determined quantum state of each of the plurality of quantum objects.
[0120] In step 606, a sending RTE 310A of one or more RTEs 310 generates and provides a classical function call 510. For example, the RTE 310 executes executable instructions that cause the RTE 310 to generate the classical function call 510, including an indication of the classical function to be performed, quantum measurement information, and possibly a receiving RTE 310B to which the resulting classical call response 520B is to be given. The sending RTE 310A, in one exemplary embodiment, sends the classical function call 510 over the bus network 315 so that the CCE 320 receives the classical function call 510.
[0121] 6B, CCE 320 receives classical function call 510. Based on the classical function call 510, CCE 320 accesses compiled classical computation algorithm 418 from memory associated with CCE 320. In an exemplary embodiment, CCE 320 extracts quantum measurement information from classical function call 510.
[0122] In step 614, CCE 320 executes the program code of compiled classical computation algorithm 418, causing CCE 320 to perform a classical algorithm or function based at least in part on the quantum measurement information. For example, CCE 320 executes the program code of compiled classical computation algorithm 418, providing the quantum measurement information as input. Execution of the program code causes CCE 320 to generate an output or result.
[0123] In step 616, CCE 320 generates a classical call response 520 that includes the output or result (or an indication of) the execution of the classical algorithm or function. CCE 320 then provides the classical call response 520 to one or more RTEs 310. For example, CCE 320 provides the classical call response 520 to the receiving RTE 310B indicated in the classical function call 510 and / or the sending RTE 310A that provided the classical function call 510. For example, CCE 320 provides the classical call response 520 over bus network 315.
[0124] 6A, in step 608, one or more RTEs 310 receive the classical call response 520. In an exemplary embodiment, an RTE 310 extracts from the classical call response 520 the output and / or result of (or an indication of) the execution of the classical algorithm or function.
[0125] In step 610, the one or more RTEs 310 control the operation of the quantum processor 115 based at least in part on the classical call response 520. For example, the output and / or result (or an indication thereof) of the execution of the classical algorithm or function determines whether a condition is met, which circuit portion should be executed next, how the circuit portion should be executed, etc. For example, the classical algorithm or function may be a QEC decoder, and the output and / or result (or an indication thereof) of the execution of the classical algorithm or function may be one or more corrections to be performed or tracked by the controller 30 to correct errors present in the execution of the quantum circuit. In another example, the classical algorithm or function may be used to determine whether a convergence requirement is met. For example, the quantum computer may iteratively repeat the execution of the quantum circuit, or portions thereof, until the convergence requirement is met. After each iteration (or set of iterations) of the quantum circuit or portion thereof, quantum measurement information is provided to a classical algorithm or function (e.g., via a classical function call), and the output or result provided by the classical call response indicates whether the convergence requirement has been met and the quantum computer should stop iterating the quantum circuit or portion thereof, or whether the convergence requirement has not been met and the quantum computer should continue iterating the quantum circuit or portion thereof. In an exemplary embodiment, the classical algorithm or function determines the angle of rotation to be used in executing a particular quantum logic gate, etc., and the RTE may then control one or more operation sources 60 to execute the particular quantum logic gate with the determined angle of rotation. It should be understood that the quantum circuit is programmed to use the result or output of the classical algorithm or function provided as input by the classical call response.
[0126] In various embodiments, multiple classical function calls are generated and provided by one or more RTEs 310 during execution of a quantum algorithm or circuit. In various embodiments, the classical function calls and classical call responses are generated and provided during operation of the quantum circuit (e.g., during operation of the quantum processor). In various embodiments, the classical function calls and classical call responses are generated and provided while the quantum processor is not being operated. For example, the classical function calls and classical call responses may be generated and provided during execution (e.g., an iteration or shot) of a quantum algorithm or circuit executed by the quantum processor.
[0127] VI. Example Execution of Classical Algorithms Including Quantum Function Calls In various embodiments, classical computing entity 10 and / or CCE 320 of controller 30 may execute a quantum-assisted classical algorithm. A quantum-assisted classical algorithm is a classical algorithm that includes one or more quantum function calls. For example, the quantum function calls may be configured to take advantage of the strengths of a quantum computer to provide an overall faster or less computationally expensive result to the classical algorithm.
[0128] 7A illustrates various processes, procedures, operations, etc. performed by at least one CCE to cause execution of a classical algorithm that includes a quantum function call. FIG. 7B illustrates various processes, procedures, operations, etc. performed by one or more RTEs 310 as part of the CCE's execution of a classical algorithm, where the classical algorithm includes a quantum function call. In various embodiments, the CCE may be a CCE 320 that is part of the controller 30, or may be a computing entity 10 that communicates with the controller 30.
[0129] Beginning at step 702 of FIG. 7A, at least one CCE executes program code of compiled classical computation algorithms 418 to cause the CCE to begin executing the classical algorithm.
[0130] In step 704, the CCE generates and provides a quantum function call. For example, the CCE executes a portion of program code that causes the CCE to generate a quantum function call that includes an indication of a quantum function to be performed and one or more quantum function inputs. For example, in one exemplary embodiment, the quantum function is a determination of the occupation of a set of electron orbitals of an atom or molecule under specific conditions. The one or more quantum function inputs may include information about the atom or molecule, the set of electron orbitals of interest, and / or the specific conditions. For example, the quantum function input may correspond to a Hamiltonian that describes the physical system of interest. In another exemplary embodiment, the quantum function is configured to determine the prime factorization of a number, and the one or more quantum function inputs include the number to be factorized. As should be understood, a variety of quantum functions may be invoked by a quantum function call, and the one or more quantum function inputs may be tailored to the particular quantum function being invoked. For example, when the CCE is part of classical computing entity 10, the CCE causes the quantum function call to be provided via the classical computing entity's network interface 820.
[0131] 7B, one or more RTEs 310 receive the quantum function call. For example, one or more RTEs 310 may receive the quantum function call via the controller's communications interface 220. Based on the quantum function call, the RTEs 310, in an exemplary embodiment, access the DFL 424 and begin compiling the DFL 424 using a real-time, hardware-specific compiler 426.
[0132] In step 714, one or more RTEs 310 control the operation of voltage source 50, operation source 60, and / or other components of the quantum processor to execute one or more quantum circuits corresponding to the quantum function corresponding to the quantum function call.
[0133] In step 716, as part of executing one or more quantum circuits corresponding to the quantum function, the one or more RTEs 310 cause the quantum computer 110 to perform one or more read and / or measure operations and determine quantum measurement information therefrom. For example, the one or more RTEs 310 may cause the quantum processor to perform one or more read and / or measure operations to determine, measure, and / or read the quantum state of one or more qubits. For example, the RTEs 310 may control the operation of the manipulation source 60 to project a manipulation signal (e.g., a laser beam) to each location defined at least in part by the confinement device 70, such that the manipulation signal projects onto the quantum object located at the respective location. The photodetector provides a signal to the controller 30 (e.g., via the AD converter element 225) that provides an indication of whether the quantum object fluoresced in response to the manipulation signal being projected thereon. Based on the signal provided by the photodetector, the one or more RTEs 310 determine the quantum state of the quantum object. In an exemplary embodiment, the quantum measurement information includes an indication of the determined quantum state of the quantum object. In certain exemplary embodiments, the quantum measurement information includes an indication of the determined quantum state of each of the plurality of quantum objects, e.g., the quantum measurement information provides a result or output of a quantum function.
[0134] In step 718, at least one of the one or more RTEs 310 generates a quantum call response that includes the quantum measurement information. The RTE 310 provides the quantum call response to the CCE for receipt. For example, in an exemplary embodiment, the RTE 310 may cause the communications interface 220 to provide the quantum call response to the CCE of the classical computing entity 10 for receipt.
[0135] 7A , in step 706, the CCE receives the quantum invocation response. In an exemplary embodiment, the CCE receives the quantum invocation response via network interface 820 of classical computing entity 10. In an exemplary embodiment, the CCE extracts the output and / or result (or an indication thereof) of the execution of the quantum function from the quantum invocation response. For example, the CCE may extract quantum measurement information from the quantum invocation response.
[0136] In step 708, the CCE continues to execute the classical algorithm based at least in part on the output and / or result of the execution of the quantum function (e.g., quantum measurement information). For example, the CCE provides the output and / or result of the execution of the quantum function (e.g., quantum measurement information) as input, which is used by the CCE as it continues to execute the program code of the compiled classical computation algorithm 418.
[0137] In various embodiments, during the execution of a classical algorithm, multiple quantum function calls are generated and provided by the CCE.
[0138] VII. Technical Advantages The controller of the quantum computer includes one or more real-time engines configured to execute compiled executable instructions that cause real-time control of various components of the quantum processor. For example, execution of the executable instructions by the one or more real-time engines causes the one or more real-time engines to control the operation of one or more laser drivers, one or more voltage supply drivers, one or more active optical components (e.g., modulators, etc.), magnetic field sources, vacuum drivers, cooling system drivers, etc., to cause the quantum processor to perform one or more operations on one or more quantum bits and / or control the environment experienced by one or more quantum bits. To ensure that the execution of the various operations performed by the lasers and voltage supplies is, for example, properly timed, the one or more real-time engines are all time-synchronized and communicate with each other in a synchronous manner. For example, an operation may include projecting two laser beams at a target location at the same time. Thus, the operations of the two laser drivers must be performed (by the one or more real-time engines) in a time-synchronized manner.
[0139] However, given the speed and time synchronization scheme required for a real-time engine to operate, the real-time engine is not configured for dynamic memory allocation or for running more complex algorithms that may take more than a certain amount of time to execute. For example, a real-time engine may not be able to run a QEC decoder and / or other classical algorithms that may enable a quantum computer to operate more efficiently, correct / mitigate errors, etc. Thus, technical problems exist in the field of quantum computer controllers.
[0140] Furthermore, some algorithms or sub-algorithms are not efficiently performed by classical computers. For example, prime factorization of large numbers is a challenge for classical computers. However, some of these problems that are difficult for classical computers should be efficiently performed by quantum computers. Therefore, a technical challenge exists regarding how to harness the power of quantum computing to improve the performance of classical computers.
[0141] Various embodiments provide technical solutions to these technical problems. For example, various embodiments enable a real-time engine of a quantum computer controller to communicate with a classical computing engine such that function calls and responses can be communicated back and forth. For example, executable instructions executed by the real-time engine may cause the real-time engine to generate a classical function call including quantum measurement information and to provide the classical function call to the classical computing engine. The classical computing engine may execute a classical function corresponding to the classical function call based at least in part on the quantum measurement information and provide a classical call response including a result of the execution of the classical function. The real-time engine may receive the classical call response and control the quantum processor based at least in part on the result of the execution of the classical function indicated by the classical call response. In various embodiments, the classical computing engine may be executing program code, etc., that may cause the classical computing engine to generate and provide the quantum function call. The real-time engine of the controller receives the quantum function call and, based thereon, causes the quantum processor to execute a quantum algorithm and / or circuit. The controller determines quantum measurement information based on execution of the quantum algorithm and / or circuit and provides a quantum call response that includes the quantum measurement information. The classical computing engine receives the quantum call response and continues execution of program code, etc., based at least in part on the quantum measurement information included in the quantum call response. Thus, various embodiments improve the functionality of a quantum computer and / or a classical computer.
[0142] VIII. Exemplary Computing Entities 8 provides an illustrative schematic diagram depicting an exemplary classical computing entity 10 that can be used with embodiments of the present invention. In various embodiments, the computing entity 10 is configured to enable a user to provide input to the quantum computer 110 (e.g., via a user interface of the computing entity 10) and receive, display, analyze, etc. output from the quantum computer 110. For example, a user may interact with the user interface of the classical computing entity 10 to program and / or write a quantum circuit in a quantum programming language and / or a classical computational algorithm. For example, a quantum circuit 412 written in a quantum programming language may be compiled (e.g., by a quantum programming language compiler 422) into a DFL 424, which is compiled (e.g., by a hardware-specific compiler 426 running on the classical computing entity 10 and / or RTE 310) into RT binaries and / or machine-level code 430 for execution by one or more RTEs 310. For example, classical computing algorithms 414 may be compiled (e.g., by classical language compiler 416) into compiled classical computing algorithms 418 program code. For example, compiled classical computing algorithms 418 program code, in one exemplary embodiment, is WASM program code and / or executable instructions.
[0143] In various embodiments, classical computing entity 10 comprises semiconductor-based processing resources and memory. As shown in FIG. 8 , classical computing entity 10 may include an antenna 812, a transmitter 804 (e.g., wireless), a receiver 806 (e.g., wireless), and processing elements and / or devices 808 that provide signals to and receive signals from transmitter 804 and receiver 806, respectively. The signals provided to and received from transmitter 804 and receiver 806, respectively, may include signaling information / data in accordance with an air interface standard of an applicable wireless system for communicating with various entities, such as controller 30, other computing entities 10, etc. In this regard, computing entity 10 may be capable of operating with one or more air interface standards, communication protocols, modulation types, and access types. For example, computing entity 10 may be configured to receive and / or provide communications using a wired data transmission protocol such as Fiber Distributed Data Interface (FDDI), Digital Subscriber Line (DSL), Ethernet, Asynchronous Transfer Mode (ATM), Frame Relay, Data Service Interface Standard over Cable (DOCSIS), or any other wired transmission protocol.Similarly, the computing entity 10 may be configured to support General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access 2000 (CDMA2000), CDMA2000 It may be configured to communicate over a wireless external communications network using any of a variety of protocols, such as 1X (1xRTT), Wideband Code Division Multiple Access (WCDMA), Wide Area System for Mobile Communications (GSM), Enhanced Data Rates for GSM Evolution (EDGE), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), Evolved Universal Terrestrial Radio Access Network (E-UTRAN), Evolution Data Optimized (EVDO), High Speed Packet Access (HSPA), High Speed Downlink Packet Access (HSDPA), IEEE 802.11 (Wi-Fi), Wi-Fi Direct, 802.16 (WiMAX), Ultra Wide Band (UWB), Infrared (IR) protocol, Near Field Communication (NFC) protocol, Wibree, Bluetooth protocol, Wireless Universal Serial Bus (USB) protocol, and / or any other wireless protocol. Computing entity 10 may use such protocols and standards to communicate using Border Gateway Protocol (BGP), Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS), File Transfer Protocol (FTP), Hypertext Transfer Protocol (HTTP), HTTP over TLS / SSL / Secure, Internet Message Access Protocol (IMAP), Network Time Protocol (NTP), Simple Mail Transfer Protocol (SMTP), Telnet, Transport Layer Security (TLS), Secure Sockets Layer (SSL), Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Datagram Congestion Control Protocol (DCCP), Stream Control Transmission Protocol (SCTP), Hypertext Markup Language (HTML), and the like.
[0144] These communication standards and protocols enable computing entity 10 to communicate with various other entities using concepts such as Unstructured Supplementary Service Information / Data (USSD), Short Message Service (SMS), Multimedia Messaging Service (MMS), Dual Tone Multi-Frequency Signaling (DTMF), and / or Subscriber Identity Module Dialer (SIM Dialer). Computing entity 10 may also download modifications, add-ons, and updates to, for example, its firmware, software (including, e.g., executable instructions, applications, program modules), and operating system. In various embodiments, classical computing entity 10 includes a network interface 820 configured to communicate over one or more wired and / or wireless networks 20.
[0145] Computing entity 10 may also comprise user interface devices comprising one or more user input / output interfaces (e.g., a display 816 and / or speakers / speaker drivers coupled to the processing elements and / or devices 808, as well as a touchscreen, keyboard, mouse, and / or microphone coupled to the processing elements and / or devices 808). For example, the user output interface may be configured to cause the display or audible presentation of applications, browsers, user interfaces, interfaces, dashboards, screens, web pages, pages, and / or information / data, and to provide similar terms used interchangeably herein, running on and / or accessible through computing entity 10 for interaction therewith via one or more user input interfaces. The user input interface may comprise any of several devices that enable computing entity 10 to receive data, such as a keypad 818 (hard or soft), a touch display, a voice / speech or motion interface, a scanner, reader, or other input device. In embodiments including a keypad 818, the keypad 818 may include (or cause the display of) conventional numeric (0-9) and related keys (#, *), as well as other keys used to operate computing entity 10, and may include a set of keys that can be activated to provide a full set of alphabetic or alphanumeric keys. In addition to providing input, the user input interface may be used to activate or deactivate certain features, such as, for example, a screen saver and / or sleep mode. Through such input, computing entity 10 may collect information / data, user interaction / input, etc.
[0146] Computing entity 10 may also include volatile storage or memory 822 and / or non-volatile storage or memory 824, which may be embedded and / or removable. For example, non-volatile memory may be ROM, PROM, EPROM, EEPROM, flash memory, MMC, SD memory card, memory stick, CBRAM, PRAM, FeRAM, RRAM, SONOS, racetrack memory, etc. Volatile memory may be RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, RIMM, DIMM, SIMM, VRAM, cache memory, registered memory, etc. Volatile and non-volatile storage or memory may store databases, database instances, database management system entities, data, applications, programs, program modules, scripts, source code, object code, byte code, compiled code, interpreted code, machine code, executable instructions, etc., to implement the functionality of computing entity 10.
[0147] IX. Conclusion Many modifications and other embodiments of the inventions described herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. It is to be understood, therefore, that the inventions are not limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation. [Explanation of symbols]
[0148] 10 Classical Computing Entities 20 Wired / Wireless Networks 30 Controllers 40 Cryostat and / or vacuum chamber 50 Voltage Source 60 Operation source 66 Beam Path System 70 Quantum Object Confinement Device 110 Quantum Computer 115 Quantum Processor 205 Processing devices, processing elements 210 memory 215 Driver Controller Elements 220 Communication Interface 225 Analog-to-Digital (AD) Converter Elements 310 Real-Time Engine (RTE) 315 Bus Network 320 Classical Computing Engine (CCE) 412 Quantum circuit 416 Classical Language Compilers 422 Quantum Programming Language Compiler 426 Hardware-Specific Compilers 804 Transmitter 806 receiver 808 Processing Device, Processing Element 812 Antenna 816 Display 818 keypad 820 network interface 822 Volatile Storage or Memory 824 Non-volatile storage or memory
Claims
1. 1. A method implemented by one or more real-time engines of a quantum computer, the quantum computer comprising: a controller comprising the one or more real-time engines in communication with at least one classical computing engine; and a quantum processor, the controller configured to control operation of one or more components of the quantum processor, the method comprising: providing quantum measurement information to the at least one classical computing engine via a classical function call; receiving a classical call response that includes an indication of a result determined by execution of the classical function by the classical computing engine based at least in part on the classical function call; controlling operation of the one or more components of the quantum processor based at least in part on the result; A method comprising:
2. the controller further comprising or in communication with one or more voltage source drivers and one or more laser drivers; Controlling the operation of the one or more components of the quantum processor includes: controlling operation of the one or more voltage source drivers; controlling operation of the one or more laser drivers; 2. The method of claim 1, comprising:
3. The method of claim 1 , wherein communication between the one or more real-time engines and the at least one classical computing engine is asynchronous.
4. The method of claim 3 , wherein the one or more real-time engines include two or more real-time engines, and wherein communication between the two or more real-time engines is synchronous.
5. 10. The method of claim 1, wherein the one or more real-time engines are configured to execute executable instructions compiled from quantum assembly (QASM) or quantum intermediate representation (QIR) code.
6. The method of claim 1 , wherein the classical computing engine is part of the controller.
7. The method of claim 1 , wherein the classical function call and the classical call response both comply with the Inter-Component Communication (ICC) standard.
8. 10. The method of claim 1, wherein the one or more quantum measurements are syndrome measurements and the classical function is a quantum error correction (QEC) decoder.
9. The method of claim 1 , wherein the quantum measurement information provides an indication of the outcome of each of one or more quantum measurements taken during execution of a quantum circuit by the quantum processor.
10. controlling operation of the one or more components of the quantum processor based at least in part on the classical call response, (a) selecting a quantum circuit portion to be executed; (b) adjusting one or more quantum gates; (c) determining the number of times the quantum circuit portion is executed based on the classical call response; The method of claim 1 , comprising at least one of:
11. 2. The method of claim 1, wherein the time between providing the classical function call and receiving the classical call response is less than a coherence time of a qubit of the quantum processor.
12. 1. A system for hybrid quantum-classical computing, comprising: a quantum computer comprising a controller and a quantum processor, the controller (a) configured to control operation of one or more components of the quantum processor, and (b) comprising one or more real-time engines and a first classical memory that stores first executable instructions; A classical computing engine, A second classical memory that stores program code. Equipped with The program code, when executed by the classical computing engine, causes the classical computing engine to perform at least: Beginning to execute a quantum-assisted classical algorithm; and generating and providing quantum function calls, wherein the one or more real-time engines cause the controller to control operation of the one or more components of the quantum processor to execute a quantum function and generate a quantum invocation response based on a result of executing the quantum function; receiving the quantum call response; continuing to execute the quantum-assisted classical algorithm based at least in part on the quantum call response; and configured to cause The first executable instructions, when executed by the one or more real-time engines, cause the quantum processor to perform at least: executing the quantum function in response to the quantum function invocation; determining a quantum call response based on a result of executing the quantum function; providing the quantum call response such that the classical computing engine receives the quantum call response; A system configured to cause
13. the controller further comprising or in communication with one or more voltage source drivers and one or more laser drivers; Controlling the operation of the one or more components of the quantum processor comprises: controlling operation of said one or more voltage source drivers; controlling operation of said one or more laser drivers; The system of claim 12, comprising:
14. 13. The system of claim 12, wherein communication between the one or more real-time engines and the classical computing engine is asynchronous.
15. 1. A controller for a quantum computing system, the controller (a) configured to control operation of one or more components of a quantum processor; (b) comprising one or more real-time engines in communication with at least one classical computing engine; and (c) comprising a classical memory that stores executable instructions that, when executed by the one or more real-time engines, provide the controller with at least: controlling operation of the one or more components of the quantum processor to cause the quantum processor to take one or more quantum measurements; providing quantum measurement information to the at least one classical computing engine via classical function calls; receiving a classical call response that includes an indication of a result determined by execution of the classical function by the classical computing engine based at least in part on the classical function call; controlling operation of the one or more components of the quantum processor based at least in part on the result; and A controller configured to cause the
16. the controller further comprising or in communication with one or more voltage source drivers and one or more laser drivers; Controlling the operation of the one or more components of the quantum processor comprises: controlling operation of said one or more voltage source drivers; controlling operation of said one or more laser drivers; 16. The controller of claim 15, comprising:
17. 16. The controller of claim 15, wherein communication between the one or more real-time engines and the at least one classical computing engine is asynchronous.
18. 16. The controller of claim 15, wherein the one or more quantum measurements are syndrome measurements and the classical function is a quantum error correction (QEC) decoder.
19. Controlling operation of the one or more components of the quantum processor based at least in part on the classical call response includes: (a) selecting a quantum circuit portion to be executed; (b) adjusting one or more quantum gates; and (c) determining the number of times the quantum circuit portion is executed based on the classical call response; and 16. The controller of claim 15, comprising at least one of:
20. 16. The controller of claim 15, wherein the time between providing the classical function call and receiving the classical call response is less than a coherence time of a qubit of the quantum processor.
Citation Information
Patent Citations
System and method for automatic real-time calibration of cubit chip
JP2022100226A
Method and system for increasing quantum computer processing speed using digital co-processor
US20080313430A1
Asynchronous quantum information processing
US20210334128A1
Low-Latency, High-Performance Hybrid Computing
US20210357797A1
Control method for a distributed processing system including a quantum information processor
WO2021165639A1