Hybrid quantum classical computing environment
The hybrid quantum-classical computing environment addresses error correction challenges in quantum computing by integrating real-time engines and classical computing engines, enhancing efficiency and performance through real-time error correction and optimization.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- QUANTINUUM LLC
- Filing Date
- 2023-08-11
- Publication Date
- 2026-06-30
AI Technical Summary
Existing quantum computing systems face challenges in efficiently correcting errors during program execution, leading to resource wastage due to the difficulty in adjusting running quantum programs before errors become irresolvable.
A hybrid quantum-classical computing environment is introduced, incorporating real-time engines and classical computing engines to control quantum processors, enabling real-time error correction and optimization through classical function calls and responses, as well as quantum-assisted classical algorithms.
Enhances the efficiency and performance of quantum computing by allowing real-time error correction and optimization, improving resource utilization and computation speed.
Smart Images

Figure 0007883052000001 
Figure 0007883052000002 
Figure 0007883052000003
Abstract
Description
Technical Field
[0001] Cross - reference to Related Applications This application claims priority to U.S. Application No. 18 / 446,825, filed Aug. 9, 2023, and U.S. Application No. 63 / 371,579, filed Aug. 16, 2022, the contents of which are hereby incorporated by reference in their entirety.
[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 when executing a classical algorithm.
Background Art
[0003] On a quantum processor, a quantum program can be generated and executed. During the execution of a quantum program, various errors can occur. However, it can be difficult to adjust the running quantum program so as to correct the errors before they become irresolvable. As a result, cases where resources are wasted when executing a quantum program can occur. Through the application of work, ingenuity, and innovation, many deficiencies of such conventional computing systems have been solved by developing solutions constructed according to embodiments of the present invention, and many examples thereof are described in detail herein.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
[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 quantum circuits. Various embodiments provide hybrid quantum-classical computing systems, quantum computer processors, methods for using the hybrid quantum-classical computing system, and the like. 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 computations.
[0006] In various embodiments, 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 a quantum processor based on the classical call responses. In various embodiments, a classical computing engine is configured to receive classical function calls containing quantum measurement information, execute each classical function at least partially based on the quantum measurement information, and provide a classical call response containing the results of the execution of the classical function at least partially based on the quantum measurement information.
[0007] In various embodiments, at least one classical computing engine is configured to execute quantum-assisted classical algorithms, generate and provide quantum function calls, receive quantum call responses, and use quantum call responses when executing quantum-assisted classical algorithms. In various embodiments, one or more real-time engines are configured to receive quantum function calls, cause a quantum processor to execute a quantum circuit based at least partially on the quantum function calls, determine the results of the quantum circuit, and generate and provide quantum call responses based on the results of the quantum circuit.
[0008] According to a first aspect, a method for operating a quantum computer is provided. In one exemplary embodiment, the method is carried out by one or more real-time engines of a quantum computer. The quantum computer comprises a controller comprising one or more real-time engines, the real-time engines communicating with at least one classical computing engine. The quantum computer further comprises a quantum processor. The controller is configured to control the operation of one or more components of the quantum processor. In one exemplary embodiment, the method includes the steps of: providing quantum measurement information to at least one classical computing engine by classical function call; receiving a classical call response, at least in part on the classical function call, containing instructions for a result determined by the execution of a classical function by the classical computing engine; and controlling the operation of one or more components of the quantum processor, at least in part on the result.
[0009] In one exemplary embodiment, the method further includes the step of controlling the operation of one or more components of a quantum processor to cause the incorporation of one or more quantum measurements, the quantum measurement information being determined based on one or more quantum measurements.
[0010] In one exemplary embodiment, the controller further comprises or communicates with one or more voltage source drivers and one or more laser drivers, and the step of controlling the operation of one or more components of the quantum processor includes the step of controlling the operation of one or more voltage source drivers and the step of controlling the operation of one or more laser drivers.
[0011] In one exemplary embodiment, communication between one or more real-time engines and at least one classical computing engine is asynchronous.
[0012] In one exemplary embodiment, one or more real-time engines include two or more real-time engines, and communication between the two or more real-time engines is synchronized.
[0013] In one exemplary embodiment, 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 one exemplary embodiment, the classical computing engine is part of the controller.
[0015] In one exemplary embodiment, both classical function calls and classical call responses conform to the Intercomponent Communication (ICC) standard.
[0016] In one exemplary embodiment, one or more quantum measurements are syndrome measurements, and the classical function is a quantum error correction (QEC) decoder.
[0017] In one exemplary embodiment, the quantum measurement information provides instructions for the results of one or more quantum measurements taken during the execution of a quantum circuit by a quantum processor.
[0018] In one exemplary embodiment, the step of controlling the operation of one or more components of a quantum processor based at least in part on a classical call response includes at least one of: (a) selecting a portion of a quantum circuit to be executed; (b) adjusting one or more quantum gates; (c) determining the number of times the portion of the quantum circuit is to be executed based on the classical call response.
[0019] In one exemplary embodiment, the time between providing a classical function call and receiving a classical call response is less than the coherence time of qubits of the quantum processor.
[0020] According to another aspect, a controller for a quantum computing system is provided. The controller is configured to: (a) control the operation of one or more components of a quantum processor; (b) include one or more real-time engines that communicate with at least one classical computing engine; (c) include classical memory that stores executable instructions. When executed by the one or more real-time engines, the executable instructions cause the controller to: provide quantum measurement information to at least one classical computing engine by at least a classical function call; receive a classical call response that includes an indication of a result determined by execution of a classical function by the classical computing engine based at least in part on the classical call response; and control the operation of one or more components of the quantum processor based at least in part on the result.
[0021] In one exemplary embodiment, when executed by the one or more real-time engines, the executable instructions further cause the controller to at least control the operation of one or more components of the quantum processor to cause capture of one or more quantum measurement values, and the quantum measurement information is determined based on the one or more quantum measurement values.
[0022] In one exemplary embodiment, the controller further comprises or communicates with one or more voltage source 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 one or more voltage source drivers and controlling the operation of one or more laser drivers.
[0023] In one exemplary embodiment, the communication between one or more real-time engines and at least one classical computing engine is asynchronous.
[0024] In one exemplary embodiment, one or more real-time engines include two or more real-time engines, and the communication between the two or more real-time engines is synchronous.
[0025] In one exemplary embodiment, 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 one exemplary embodiment, the classical computing engine is part of the controller.
[0027] In one exemplary embodiment, both classical function calls and classical call responses conform to the inter-component communication (ICC) standard.
[0028] In one exemplary embodiment, one or more quantum measurement values are syndrome measurement values, and the classical function is a quantum error correction (QEC) decoder.
[0029] In one exemplary embodiment, the quantum measurement information provides an indication of the result of each of one or more quantum measurement values captured during the execution of a quantum circuit by the quantum processor.
[0030] In one exemplary embodiment, controlling the operation of one or more components of a quantum processor based at least in part on a classical call response includes at least one of (a) selecting a quantum circuit portion to be executed, (b) tuning one or more quantum gates, and (c) determining how many times the quantum circuit portion is executed based on the classical call response.
[0031] In one exemplary embodiment, the time between providing a classical function call and receiving a classical call response is less than the coherence time of the qubits in the quantum processor.
[0032] In yet another embodiment, a hybrid quantum-classical computing system is provided. In one exemplary embodiment, the hybrid quantum-classical computing system comprises at least one classical computing engine, one or more real-time engines, and a quantum processor. One or more real-time engines are configured to control the operation of one or more components of the quantum processor. One or more real-time engines are configured to execute executable instructions to cause the execution of providing quantum measurement information to at least one classical computing engine by classical function call, receiving a classical call response containing instructions for the result determined by the execution of the classical function by the classical computing engine, at least in part on the classical function call, and controlling the operation of one or more components of the quantum processor, at least in part on the result. At least one classical computing engine is configured to execute program code to cause the execution of executing a classical algorithm by classical function call and providing a classical call response.
[0033] In one exemplary embodiment, the executable instruction is further configured to cause one or more real-time engines to control the operation of one or more components of a quantum processor so as to trigger the capture of one or more quantum measurements, the quantum measurement information being determined based on one or more quantum measurements.
[0034] In one exemplary embodiment, the controller further comprises or communicates with one or more voltage source 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 one or more voltage source drivers and controlling the operation of one or more laser drivers.
[0035] In one exemplary embodiment, communication between one or more real-time engines and at least one classical computing engine is asynchronous.
[0036] In one exemplary embodiment, one or more real-time engines include two or more real-time engines, and communication between the two or more real-time engines is synchronized.
[0037] In one exemplary embodiment, 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 one exemplary embodiment, the classical computing engine is part of the controller.
[0039] In one exemplary embodiment, both classical function calls and classical call responses conform to the Intercomponent Communication (ICC) standard.
[0040] In one exemplary embodiment, one or more quantum measurements are syndrome measurements, and the classical function is a quantum error correction (QEC) decoder.
[0041] In one exemplary embodiment, the quantum measurement information provides instructions for the results of one or more quantum measurements taken during the execution of a quantum circuit by a quantum processor.
[0042] In one exemplary embodiment, controlling the operation of one or more components of a quantum processor based at least in part on a classical call response includes at least one of (a) selecting a quantum circuit portion to be executed, (b) tuning one or more quantum gates, and (c) determining how many times the quantum circuit portion is executed based on the classical call response.
[0043] In one exemplary embodiment, the time between providing a classical function call and receiving a classical call response is less than the coherence time of the qubits in the quantum processor.
[0044] In yet another embodiment, 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 the performance of a classical computing engine executing the quantum-assisted classical algorithm. In one exemplary embodiment, the method includes the steps of: starting to execute a quantum-assisted classical algorithm; one or more real-time engines generating and providing quantum function calls so that a controller of a quantum computer controls the operation of one or more components of a quantum processor to execute a quantum function and generate a quantum call response based on the result of executing the quantum function; receiving a quantum call response; and continuing to execute the quantum-assisted classical algorithm at least in part on the quantum call response.
[0045] In one exemplary embodiment, the controller further comprises or communicates with one or more voltage source 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 one or more voltage source drivers and controlling the operation of one or more laser drivers.
[0046] In one exemplary embodiment, communication between one or more real-time engines and classical computing engines is asynchronous.
[0047] In yet another embodiment, a classical computing entity is provided. In one exemplary embodiment, the classical computing entity comprises at least one processor and non-temporary memory for storing program code. The program code, when executed by at least one processor, is configured to cause the classical computing entity to: begin executing a quantum-assisted classical algorithm; generate and provide quantum function calls to cause one or more real-time engines to control the operation of one or more components of a quantum processor to execute a quantum function and generate a quantum call response based on the results of executing the quantum function to a controller of a quantum computer; receive the quantum call response; and continue executing the quantum-assisted classical algorithm at least in part on the quantum call response.
[0048] In one exemplary embodiment, the controller further comprises or communicates with one or more voltage source 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 one or more voltage source drivers and controlling the operation of one or more laser drivers.
[0049] In one exemplary embodiment, communication between one or more real-time engines and classical computing engines is asynchronous.
[0050] In another embodiment, a hybrid quantum-classical computing system is provided. In one exemplary embodiment, the system comprises a quantum computer having a controller and a quantum processor. The controller is configured to (a) control the operation of one or more components of the quantum processor, and (b) one or more real-time engines and a first classical memory for storing executable instructions. The system further includes a classical computing engine and a second classical memory for storing program code. When the program code is executed by the classical computing engine, it is configured to cause the classical computing engine to at least begin executing a quantum-assisted classical algorithm, and one or more real-time engines to generate and provide a quantum function call that causes the controller to control the operation of one or more components of the quantum processor to execute a quantum function and generate a quantum call response based on the result of executing the quantum function, receive the quantum call response, and continue executing the quantum-assisted classical algorithm at least in part on the quantum call response. The first executable instruction, when executed by one or more real-time engines, is configured to cause a quantum processor to at least execute a quantum function in response to a quantum function call, determine a quantum call response based on the result of executing the quantum function, and provide a quantum call response such that a classical computing engine can receive the quantum call response.
[0051] In one exemplary embodiment, the controller further comprises or communicates with one or more voltage source 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 one or more voltage source drivers and controlling the operation of one or more laser drivers.
[0052] In one exemplary embodiment, communication between one or more real-time engines and classical computing engines is asynchronous.
[0053] In one exemplary embodiment, the classical computing engine is part of the controller.
[0054] In one exemplary embodiment, the classical computing engine is part of a classical computing entity that communicates with a controller.
[0055] The present invention has been described above in general terms, and references are now made to the attached drawings, although the drawings are not necessarily drawn to scale. [Brief explanation of the drawing]
[0056] [Figure 1] This is a schematic diagram illustrating exemplary hybrid quantum-classical computing systems in various embodiments. [Figure 2] This is a schematic diagram of exemplary controllers for quantum computers in various embodiments. [Figure 3] This is a schematic diagram illustrating exemplary processing devices for a quantum computer controller in various embodiments. [Figure 4] This is a data flow diagram that provides executable instructions to various computing engines of a hybrid quantum classical computing system in various embodiments. [Figure 5] This is a data flow diagram for classical function calls and classical call responses in various embodiments. [Figure 6A] This flowchart shows processes, procedures, and / or operations performed by one or more real-time engines for executing quantum circuits, according to various embodiments. [Figure 6B]This flowchart shows processes, procedures, and / or actions performed by at least one classical computing engine in response to classical function calls, according to various embodiments. [Figure 7A] This flowchart shows the processes, procedures, and / or operations performed by at least one classical computing engine for implementing and / or executing quantum-assisted classical algorithms in various embodiments. [Figure 7B] This flowchart shows processes, procedures, and / or operations performed by one or more real-time engines in response to quantum function calls, according to various embodiments. [Figure 8] This is a schematic diagram of an exemplary computing entity of a quantum computer system that may be used according to an exemplary embodiment. [Modes for carrying out the invention]
[0057] Next, the present invention will be described more fully hereafter with reference to the accompanying drawings, which illustrate several, but not all, embodiments of the present invention. In fact, the present invention may be embodied in many different ways and should not be intended to be limited to the embodiments described herein, rather these embodiments are given such that the applicable legal requirements are satisfied by this disclosure. The terms “or” (also written as “ / ”) are used herein in both alternative and concomitant senses unless otherwise specified. The terms “illustrative” and “exemplary” are used to mean examples that do not indicate a level of quality. The terms “generally” and “about” mean within engineering and / or manufacture limits / tolerances and / or within user measurement capabilities, unless otherwise specified. The same number refers to the same element 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 quantum circuits. Various embodiments provide hybrid quantum-classical computing systems, quantum computer processors, methods for using the hybrid quantum-classical computing system, and the like. 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 computations.
[0059] In various embodiments, 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 a quantum processor based on the classical call responses. In various embodiments, a classical computing engine is configured to receive classical function calls containing quantum measurement information, execute each classical function at least partially based on the quantum measurement information, and provide a classical call response containing the results of the execution of the classical function at least partially based on the quantum measurement information.
[0060] In various embodiments, at least one classical computing engine is configured to execute quantum-assisted classical algorithms, generate and provide quantum function calls, receive quantum call responses, and use quantum call responses when executing quantum-assisted classical algorithms. In various embodiments, one or more real-time engines are configured to receive quantum function calls, cause a quantum processor to execute a quantum circuit based at least partially on the quantum function calls, determine the results of the quantum circuit, and generate and provide quantum call responses based on the results of the quantum circuit.
[0061] In various embodiments, a hybrid quantum-classical computing environment is an environment in which the controller of a quantum computer (and / or one or more real-time engines of the controller) is configured and / or programmed to call functions, applications, programs, modules, etc. that run on a classical computer (for example, on a classical processor or classical computing engine of the controller or another classical / semiconductor-based computing entity). For example, the controller of a quantum computer may use a low-level embedded programming language to allow and / or enable classical callouts (for example, to functions, applications, programs, modules, etc. that run 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, a hybrid quantum-classical computing environment enables a controller to invoke functions, applications, programs, modules, etc., that run on the classical computing engine and to pass information about measurements captured by the quantum processor (e.g., syndrome measurements (the entire contents of which are incorporated herein by reference, see U.S. Patent Application No. 63 / 368,421 filed July 14, 2022), qubit measurements / indices, etc.). For example, during the execution of a quantum algorithm or circuit, the controller captures quantum measurements. The controller's real-time engine invokes functions, applications, programs, modules (also referred herein as “classical functions”) that run on the classical computing engine and passes information about the quantum measurements to be given to the classical function. Upon receiving the classical function call and the information about the quantum measurements, the classical function processes the information about the quantum measurements captured by the quantum computer. The classical function then generates and gives a classical call response. In various embodiments, the classical call response includes integers, floating-point numbers, strings, etc. The controller's real-time engine receives and processes the classical call response. In various embodiments, the controller's real-time engine may use classical call responses (e.g., their contents) to coordinate and / or modify one or more subsequent actions performed by the quantum computer.
[0063] In various embodiments, hybrid quantum-classical computing environments enable quantum circuit compilation improvements such that quantum algorithms and / or circuits can be executed in relatively small amounts 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, which are syndrome measurements, to the classical function. 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 of a quantum computer / electrical and / or magnetic / operational signals, etc.) that are triggered 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 are present or absent in the interactions, and provide the controller's real-time engine with a classical call response containing appropriate indications of the quantum errors present or absent in the interactions. The controller may then perform one or more quantum error corrections based on the classical call response (e.g., performing an add gate, a correction gate, etc.).
[0065] In various embodiments, the classical function is a convergence monitoring function. For example, the classical function may determine when the results of a quantum algorithm and / or circuit have converged to an appropriate level of convergence or when one or more convergence criteria have been satisfied. For example, the controller may determine that the execution of the quantum circuit and / or algorithm by the quantum computer is complete in response to an indication that the results of the quantum algorithm and / or circuit have converged to an appropriate level of convergence or when one or more convergence criteria indicated by the classical call response have been satisfied.
[0066] For example, in one exemplary embodiment, a classical function is configured to return a classical call response containing a Boolean (e.g., true / false). For example, in one exemplary embodiment, the Boolean indicates whether the result of a quantum algorithm and / or circuit has converged to an appropriate level of convergence or satisfies one or more convergence criteria. For example, a quantum algorithm and / or circuit is divided into parts and / or shots (for example, each time the circuit is executed is called a shot). After the execution of each part and / or shot, the quantum measurement (or corresponding information) captured by the quantum computer as part of the execution of each part or shot is given to the classical function (for example, via a classical function call). The classical function tracks and / or monitors the information across parts or shots. For example, when the classical function receives each classical function call providing information about the quantum measurement captured by the quantum computer as part of each part or shot, it 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 satisfies one or more convergence criteria (or other stopping criteria). The classical computing engine executes classical functions and then returns a classical call response containing the appropriate and / or determined Boolean. The controller's real-time engine receives the classical call response, processes the Boolean within it, and proceeds to control the various components of the quantum computer accordingly. For example, if the Boolean indicates that the result of the quantum algorithm and / or circuit (or its iterated subpart) has not converged to an appropriate level of convergence or does not satisfy one or more convergence criteria (or other stopping criteria), the controller's real-time engine causes the quantum processor to continue executing the quantum algorithm or circuit (or its iterated subpart).In another example, the controller's real-time engine causes the quantum processor to stop or halt execution of the quantum algorithm and / or circuit (or its iterated subparts) when a Boolean operator indicates that the results of the quantum algorithm and / or circuit (or their iterated subparts) have converged to an appropriate level of convergence or that one or more convergence criteria (or other halting criteria) have been satisfied.
[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 eigenvalue solver (VQE), but various embodiments may relate to and / or use various other VQA. In various embodiments, the controller is configured to determine the parameters to be used during the real-time execution of the VQA in response to quantum measurements taken during the execution of the previous part of the quantum algorithm and / or circuit. For example, a classical function call is used to pass quantum measurements and / or corresponding information to a classical computing engine. The classical computing engine executes the classical function based on the classical function call and then determines and gives a classical call response. The controller's real-time engine receives the classical call response and, based on the classical call response, updates and / or sets the parameters to be used next for executing the next part of the quantum algorithm and / or circuit.
[0068] In various embodiments, the controller's real-time engine 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 classical call responses (and / or their 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 source drivers to execute a gate with a particular set of parameters. For example, in one exemplary embodiment, the quantum algorithm and / or circuit is a VQE using arbitrary-angle gates. The classical call response may provide values used to update, modify, and / or set the angles of one or more arbitrary-angle gates for the next execution (e.g., the next shot) of the quantum algorithm and / or circuit, and / or for another quantum algorithm and / or circuit, during the execution of the quantum algorithm and / or circuit. For example, the angle of an arbitrary gate may correspond to the intensity or duration of one or more laser beams applied to a target location where the one or more qubits on which the gate is executed are located. For example, the angle of an arbitrary-angle gate may be set, modified, and / or updated during the execution of a quantum algorithm and / or circuit based on mid-circuit quantum measurements and the use of a quantum classical computing environment. For example, a real-time engine may modify, set, and / or update the way in which one or more laser drivers, active optical elements, and / or voltage source drivers operate 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 to index 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 one exemplary embodiment, the controller's real-time engine provides classical function calls corresponding to classical functions, and through these classical function calls, provides quantum measurement information to the classical functions. The classical functions may then update a parameter file (e.g., a JSON file) referenced by the controller's real-time engine during the execution of one or more functions of the quantum computer. For example, the parameter file may provide parameters used by the controller's real-time engine to control one or more voltage sources, manipulators, etc., of the quantum computer to trigger the execution of one or more functions of the quantum computer (e.g., qubit reading, qubit gating, qubit transport, cooling, etc.).
[0072] In various embodiments, a 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 the execution of the quantum algorithm and / or circuit. For example, a classical function may receive information about quantum measurements taken by a quantum computer during the execution of a quantum algorithm and / or circuit (e.g., by a classical function call) and, based on this, determine the number of iterations to execute a particular subpart of the quantum algorithm and / or circuit. The classical function then provides a classical call response indicating the number of iterations for which the controller's real-time engine receives the classical call response, and, based on this, may cause a 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 deliver improvements and / or speed up classical computations. For example, a classical computing engine may be performing classical computations and generating and providing 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 the quantum call response. The classical computing engine receives the quantum call response and continues to perform classical computations based on the quantum call response. For example, a quantum computer is expected to be faster and / or more efficient (compared to a classical / semiconductor-based computer) in handling certain types of problems or computations. If a 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 a classical computation involves a computation that would give more accurate and / or precise results 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.
[0074] The controller of a quantum computer includes one or more real-time engines configured to execute compiled executable instructions that trigger real-time control of various components of the quantum processor. For example, the execution of executable instructions by one or more real-time engines causes one or more real-time engines to control the operation of one or more laser drivers, one or more voltage source drivers, one or more active optical components (e.g., modulators), magnetic field sources, vacuum drivers, cooling system drivers, etc., causing the quantum processor to perform one or more operations on one or more qubits and / or control the environment through which one or more qubits pass. To properly time the execution of the various operations performed by the lasers and voltage sources, for example, 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 onto a target location at the same time. Therefore, the operation of the two laser drivers must be performed (by one or more real-time engines) in a time-synchronized manner.
[0075] However, given the required speed and time synchronization scheme for a real-time engine to operate, it is not configured for dynamic memory allocation or for executing more complex algorithms that may take longer 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 could enable a quantum computer to operate more efficiently and correct / mitigate errors, etc. Therefore, there are technical problems in the field of quantum computer controllers.
[0076] Furthermore, some algorithms or sub-algorithms cannot be efficiently performed by classical computers. For example, factorizing large numbers into prime factors is a difficult problem for classical computers. However, some of these problems that are difficult for classical computers should be able to be efficiently performed by quantum computers. Therefore, there is a technical challenge regarding how to utilize the capabilities 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 the real-time engine of a quantum computer controller to communicate with a classical computing engine so 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 containing quantum measurement information and to provide the classical function call to the classical computing engine. The classical computing engine may execute the classical function corresponding to the classical function call, at least in part on the quantum measurement information, and provide a classical call response containing the result of the execution of the classical function. The real-time engine receives the classical call response and may control the quantum processor, 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., which causes the classical computing engine to generate and provide quantum function calls. The controller's real-time engine receives the quantum function call and, based on it, causes the quantum processor to execute a quantum algorithm and / or circuit. The controller determines quantum measurement information based on the execution of quantum algorithms and / or circuits and provides a quantum call response containing 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 contained in the quantum call response. Thus, various embodiments enhance the capabilities of quantum computers and / or classical computers.
[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 Figure 1.
[0079] In various embodiments, the hybrid quantum-classical computing environment 100 comprises a classical computing entity 10 and a quantum computer 110. In various embodiments, the quantum computer 110 comprises a controller 30 and a quantum processor 115. In various embodiments, the quantum processor 115 comprises a quantum object confinement device 70 surrounded by a cryogenic chamber and / or a vacuum chamber 40, one or more voltage sources 50, one or more operating sources 60, one or more magnetic field generators, one or more photodetectors, one or more sensors, and the like.
[0080] The exemplary hybrid quantum classical computing environment 100 shown in the figure comprises, according to one exemplary embodiment, a quantum object confinement device 70 (e.g., an ion trap, a surface trap, a pole trap, etc.). For example, the quantum object confinement device 70 is configured to confine one or more quantum objects. For example, the quantum object may be a neutral or ionic atom, a neutral, ionic, or multipolar molecule, a quantum dot, or other quantum object having a confinable and manipulable quantum state. In various embodiments, the quantum object is used as a qubit in a quantum processor 115. Several non-exclusive exemplary quantum object confinement devices (also referred herein as atomic object confinement devices and / or confinement devices) are described in 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 entirety.
[0081] In one exemplary embodiment, one or more manipulators 60 comprise one or more lasers (e.g., optical lasers, microwave sources, etc.). In various embodiments, one or more manipulators 60 are configured to manipulate and / or induce controlled quantum state evolution of one or more quantum objects confined by the quantum object confinement device 70. For example, one or more manipulators 60 comprises each manipulator 60 configured to generate a respective manipulator signal and provide, by each beam path system 66 (e.g., 66A, 66B, 66C), at least in part to each target location defined by the quantum object confinement device 70. In one exemplary embodiment, at least some of the manipulator signals are laser beams, laser pulse trains, etc. For example, in an exemplary embodiment in which one or more manipulators 60 comprises one or more lasers, the lasers may, by each beam path system 66, provide one or more laser beams to the confinement device in the cryogenic chamber and / or vacuum chamber 40. The laser beam can be used to perform a variety of operations (e.g., parallel operations) such as defining one or more quantum gates on one or more qubits and / or quantum objects, co-cooling one or more quantum objects, reading qubits and / or determining the quantum state of a quantum object, and initializing a quantum object into qubit space. In various embodiments, the operation source 60 is controlled by each driver controller element 215 (see Figure 2) of the controller 30.
[0082] In various embodiments, the quantum computer 110 comprises one or more voltage sources 50. For example, the voltage sources 50 may comprise a plurality of direct current (DC) voltage drivers and / or voltage sources and / or at least one radio frequency (RF) driver and / or voltage source. In one exemplary embodiment, the voltage sources 50 may be electrically coupled to corresponding potential generating elements (e.g., electrodes) of the quantum object confinement device 70. For example, the voltage sources 50 are configured to supply an (RF) oscillating voltage signal to the RF rail electrodes of the quantum object confinement device 70. For example, the voltage sources 50 are configured to supply a control voltage signal to the control electrodes of the quantum object confinement device 70. In various embodiments, the voltage sources 50 are controlled by their respective driver controller elements 215 of the controller 30.
[0083] In various embodiments, the quantum computer 110 comprises one or more magnetic field generators. For example, the magnetic field generators may be internal magnetic field generators located within the low-temperature and / or vacuum chamber 40 and / or external magnetic field generators located outside the low-temperature 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 a magnetic field in one or more regions of the quantum object confinement device 70 having a specific magnitude and a specific magnetic field direction. In one exemplary embodiment, the specific magnitude is in the range of 2 to 5 gauss. In one exemplary embodiment, the operation of one or more magnetic field generators is controlled by the controller 30 (for example, via each driver controller element 215). In one exemplary embodiment, at least one of the magnetic field generators is a permanent magnet and is therefore not controlled by the controller 30.
[0084] In various embodiments, the classical computing entity 10 is configured to allow a user to provide input to the quantum computer 110 (for example, through the user interface of the computing entity 10), receive and view output from the quantum computer 110, and so on. The computing entity 10 may communicate with the controller 30 of the quantum computer 110 via one or more wired or wireless networks 20, and / or via direct wired and / or wireless communication. In one exemplary embodiment, the computing entity 10 may translate, configure, and format information / data, quantum circuits, quantum computing algorithms, etc., into computing languages, executable instructions, command sets, etc., that the controller 30 can understand and / or implement. In various embodiments, the classical computing entity 10 is configured to allow a user to program quantum assembly (QASM) and / or quantum intermediate representation (QIR) code, which is compiled to generate executable instructions executed by the real-time engine of the controller 30. In various embodiments, the classical computing entity 10 is configured to allow a user to program classical algorithms, which are compiled into web assembly (WASM) executable program code for execution by the classical computing engine, for example. In one exemplary embodiment, the classical computing engine is part of the processing device 205 of the controller 30. In another exemplary embodiment, the classical computing engine is part of the processing device 808 (see Figure 8) of the classical computing entity 10.
[0085] In various embodiments, compiling classical algorithms into WASM executable program code enables a sandboxed implementation of the classical algorithms. For example, a user can be prevented from executing program code that could negatively impact hardware or perform any kind of attack against the security of a hybrid quantum classical computing environment. Furthermore, compiling classical algorithms into WASM executable program code provides a portable program representation format for the program code that is independent of any particular processor or central processing unit (CPU). This allows users to program in different languages and does not have to worry about what kind of hardware will execute the program code. Moreover, WASM is low-level, assembled for high-performance execution, and therefore provides program code in an easy-to-transmit and execute format that performs well for time-dependent applications such as quantum error correction (QEC).
[0086] In various embodiments, the controller 30 is configured to control a voltage source 50, a cryogenic system and / or vacuum system that controls the temperature and pressure within the cryogenic chamber and / or vacuum chamber 40, a manipulator 60, a magnetic field generator, and / or other systems that control various environmental conditions (e.g., temperature, pressure, etc.) within the cryogenic chamber and / or vacuum chamber 40, and / or to manipulate and / or induce a controlled evolution of the quantum states of one or more quantum objects confined by the quantum object confinement device 70. For example, the controller 30 may induce a controlled evolution of the quantum states of one or more quantum objects within the quantum object confinement device 70 to execute quantum circuits and / or algorithms.
[0087] III. Exemplary Controllers In various embodiments, the quantum computer 110 includes a controller 30 configured to control various elements and / or components of the quantum computer 110. For example, the controller 30 includes one or more processing devices 205 configured to execute executable instructions for controlling the operation of one or more driver controller elements 215. One or more driver controller elements 215 are configured to control the operation of their respective voltage sources 50, manipulators 60, cryogenic and / or vacuum system components, magnetic field generators, etc. For example, the controller 30 may be configured to control the voltage source 50, the cryogenic and / or vacuum system that controls the temperature and pressure in the cryogenic chamber and / or vacuum chamber 40, the manipulators 60, the magnetic field generator, and / or other systems that control environmental conditions (e.g., temperature, humidity, pressure, etc.) in the cryogenic chamber and / or vacuum chamber 40, and / or to manipulate and / or induce the controlled evolution of the quantum state of one or more quantum objects confined by the quantum object confinement device 70.
[0088] As shown in Figure 2, in various embodiments, the 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, and so on. For example, the processing elements and / or devices 205 comprise one or more real-time engines and / or classical computing engines. For example, the processing elements and / or devices 205 may comprise programmable logic devices (CPLDs), microprocessors, co-processing 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. For example, the real-time engine (RTE) 310 and / or classical computing engine (CCE) 320 (see Figure 3) may comprise a CPLD, a microprocessor, a compressed entity, an ASIC, an FPGA, a PLA, and / or other processing devices and / or circuit configurations. The term "circuit configuration" can refer to an entire hardware embodiment or a combination of hardware and computer program products. In one exemplary embodiment, the processing elements and / or device 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, the processing element and / or device 205 is configured to execute executable instructions causing the driver controller element 215 to control the operation of its respective driver so that the quantum processor 115 executes the quantum circuit. In various embodiments, the execution of the quantum circuit includes generating one or more classical function calls and receiving the corresponding classical call responses, and / or is performed based on the reception of quantum function calls.
[0090] For example, memory 210 may comprise non-temporary memory such as volatile and / or non-volatile storage, such as one or more of the following: 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, etc. In various embodiments, the memory 210 may store one or more functional representations of qubit records, operation signal power, frequency, duration, and / or combinations thereof, corresponding to qubits of a quantum computer (e.g., in a qubit record datastore, qubit record database, qubit record table, etc.), in accordance with input signals (e.g., input signal parameter values) given to a modulator configured to adjust one or more waveform series to form a control voltage signal for controlling the transport of atomic objects along a one-dimensional trapping region and through junctions connecting the one-dimensional trapping region and associated metadata, etc., respectively. In one exemplary embodiment, the qubit record corresponding to each qubit tracks the phase of each qubit, any AC Stark shifts applied to it, the results of any software gates on the qubit's phase, etc.In one exemplary embodiment, the execution of at least a portion of computer program code stored in memory 210 (for example, by a processing element and / or device 205) causes the controller 30 to perform one or more steps, operations, processes, procedures, etc., described herein, for tracking the phase, location, etc., of a quantum object and / or a multi-quantum object crystal confined by the confinement device 70, and for causing the phase adjustment of one or more operating sources 60 and / or signals generated thereby.
[0091] In various embodiments, the 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, the driver controller element 215 may comprise drivers and / or driver controllers. 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 the controller 30 (e.g., by the processing element and / or device 205). In various embodiments, the driver controller element 215 may enable the controller 30 to operate an operating source 60, a voltage source 50, a magnetic field generator, etc. In various embodiments, the drivers may be laser drivers, vacuum component drivers, drivers 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 the quantum object confinement device 70, maintain and / or control the trapping potential of the quantum object confinement device 70, and / or cause the transport of one or more quantum objects, cryogenic and / or vacuum system component drivers, etc. For example, the driver may control and / or include a DC and / or RF voltage driver and / or voltage source 50 that supply voltage and / or electrical signals (e.g., oscillating voltage signals and / or control voltage signals) to potential generating elements (e.g., electrodes) of the confinement device 70.
[0092] In various embodiments, the controller 30 includes means for communicating and / or receiving signals from one or more optical receiver components, such as a photodetector, camera, MEMS camera, CCD camera, photodiode, photomultiplier tube, or sensor, of an optics collection system configured to capture, detect, and measure optical signals generated by quantum objects confined by a quantum object confinement device 70. For example, the controller 30 may include 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, the controller 30 may include a communication interface 220 for interfaceing with and / or communicating with the computing entity 10. For example, the controller 30 may include a communication interface 220 for receiving executable instructions, command sets, etc., from the computing entity 10 and for providing the computing entity 10 with outputs received from the quantum computer 110 (e.g., from an optical collection system) and / or the results of processing those outputs. In various embodiments, the computing entity 10 and the controller 30 may communicate directly via wired and / or wireless connections and / or via one or more wired and / or wireless networks 20.
[0094] In various embodiments, as shown in Figure 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, in one exemplary embodiment, the RTEs 310 and CCEs 320 communicate with each other via a bus network 315. In various embodiments, each RTE 310 and CCE 320 comprises and / or is associated with its respective memory 210. For example, in various embodiments, each RTE 310 and / or CCE 320 is its 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 (for example, by a hardware-specific compiler) of the device function library (DFL) program code into real-time (RT) binaries and / or machine-level executable instructions. One or more RTEs execute the RT binaries and / or machine-level executable instructions in a time-synchronous manner to cause the driver controller element 215 to control the operation of each driver. For example, the operation of each driver is controlled so that a voltage source 50, an operation source 60, and / or other quantum processor 115 components cause the quantum processor 115 to perform various operations (e.g., execution of a single qubit gate, execution of two qubit gates, initialization of a quantum object into qubit space, execution of qubit read and / or measurement operations, transport of qubits between target locations defined by the confinement device 70, etc.).
[0096] IV. Exemplary Data Flow Figure 4 provides a data flow diagram illustrating the generation process through the execution of executable instructions by the RTE310 and program code by the CCE320. In various embodiments, several steps of the generation of executable instructions and program code are performed during a preparation period 410, which occurs prior to the execution of a quantum algorithm or circuit by the quantum computer 110, or prior to the execution of a classical algorithm by the CCE of the classical computing entity 10 (e.g., processing elements and / or devices 808) and / or the CCE320 of the controller 30. In various embodiments, executable instructions are compiled in real time into RT binaries and / or machine-level executable instructions, and / or during the execution of quantum algorithms and / or circuits by the quantum computer 110.
[0097] For example, a user may interact with the user interface of a 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 the 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 atomic quantum computers, etc.).
[0098] In various embodiments, a user may interact with the user interface of the classical computing entity 10 to prepare, write, or program a classical computation algorithm 414. In various embodiments, the classical computation algorithm may be written in various programming languages (e.g., C or its variants, Python, Rust, Perl, Javascript, etc.). In various embodiments, the classical computation algorithm 414 is prepared, written, or programmed to cause the CCE320 to execute a desired classical function or algorithm.
[0099] In various embodiments, quantum circuits 412 and classical computation algorithms 414 written in a quantum programming language are prepared, written, and / or programmed to include their 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, classical function calls, classical call responses, quantum function calls, and / or quantum call responses are programmed according to an Intercomponent Communication (ICC) standard. For example, classical function calls, classical call responses, quantum function calls, and / or quantum call responses are programmed using ICC semantics. In various embodiments, wire packet coding is used for classical function call, classical call response, quantum function call, 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 coding used is configured to reduce and / or minimize communication stack processing latency. For example, a 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, quantum circuits and classical computation algorithms are prepared, written, and / or programmed to use standardized calling conventions such that the quantum circuits and classical computation algorithms communicate with each other during their execution by the RTE310 and CCE320.
[0100] In various embodiments, the classical computation 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 computation algorithm, prepared, written, and / or programmed in a user-selected classical programming language, into a compiled classical computation algorithm 418 in the format of web assembly (WASM) program code. For example, the compiled classical computation algorithm 418 is in the form of an executable file that can be executed by the CCE320. The compiled classical computation algorithm 418 is given and stored in memory accessible to the CCE320. For example, when the CCE is part of a processing element and / or device 808 of a classical computing entity 10, the compiled classical computation algorithm 418 is stored in the memories 822, 824 of the classical computing entity 10. When the CCE320 is part of a controller 30, the compiled classical computation algorithm 418 is given by the classical computing entity 10 (for example, 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 the memory 210 associated with the CCE 320. The CCE 320 executes the program code of the compiled classical computation algorithm 418 (e.g., WASM program code) in response to the user interface of the classical computing entity 10 and the user's interaction to trigger its execution, or in response to the CCE receiving a classical function call (e.g., during the execution of a quantum circuit by a quantum computer).
[0101] In various embodiments, a quantum circuit 412 written in a quantum programming language is compiled into DFL program code 424 by a quantum programming language compiler 422. In various embodiments, DFL is a low-level program format representing 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 hardware-specific operations (e.g., basic operations specific to the quantum processor 115) being identified and aggregated, so that the resulting DFL program code 424 includes a sequence of fundamental operations specific to the quantum processor 115, causing the quantum circuit to be executed by the quantum processor 115. In other words, compiling a quantum circuit 412 written in a quantum programming language into DFL program code 424 results in compiling a hardware-independent quantum circuit into hardware (e.g., quantum processor 115) specific program code.
[0102] In various embodiments, a quantum programming language compiler 422 is running on a classical computing entity 10, which provides a DFL 424 to a controller 30 for reception (for example, by transmitting it over one or more wired and / or wireless networks 20). 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 a 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, a quantum circuit 412 written in a quantum programming language (e.g., QASM, QIR, etc.) is 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 a particular qubit at a particular time, used as part of the transport, as well as operations on a qubit or a set / string of qubits (e.g., splitting, concatenation). For example, the quantum programming language compiler 422 translates the hardware-independent quantum circuit 412 in the quantum programming language into a sequence of physical processes to be executed for a quantum circuit and / or algorithm on a particular quantum computer.
[0104] The hardware-specific compiler 426 compiles the DFL424 into RT binaries and / or machine-level code 430 that are specific to the quantum computer 110. For example, the RT binaries and / or machine-level code 430 include executable instructions, which, when executed by the respective RTE310, cause the RTE310 to control the operation of the respective voltage sources 50, the operation sources 60, and / or other components of the quantum processor 115, causing the quantum processor to execute quantum circuits.
[0105] In one exemplary embodiment, compilation of the DFL424 by the hardware-specific compiler 426 generates control signal sequence instructions 428, which are provided to each driver controller element 215 configured to control the operation of each voltage source 50.
[0106] In various embodiments, the hardware-specific compiler 426 compiles the DFL424 in real time with the execution of the quantum circuit by the quantum computer 110. For example, the executable instructions of the compiled RT binary and / or machine-level code 430 may be given directly to each RTE310 for execution during the execution of the quantum circuit. For example, the hardware-specific compiler 426 may modify parameters that control which parts of the quantum circuit are executed, when and how many times parts of the quantum circuit are executed, and how the operation is performed, based on the contents of the classical call response and / or other inputs received during the execution of the quantum circuit.
[0107] For example, when compiling a quantum program for execution on one or more RTE310s, the compiler (e.g., the quantum programming language compiler 422 and / or the hardware-specific compiler 426) ensures that function calls in the quantum program (e.g., the DFL program code 424 and / or the RT binary 430) correspond to functions defined in the classical program. For example, the classical language compiler 416 and the quantum programming language compiler 422 and / or the hardware-specific compiler 426 may be aware of each other and / or communicate with each other and / or with one or more common libraries, thereby ensuring that the functions called by quantum function calls and / or classical function calls are functions defined for the corresponding engine (e.g., RTE310, CCE320).
[0108] In various embodiments, the RT binary 430 includes specific segments to indicate what a classical function call is, using metadata and / or other techniques. For example, the RTE 310 generates a classical function call containing the function name and its arguments, and then encodes the payload of the classical function call into a packet. The packet is then sent to the CCE 320 via the bus network 315. The CCE 320 receives the packet encoding the classical function call, parses the packet, and determines which function to call and execute.
[0109] Figure 5 shows an exemplary data flow of interaction between RTE310 and CCE320 during the execution of a quantum circuit. For example, sender RTE310A executes an executable instruction (e.g., in the form of an RT binary and / or machine-level instruction) which causes sender RTE310A to generate and provide a classical function call 510. In various embodiments, the classical function call 510 indicates a particular classical function to be called and includes quantum measurement information. In various embodiments, the controller 30 determines the quantum measurement information by reading and / or measuring the quantum state of one or more qubits of the quantum processor 115. For example, the quantum measurement information may be a string of bits indicating the result of a syndrome measurement.
[0110] The CCE320 executes program code (e.g., a compiled classical computation algorithm 418) represented by classical function calls that use quantum measurement information as input. The CCE320 generates an output through the execution of the program code (e.g., a compiled classical computation algorithm 418) represented by classical function calls, at least in part, based on the quantum measurement information provided as input. The CCE320 generates a classical call response 520 (e.g., 520A, 520B) containing the output and / or its indication. In various embodiments, the output and / or its indication may be a single bit, a bit string, an integer, a floating string, etc.
[0111] The CCE provides a classical call response 520 so that one or more RTEs 310 receive the classical call response 520. For example, a classical function call 510 may include an instruction that which RTE 310 of the controller 30 is the receiving RTE 310B for a 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 one exemplary embodiment, the CCE 320 may also provide an instance of the classical call response 520A to the sending RTE 310A that gave the classical function call 510.
[0112] In various embodiments, the classical call response 520 is a packet containing classical data (in embodiments where the response returns data). For example, if the classical call invokes a QEC decoder, the classical call response 520 may include corrections.
[0113] In some instances, a classical call response may not prompt another classical call response, and the RTE310 may continue without receiving a classical call response. For example, in some instances, the CCE320 may accumulate multiple instances of classical data provided by each classical call response. For example, the RTE310 may provide multiple syndrome measurements from multiple classical function calls. The CCE320 then uses the multiple syndrome measurements analyzed for the multiple classical function calls to execute a classical (decoder) function. One or more determined corrections may then be provided by one or more classical call responses.
[0114] RTE310A, 310B can then swap the time count sync value 530 to ensure that RTE310A, 310B remain synchronized and / or continue operating in a time-synchronous manner.
[0115] In various embodiments, the CCE320 does not operate in a time-synchronous manner with respect to the RTE310. In various embodiments, communication between RTE310s is synchronous, while communication between RTE310s and the CCE320 is asynchronous.
[0116] In various embodiments, the time between the provision of the classical function call 510 by the sending RTE310A and the reception of the classical call response 520 by the receiving RTE310B is less than the coherence time of the qubits in the quantum processor. The coherence time of a qubit is the time during which the qubit can retain stored quantum information. In one exemplary embodiment, for example, in an embodiment 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 the provision of the classical function call 510 by the sending RTE310A and the reception of the classical call response 520 by the receiving RTE310B may be less than, equal to, or greater than the coherence time of the qubits in the quantum processor.
[0117] V. Exemplary execution of a quantum algorithm or circuit involving classical function calls. Figure 6A shows various processes, procedures, and operations performed by one or more RTE310 of the controller 30 to cause a quantum computer to execute a quantum algorithm or circuit that includes classical function calls. Figure 6B shows various processes, procedures, and operations 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 CCE320 which is part of the controller 30, or it may be a computing entity 10 that communicates with the controller 30.
[0118] Beginning in step 602 of Figure 6A, one or more RTEs 310 cause the quantum processor to begin executing a quantum algorithm or circuit. For example, each RTE 310 executes an executable instruction, which in turn causes each RTE 310 to control its respective driver controller element 215 to cause the quantum processor to confine each quantum object to its respective location defined by the confinement device 70, transport each quantum object to its respective location defined by the confinement device 70, and initialize the quantum object in qubit space. For example, the execution of each executable instruction by each RTE 310 causes the RTE to control its respective driver controller element 215, which in turn causes the quantum computer 110 to perform desired operations such as the voltage source 50 and the operation source 60.
[0119] In step 604, as part of executing a quantum algorithm or circuit, one or more RTE310s cause one or more quantum measurements to be taken. For example, one or more RTE310s may cause a 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, an RTE310 may control the operation of an operation source 60 to project an operation signal (e.g., a laser beam) to each location at least partially defined by the confinement device 70 such that the operation signal is projected onto a quantum object located at each location. The photodetector provides a signal to the controller 30 (e.g., via the AD converter element 225) indicating whether the quantum object has fluoresced in response to the operation signal being projected onto it. Based on the signal provided by the photodetector, one or more RTE310s determine the quantum state of the quantum object. In one exemplary embodiment, the quantum measurement information includes an indication of the determined quantum state of the quantum object. In one exemplary embodiment, quantum measurement information includes indications of the determined quantum states of each of a plurality of quantum objects.
[0120] In step 606, one or more sending RTE310A of RTE310 generates and provides a classical function call 510. For example, RTE310 executes an executable instruction causing RTE310 to generate a classical function call 510 which includes an instruction for a classical function to be executed, quantum measurement information, and optionally a receiving RTE310B to which the resulting classical call response 520B should be given. In one exemplary embodiment, sending RTE310A sends the classical function call 510 over the bus network 315 so that CCE320 receives the classical function call 510.
[0121] In step 612 of Figure 6B, the CCE320 receives a classical function call 510. Based on the classical function call 510, the CCE320 accesses a compiled classical computation algorithm 418 from the memory associated with the CCE320. In one exemplary embodiment, the CCE320 extracts quantum measurement information from the classical function call 510.
[0122] In step 614, the CCE320 executes the program code of the compiled classical computation algorithm 418 to cause the CCE320 to execute a classical algorithm or function based at least partially on the quantum measurement information. For example, the CCE320 executes the program code of the compiled classical computation algorithm 418 and provides the quantum measurement information as input. By executing the program code, the CCE320 produces an output or result.
[0123] In step 616, the CCE320 generates a classical call response 520 containing the output or result (or instruction thereof) of the execution of a classical algorithm or function. The CCE320 then provides the classical call response 520 to one or more RTE310s. For example, the CCE320 provides the classical call response 520 to the receiving RTE310B and / or the sending RTE310A that provided the classical function call 510, as indicated in the classical function call 510. For example, the CCE320 provides the classical call response 520 via the bus network 315.
[0124] Returning to Figure 6A, in step 608, one or more RTEs 310 receive a classical call response 520. In one exemplary embodiment, one RTE 310 extracts the output and / or result (or instructions thereof) of the execution of a classical algorithm or function from the classical call response 520.
[0125] In step 610, one or more RTEs 310 control the operation of the quantum processor 115, at least in part, based on the classical call response 520. For example, the output and / or result (or instructions thereof) of the execution of a classical algorithm or function determines whether a condition is met, which part of the circuit should be executed next, how the circuit part should be executed, etc. For example, the classical algorithm or function may be a QEC decoder, and the output and / or result (or instructions thereof) of the execution of the classical algorithm or function may be one or more corrections that should be executed or tracked by the controller 30 to correct errors present during 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 iterate through the execution of the quantum circuit or a part thereof until the convergence requirement is met. After each iteration (or set of iterations) of the quantum circuit or part thereof, quantum measurement information is provided to a classical algorithm or function (e.g., by a classical function call), and the output or result given by the classical call response indicates whether the convergence requirements are met and the quantum computer should stop iterating over the quantum circuit or part thereof, or whether the convergence requirements are not met and the quantum computer should continue iterating over the quantum circuit or part thereof. In one exemplary embodiment, the classical algorithm or function determines the angle of rotation to be used in the execution of a particular quantum logic gate, and the RTE then controls one or more sources of operation 60 to execute the particular quantum logic gate at 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 given as input by the classical call response.
[0126] In various embodiments, during the execution of a quantum algorithm or circuit, one or more RTE310s generate and provide a plurality of classical function calls. In various embodiments, classical function calls and classical call responses are generated and provided during the operation of a quantum circuit (e.g., during the operation of a quantum processor). In various embodiments, classical function calls and classical call responses are generated and provided while the quantum processor is not operating. For example, classical function calls and classical call responses may be generated and provided during the execution (e.g., iterations or shots) of a quantum algorithm or circuit performed by the quantum processor.
[0127] VI. Exemplary execution of classical algorithms involving quantum function calls In various embodiments, the CCE320 of the classical computing entity 10 and / or controller 30 may execute quantum-assisted classical algorithms. 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 leverage the strength of the quantum computer so that the classical algorithm yields a result that is faster overall or has a lower computational cost.
[0128] Figure 7A shows various processes, procedures, and operations performed by at least one CCE to trigger the execution of a classical algorithm that includes quantum function calls. Figure 7B shows various processes, procedures, and operations performed by one or more RTE310 as part of the execution of a classical algorithm by the CCE, where the classical algorithm includes quantum function calls. In various embodiments, the CCE may be a CCE320 which is part of the controller 30, or it may be a computing entity 10 that communicates with the controller 30.
[0129] Beginning at step 702 in Figure 7A, at least one CCE executes the program code of the compiled classical computation algorithm 418 to cause the CCE to start 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 it to generate a quantum function call, which includes an instruction for a quantum function to be executed 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. One or more quantum function inputs may include information about the atom or molecule, the set of electron orbitals of interest, and / or specific conditions. For example, the quantum function inputs may correspond to a Hamiltonian describing the physical system of interest. In another exemplary embodiment, the quantum function is configured to determine the prime factorization of a number, and one or more quantum function inputs include the number to be factorized. As should be understood, various quantum functions may be invoked by the quantum function call, and one or more quantum function inputs may be tailored to a particular quantum function to be invoked. For example, when the CCE is part of a classical computing entity 10, the CCE provides quantum function calls via the classical computing entity's network interface 820.
[0131] In step 712 of Figure 7B, one or more RTE310s receive a quantum function call. For example, one or more RTE310s may receive a quantum function call via the controller's communication interface 220. Based on the quantum function call, in one exemplary embodiment, the RTE310 accesses the DFL424 and begins compiling the DFL424 using a real-time, hardware-specific compiler 426.
[0132] In step 714, one or more RTE310s control the operation of the voltage source 50, the 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 a quantum function, 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 based thereon. For example, one or more RTEs 310 may cause a 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, an RTE 310 may control the operation of an operation source 60 to project an operation signal (e.g., a laser beam) to each location at least partially defined by the confinement device 70 such that the operation signal is projected onto a quantum object located at each location. The photodetector provides a signal to the controller 30 (e.g., via the AD converter element 225) indicating whether the quantum object has fluoresced in response to the operation signal being projected onto it. Based on the signal provided by the photodetector, one or more RTEs 310 determine the quantum state of the quantum object. In one exemplary embodiment, the quantum measurement information includes an indication of the determined quantum state of the quantum object. In one exemplary embodiment, the quantum measurement information includes indications of the determined quantum states of several quantum objects. For example, the quantum measurement information gives the result or output of a quantum function.
[0134] In step 718, at least one of the one or more RTE310s generates a quantum call response containing quantum measurement information. The RTE310 provides the quantum call response so that the CCE can receive the quantum call response. For example, in one exemplary embodiment, the RTE310 may cause the communication interface 220 to provide the quantum call response so that the CCE of the classical computing entity 10 can receive the quantum call response.
[0135] Returning to Figure 7A, in step 706, the CCE receives the quantum call response. In one exemplary embodiment, the CCE receives the quantum call response via the network interface 820 of the classical computing entity 10. In one exemplary embodiment, the CCE extracts the output and / or result (or instructions thereof) of the execution of the quantum function from the quantum call response. For example, the CCE may extract quantum measurement information from the quantum call response.
[0136] In step 708, the CCE continues to execute the classical algorithm, at least partially based on the output and / or result of the execution of the quantum function (e.g., quantum measurement information). For example, the CCE is given the output and / or result of the execution of the quantum function (e.g., quantum measurement information) as input, which is used as the CCE continues to execute the program code of the compiled classical computation algorithm 418.
[0137] In various embodiments, multiple quantum function calls are generated and given by the CCE during the execution of a classical algorithm.
[0138] VII. Technical Advantages The controller of a quantum computer includes one or more real-time engines configured to execute compiled executable instructions that trigger real-time control of various components of the quantum processor. For example, the execution of executable instructions by one or more real-time engines causes one or more real-time engines to control the operation of one or more laser drivers, one or more voltage source drivers, one or more active optical components (e.g., modulators), magnetic field sources, vacuum drivers, cooling system drivers, etc., causing the quantum processor to perform one or more operations on one or more qubits and / or control the environment through which one or more qubits pass. To properly time the execution of the various operations performed by the lasers and voltage sources, for example, 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 onto a target location at the same time. Therefore, the operation of the two laser drivers must be performed (by one or more real-time engines) in a time-synchronized manner.
[0139] However, given the required speed and time synchronization scheme for a real-time engine to operate, it is not configured for dynamic memory allocation or for executing more complex algorithms that may take longer 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 could enable a quantum computer to operate more efficiently and correct / mitigate errors, etc. Therefore, there are technical problems in the field of quantum computer controllers.
[0140] Furthermore, some algorithms or sub-algorithms cannot be efficiently performed by classical computers. For example, factorizing large numbers into prime factors is a difficult problem for classical computers. However, some of these problems that are difficult for classical computers should be able to be efficiently performed by quantum computers. Therefore, there is a technical challenge regarding how to utilize the capabilities 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 the real-time engine of a quantum computer controller to communicate with a classical computing engine so 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 containing quantum measurement information and to provide the classical function call to the classical computing engine. The classical computing engine may execute the classical function corresponding to the classical function call, at least in part on the quantum measurement information, and provide a classical call response containing the result of the execution of the classical function. The real-time engine receives the classical call response and may control the quantum processor, 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., which causes the classical computing engine to generate and provide quantum function calls. The controller's real-time engine receives the quantum function call and, based on it, causes the quantum processor to execute a quantum algorithm and / or circuit. The controller determines quantum measurement information based on the execution of quantum algorithms and / or circuits and provides a quantum call response containing 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 contained in the quantum call response. Thus, various embodiments enhance the capabilities of quantum computers and / or classical computers.
[0142] VIII. Exemplary Computing Entities Figure 8 provides an exemplary schematic diagram representing 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 allow a user to provide input to a quantum computer 110 (for example, through the user interface of the computing entity 10), receive, display, and analyze outputs from the quantum computer 110, and so on. For example, a user may interact with the user interface of the classical computing entity 10 to program and / or write quantum circuits in a quantum programming language and / or classical computing algorithms. For example, a quantum circuit 412 written in a quantum programming language may be compiled to a DFL 424 (for example by a quantum programming language compiler 422), and the DFL 424 is compiled to RT binaries and / or machine-level code 430 (for example by a hardware-specific compiler 426 running on the classical computing entity 10 and / or RTE 310) for execution by one or more RTE 310s. For example, a classical computation algorithm 414 may be compiled into compiled classical computation algorithm 418 program code (for example, by a classical language compiler 416). For example, the compiled classical computation algorithm 418 program code is, in one exemplary embodiment, WASM program code and / or executable instructions.
[0143] In various embodiments, the classical computing entity 10 comprises semiconductor-based processing resources and memory. As shown in Figure 8, the 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 and receive signals to the transmitter 804 and receiver 806, respectively. The signals provided to and received by the transmitter 804 and receiver 806 may include signaling information / data according to applicable wireless system air interface standards for communicating with various entities, such as a controller 30 and other computing entities 10. In this regard, the computing entity 10 may be able to operate 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 wired data transmission protocols such as Fiber Optic Distributed Data Interface (FDDI), Digital Subscriber Line (DSL), Ethernet, Asynchronous Transfer Mode (ATM), Frame Relay, Data Services Interface Standard over Cable (DOCSIS), or any other wired transmission protocol.Similarly, computing entity 10 supports General-Purpose Packet Radio Services (GPRS), Universal Mobile Communications System (UMTS), Code Division Multiple Access 2000 (CDMA2000), and CDMA2000. It can be configured to communicate over a wireless external communication network using any of the following protocols: 1X (1xRTT), Wideband Code Division Multiple Access (WCDMA®), Wide Area Mobile Communication System (GSM), Enhanced Data Rate for GSM Evolution (EDGE), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Long-Term Evolution (LTE), Evolutionary Universal Terrestrial Radio Access Network (E-UTRAN), Evolution Data Optimization (EVDO), High-Speed Packet Access (HSPA), High-Speed Downlink Packet Access (HSDPA), IEEE 802.11 (Wi-Fi), Wi-Fi Direct, 802.16 (WiMAX), Ultra-Wideband (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), Transmit Control Protocol (TCP), User Datagram Protocol (UDP), Datagram Congestion Control Protocol (DCCP), Stream Control Transmission Protocol (SCTP), Hypertext Markup Language (HTML), and others.
[0144] These communication standards and protocols allow the computing entity 10 to communicate with various other entities using concepts such as unstructured add-on 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). The computing entity 10 can also download changes, add-ons, and updates to, for example, its firmware, software (including executable instructions, applications, and program modules), and operating system. In various embodiments, the classical computing entity 10 includes a network interface 820 configured to communicate over one or more wired and / or wireless networks 20.
[0145] The computing entity 10 may also include a user interface device comprising one or more user input / output interfaces (for example, a display 816 and / or speaker / speaker driver coupled to the processing element and / or device 808, as well as a touchscreen, keyboard, mouse, and / or microphone coupled to the processing element and / or device 808). For example, a user output interface may be configured to provide similar words used herein interchangeably, which run on and / or are accessible through one or more user input interfaces, for causing applications, browsers, user interfaces, interfaces, dashboards, screens, web pages, pages, and / or information / data to be displayed or audibly presented, and for interacting with it through one or more user input interfaces. A user input interface may comprise any of several devices that enable the 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, a reader, or other input device. In embodiments including a keypad 818, the keypad 818 may include (or trigger the display of) conventional numeric keys (0-9) and associated keys (#, *), as well as other keys used to operate the computing entity 10, and may include a set of keys that can be activated to give a full set of alphabetic keys or a full set of alphanumeric keys. In addition to giving input, the user input interface can be used to activate or deactivate several functions, such as a screen saver and / or sleep mode. Through such input, the computing entity 10 can collect information / data, user interaction / input, etc.
[0146] The 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, register memory, etc. The volatile and non-volatile storage or memory can store databases, database instances, database management system entities, data, applications, programs, program modules, scripts, source code, object code, bytecode, compiled code, interpreter-type code, machine code, executable instructions, etc., in order to implement the functions of the computing entity 10.
[0147] IX. Conclusion Many modifications and other embodiments of the present invention described herein will be apparent to those skilled in the art, benefiting from the teachings presented in the above description and accompanying drawings. Therefore, it should be understood that the present invention is not limited to the specific embodiments disclosed, and that modifications and other embodiments are intended to be included in the appended claims. Certain terms are used herein, but they are used in a general and descriptive sense only, and not for limiting purposes. [Explanation of Symbols]
[0148] 10 Classical Computing Entities 20 Wired / Wireless Networks 30 controllers 40 Cryogenic chamber and / or vacuum chamber 50 Voltage source 60 Operation source 66 Beampath System 70 Quantum Object Confinement Device 110 Quantum Computers 115 Quantum Processors 205 Processing devices, processing elements 210 memory 215 Driver Controller Elements 220 Communication Interfaces 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 devices, processing elements 812 Antenna 816 displays 818 Keypad 820 Network Interfaces 822 Volatile storage or memory 824 Non-volatile storage or memory
Claims
1. A method carried out by one or more real-time engines of a quantum computer, wherein the quantum computer comprises a controller having one or more real-time engines communicating with at least one classical computing engine, and a quantum processor, wherein the controller is configured to control the operation of one or more components of the quantum processor, and the method is The steps include providing quantum measurement information to at least one classical computing engine by calling a classical function, The steps include receiving a classical call response that includes instructions for the result determined by the execution of the classical function by the classical computing engine, at least in part, based on the classical function call; A step of controlling the operation of one or more components of the quantum processor, at least in part, based on the results described above. Includes, The controller further comprises one or more voltage source drivers and one or more laser drivers, or communicates with them, and the step of controlling the operation of one or more components of the quantum processor includes the step of controlling the operation of at least one of the one or more voltage source drivers and the step of controlling the operation of one or more laser drivers. A method for achieving desired relative timing of operations performed by lasers controlled by the operation of one or more laser drivers and voltage sources controlled by the operation of one or more voltage source drivers, wherein the communication between the one or more real-time engines and the at least one classical computing engine is asynchronous, the one or more real-time engines comprise two or more real-time engines, and the communication between the two or more real-time engines is synchronous.
2. A method carried out by one or more real-time engines of a quantum computer, the quantum computer comprising a controller having one or more real-time engines communicating with at least one classical computing engine, and a quantum processor, wherein the controller is configured to control the operation of one or more components of the quantum processor, and the method is The steps include providing quantum measurement information to at least one classical computing engine by calling a classical function, The steps include receiving a classical call response that includes instructions for the result determined by the execution of the classical function by the classical computing engine, at least in part, based on the classical function call; A step of controlling the operation of one or more components of the quantum processor, at least in part, based on the results described above. Includes, A method wherein one or more quantum measurements are syndrome measurements, and the classical function is a quantum error correction (QEC) decoder.
3. A method carried out by one or more real-time engines of a quantum computer, the quantum computer comprising a controller having one or more real-time engines communicating with at least one classical computing engine, and a quantum processor, wherein the controller is configured to control the operation of one or more components of the quantum processor, and the method is The steps include providing quantum measurement information to at least one classical computing engine by calling a classical function, The steps include receiving a classical call response that includes instructions for the result determined by the execution of the classical function by the classical computing engine, at least in part, based on the classical function call; A step of controlling the operation of one or more components of the quantum processor, at least in part, based on the results described above. Includes, The step of controlling the operation of one or more components of the quantum processor based at least in part on the classical call response is: (a) A step of selecting the quantum circuit portion to be executed, (b) The step of adjusting one or more quantum gates, (c) A step of determining the number of times the quantum circuit portion is executed based on the classical call response. A method that includes at least one of the following.