Asynchronous quantum information processing

By using an asynchronous method to execute quantum programs in parallel with multiple parameter sets during communication between the quantum processor and the classical computing unit, the inefficiency of the quantum processing unit (QPU) caused by stall time in the existing technology is solved, and more efficient and flexible quantum algorithm execution is achieved.

CN115836303BActive Publication Date: 2026-04-03GOLDMAN SACHS & CO LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-19
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

Existing quantum algorithms suffer from lag time in communication between quantum processors and classical computing units, resulting in low QPU utilization and underutilization of resources.

Method used

An asynchronous approach is adopted, in which quantum programs are executed in parallel through multiple parameter sets. The controller updates parameters in real time and immediately utilizes the QPU results, reducing or eliminating lag time and achieving efficient parallel operation of the QPU.

Benefits of technology

It improves the efficiency of QPU utilization, reduces downtime, increases the number of results, provides solutions with higher confidence, and enables faster fulfillment of termination conditions and more flexible dynamic adjustments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115836303B_ABST
    Figure CN115836303B_ABST
Patent Text Reader

Abstract

Implementing an asynchronous approach to quantum algorithms can reduce the stall time of a quantum information processing unit (QIPU). A controller determines multiple sets of parameters for a quantum program, and the QIPU is commanded to execute the quantum program against these parameter sets. The result of each program execution is returned to the controller. After one or more results are received, the controller determines an updated set of parameters, while the QIPU continues executing the quantum program against the remaining set of parameters. The QIPU is commanded to execute the quantum program against the updated set of parameters (e.g., immediately, after the current program execution, or after the remaining set of parameters has been processed). This asynchronous approach can result in little or no stall time for the QIPU, and therefore allows for more efficient use of the QIPU.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims priority to U.S. Provisional Patent Application Serial No. 63 / 014066 entitled “Asynchronous Quantum Information Processing”, filed April 22, 2020, pursuant to 35 U.S. SC §119(e), the entire contents of which are incorporated herein by reference. Technical Field

[0003] The described topic relates overall to quantum computing, and more specifically to asynchronous methods for quantum information processing. Background Technology

[0004] Quantum algorithms can include multiple quantum circuits linked together via classical computation. Therefore, modern quantum information processing can involve communication between quantum processors and other computing units, such as CPUs, GPUs, FPGAs, or other digital or analog processors. Fully quantum algorithms can perform hybrid execution between quantum processors and classical computation. Example hybrid algorithms include (i) variable quantum algorithms (such as variable quantum eigenvalue solvers, quantum approximation algorithms, or various quantum machine learning methods); (ii) quantum error correction; (iii) joint quantum learning and other applications. Summary of the Invention

[0005] A serial method for implementing a quantum algorithm may include a controller that computes a first set of parameters for a quantum program, and a quantum information processing unit (QIPU) that executes the quantum program using the first set of parameters (examples of QIPUs include quantum processing units (QPUs), quantum sensors, QPU networks, or quantum sensor networks). The controller receives the execution result and determines an updated set of parameters based on the result. The QIPU is then instructed to execute the quantum program using the updated set of parameters. This process may be repeated until a termination condition is met (e.g., solution convergence). While the updated set of parameters is determined, the QIPU may remain idle.

[0006] The embodiments relate to an asynchronous method for implementing quantum algorithms, in which the stall time of the QIPU is reduced or eliminated. Multiple parameter sets are determined for a quantum program, and the QIPU is commanded to execute the quantum program for each parameter set. Individual or aggregated results (e.g., expected values) from each program execution can be returned to the controller. After one or more results are received, the controller determines an updated parameter set while the QIPU continues to execute the quantum program for the remaining parameter sets. The QIPU is then commanded to execute the quantum program for the updated parameter set (e.g., immediately, after the current program execution, or after the remaining parameter sets have been processed). This asynchronous method results in the QIPU having little or no stall time, leading to more efficient use of the QIPU. Furthermore, by determining updated parameters as results are received from the QIPU and by adjusting the QIPU queue in real time, the asynchronous method is more flexible and dynamic than the serial method, which may result in faster fulfillment of termination conditions. Additionally, the asynchronous method can provide more results than the serial method because the QIPU is inherently probabilistic, thus leading to higher confidence results and solutions.

[0007] In one embodiment, the quantum processing system includes one or more (e.g., classical) controllers and a QIPU. The one or more controllers compute a series of initial parameter sets for a quantum program. The quantum program with the series of initial parameter sets is dispatched to a quantum processing queue. The QIPU uses the parameters of the first initial parameter set to evaluate a first expected value of the quantum program and broadcasts the first expected value to the one or more controllers. When the QIPU uses the parameters of a second initial parameter set to evaluate a second expected value of the quantum program, the one or more controllers compute a next parameter set based on the first initial parameter set and the first expected value. The next parameter set is dispatched to the quantum processing queue, and the QIPU uses the parameters of the next parameter set to evaluate a next expected value of the quantum program. Attached Figure Description

[0008] Figure 1A This is a block diagram illustrating a quantum processing system according to one embodiment.

[0009] Figure 1B This is a block diagram illustrating a quantum processing unit (QPU) according to one embodiment.

[0010] Figure 2 The illustration shows a hybrid quantum classical routine in Figure 1A Example execution on a quantum processing system.

[0011] Figure 3 It is a timeline of steps in a serial variational procedure that includes a large amount of unused QPU stagnation time.

[0012] Figure 4This is a timeline of steps in a serial variational procedure that includes the effective use of a QPU according to one embodiment.

[0013] Figure 5 The diagram illustrates the use of multiple control processors according to one embodiment, which deliver quantum programs and QPU sets (e.g., simultaneously) in parallel.

[0014] Figure 6 The illustration shows an embodiment. Figure 5 Asynchronous operations of the QPU set shown.

[0015] Figure 7 The illustration shows an embodiment. Figure 6 The example implementation of asynchronous QPU operations is shown.

[0016] Figure 8 The illustration shows an embodiment. Figures 5-7 The asynchronous method is applied to quantum sensor sets.

[0017] Figure 9 This is a flowchart illustrating an asynchronous method for quantum information processing according to one embodiment.

[0018] Figure 10 This is a flowchart illustrating another asynchronous method for quantum information processing according to one embodiment.

[0019] Figure 11 This is an example architecture of a classic computing system suitable for use as a controller, according to one embodiment. Detailed Implementation

[0020] Reference will now be made to several embodiments, examples of which are illustrated in the accompanying drawings. Where feasible, the same or similar reference numerals are used in the drawings to denote the same or similar functions. Although various specific embodiments have been described, those skilled in the art will recognize that alternative configurations can be used to implement the described methods.

[0021] Figure 1A An embodiment of a quantum processing system 100 is illustrated. In the illustrated embodiment, the quantum processing system 110 includes (e.g., classical) a controller 110 and a quantum processing unit (QPU) 120. As previously stated, a QPU is an example of a QIPU (therefore, Figure 1A The QPU 120 in the diagram can be replaced by a QIPU to illustrate a more general system 100. The controller 110 can be a classic computing system (regarding...). Figure 11(Further description follows). Although the controller 110 and QPU 120 are illustrated together, they may be physically separate devices (e.g., in a cloud architecture). In some embodiments, the quantum processing system 100 is a multi-mode system including both the QPU 120 and the quantum sensor. In other embodiments, the quantum processing system 100 includes different or additional elements (e.g., multiple QPUs 120). Additionally, the functionality may be distributed among the elements in a different manner than described.

[0022] Figure 1B This diagram illustrates a block diagram of a QPU 120 according to one embodiment. The QPU 120 includes any number of qubits (“qubits”) 150 and an associated qubit controller 140. The qubits 150 are two-level quantum mechanical systems. The qubits 150 can be in a first state, a second state, or a superposition of both states. Example physical implementations of qubits include superconducting qubits, ion traps, and photonic systems (e.g., photons in a waveguide). In some embodiments, the QPU 120 includes qubits as an addition to or alternative to the qubits 150. A qubit is a multi-level quantum mechanical system (e.g., a qubit) having more than two states. The qubit controller 140 is a module that controls the qubits 150. The qubit processor 140 can include a classical processor, such as a CPU, GPU, or FPGA. The qubit controller 140 can perform physical operations on the qubits 150 (e.g., it can perform quantum gate operations on the qubits 140). Figure 1B In the example, a separate qubit controller 140 is illustrated for each qubit 150; however, a qubit processor 150 may control multiple (e.g., all) qubits of the QPU 120, or multiple controllers 150 may control a single qubit. For example, a qubit controller 150 may be a separate processor, a parallel thread on the same processor, or some combination of both. In other embodiments, the QPU 120 includes different or additional elements. Additionally, the functionality may be distributed among the elements in a different manner than described.

[0023] Figure 2 The illustration depicts an example of executing a hybrid quantum-classical routine on a quantum processing system 100. A controller 210 generates 212 a quantum program that will be executed or processed by a QPU 230. The quantum program may include instructions or subroutines that will be executed by the QPU 230 (or a quantum sensor). In one example, the quantum program is a quantum circuit. In another example, it is an output or program measurement error symptom. The program can be mathematically represented in a quantum programming language or an intermediate representation such as QASM or Quil. Overall, the program can be represented by some parameter vector. Parameterization is then performed. A parameter vector encodes a set of parameters that influence the outcome of the quantum program when executed by the QPU 230. Example parameters include quantum gate parameters in a quantum circuit, the order of quantum gates in the quantum circuit, the gate type of the quantum circuit, or conditions on the program control flow graph. In the example of a variable quantum eigenfunction solver, such a parameterized program can be referred to as an ansatz. The generated program is then assigned to a single QPU 230.

[0024] QPU 230 executes a program to compute 234 results (e.g., quantum measurements). QPU 230 typically runs the program multiple times to accumulate statistics from probabilistic execution. After computing each 234 result, QPU 230 can evaluate whether a termination condition 235 is met, and if the termination condition is not met, it can trigger the computation of another result. For example, the program can be executed a fixed number of repetitions, or until some other termination condition is met. After the termination condition is met, the accumulated results (e.g., expected value) are returned 226 to controller 210. Controller 210 then (typically by evaluating some objective function) computes... The new value, or a completely new program, is sent to QPU 230, and the new program is dispatched to QPU 230. This hybrid loop between controller 210 and QPU 230 can continue indefinitely (as in the case of quantum error correction) or until certain convergence criteria are met (as in a variable quantum eigenfunction solver).

[0025] In variable quantum programming, quantum circuits are parameterized as unitary... Without loss of generality, we can assume that these variational procedures are initialized in the state |0> and measured computationally. The expected value of these variational procedures is Then, the programmer also defined the optimizer ζ, such that ζ Mapping the expected value, or a set of L expected values, to a new set of M parameter settings. For example, gradient descent and Nelder-Mead have L = M = 1. However, if we consider the computation of gradients in quantum circuits, such as using parameter shift rules, then M can be... In this scenario, two quantum circuits could be executed to compute the gradient for each parameter. However, in the most general setting, the optimizer can learn from (e.g., based on) the entire history of previously observed expected values ​​and output any number of parameter values ​​for evaluation.

[0026] In one embodiment, The set of M circuits is converted into a series of circuits that run sequentially. Furthermore, each iteration step t of the optimizer produces a new set of circuits. If the optimizer uses N CIf convergence occurs in a series of steps, then each iteration step will also be run sequentially, thus generating a total of MN. C A serial circuit is executed.

[0027] Once these new parameters Computed by the optimizer, these can be executed in parallel. For example, they can be executed in parallel on different QPU 120s, and their results can then be aggregated back to the optimizer. Depending on the structure of ζ, this parallel execution may be performed asynchronously in the form of asynchronous joint optimization. These types of joint learning methods can be used to train classic machine learning models using edge devices such as mobile phones. In one embodiment, QPU 120 is an edge computing resource. One possible challenge of this approach is that the QPUs may be non-uniform. Specifically, their noise characteristics may vary, and therefore training a variational quantum procedure across multiple QPUs can improve the noise reduction that variational optimization might offer.

[0028] Figure 3 The diagram illustrates a sequential method for performing variational procedures. Figure 3 In the example shown, one or more controllers 210 or classical processes (referred to herein as "CPU" for convenience without loss of generality) compute the 310 parameters against the quantum program. Furthermore, the QPU 230 evaluates the expected value of a 320-quantum program. There is a delay 315 between computation 310 and evaluation 320 when data is transferred between controller 210 and QPU 230. Once evaluation 320 is complete, controller 210 computes 330 for the next variational step. Furthermore, the QPU 230 was evaluated as 340. Therefore, when QPU 230 is idle, a variational step size is used. There is a lag time of 335 while 330 is being calculated. The delay of 315 and the lag time of 335 may be detrimental because they lead to inefficient use of QPU 230.

[0029] In various embodiments, the quantum processing system 100 uses "stagnant time" (e.g., stagnant time 335) generated between variational optimizer steps to simulate a parallel-running variational quantum program. This can speed up execution time because it reuses the same QPU 230 across different time entanglements. In the following paragraphs, an embodiment with M=1 (referred to as the asynchronous method) is described for illustrative purposes. However, the described asynchronous method can be generalized to larger values ​​of M. In fact, the efficiency gain produced by this method may be more significant for larger values ​​of M.

[0030] Figure 4The illustration depicts an asynchronous method according to one embodiment, where some or all of the stall time 335 is used as if it were another QPU 230 available for execution. Therefore, more efficient use of the QPU 230 can be achieved. In the illustrated embodiment, asynchronous interaction exists between the controller 210 and the QPU 230. The controller 210 calculates 410 a series of initial parameter sets. They are then dispatched to a queue pulled from the QPU 230. When the QPU 230 evaluates the desired value, it broadcasts these values ​​to the controller 210. For example, in... Figure 4 In the middle, the QPU 230 evaluation showed a first expected value of 420. And broadcast it to controller 210, and when controller 210 calculates the next variational step size 430. At that time, QPU 230 evaluated a second expected value of 422. Evaluation of the third expected value of 424 Similarly, controller 210 can calculate the variables for the next variational step size of 432, 434 based on different expected values ​​(e.g., using multiple classic processors 210 operating in parallel or threads operating in parallel). Controller 210 can be attached to the queue of QPU 230 and interrupt its execution (e.g., at any point in the queue). Figure 4 In the middle, this is through The shortened assessment 426 is shown. In practice, this may mean in a specific A smaller sample size was obtained because the process may have determined that more information would be obtained through the evaluation of 440. Come and learn (where i≠j).

[0031] Viewing controller 210 as a Bayesian learner provides insight into how to manage them. Controller 210 uses some prior... It begins by evaluating new parameters based on the most useful information that will be obtained. By switching to this asynchronous execution method, the Bayesian learner can continue evaluating new data on the QPU 230, even while computing the next optimal set of parameters. This new data provides additional information to inform the next step.

[0032] As an example illustrating how much time can be saved using this asynchronous method, assume that the firing rate of QPU210 is 1MHz (a firing can refer to a single execution of QPU 120), the time for (e.g., classic) optimization (e.g., step 430) plus the delay (e.g., delay 415) is 0.1 seconds per step, and the number of firings per desired value is N. s =10 4 These are reasonable values ​​for current technological systems. This translates to a 0.1-second lag time, with an additional 10... 5A sample can be evaluated using an asynchronous method. This is ten times the number of samples that might be obtained in each step of a serially executed method. Through this logic, the asynchronous method yields ten times the number of samples as the serial method. More generally, the asynchronous method can provide a factor of τ. c *r / N s More samples, where τ c It is the duration of a computation step that includes bidirectional delay (e.g., classical), and r is the firing rate of the QPU 230.

[0033] and Figure 3 Compared to the serial method, Figure 4 The asynchronous method illustrated can utilize multiple controllers 210 to allow a single QPU 230 to run more frequently (e.g., continuously) with little or no downtime. During this asynchronous method, the QPU 230 can (e.g., continuously) return data streams (or periodically send batches of data) to processing, thereby completing more computations in a shorter time. The increase in the amount of data computed does not typically reduce runtime linearly, but it can reduce runtime sublinearly. This additional data can be used to improve the optimizer and lead to better / faster convergence of the variational algorithm.

[0034] Figure 5 An embodiment of multiple controllers 510 dispatching quantum programs in parallel (e.g., simultaneously) is illustrated. An intermediate routing layer 520 routes these programs to one or more QPUs 530. The QPUs 530 perform their computations and return their results (e.g., asynchronously) to the routing layer 520. The routing layer 520 aggregates these results and returns them to the set of controllers 510. The controllers 510 can then generate additional programs (e.g., asynchronously) for execution.

[0035] Figure 6 This asynchronous method and Figure 2 The serial method shown is compared. In the asynchronous method, results from QPU 630 are returned (e.g., immediately, subject to latency and other inherent delays) to routing layer 620 without waiting for termination conditions to be met on each QPU 630. This allows controller 610 to receive additional data from the stream (or batches) of QPU 630. This additional data can, for example, be used to update the learning system so that the variational quantum eigenvalue solver converges faster. In this example, controller 610 can use a joint learning algorithm where the edge computing units are QPU 630s.

[0036] Asynchronous methods can be like Figure 7The implementation is illustrated, wherein the generated program is added 710 to a program stack (also referred to as a queue) from the routing layer 620. Programs are pulled from the stack 720 for execution by the QPU 630. For each execution, the QPU 630 (or instructions from the program) may decide (e.g., via a termination condition) to rerun the same computation to collect more statistics or move to another program. The stack may have a priority ordering of programs. In some embodiments, the routing layer 620 (or controller 610) may interrupt the execution of a program on the QPU 630 when a new program is submitted to it. When the QPU 630 finishes executing its program, for example without waiting for other QPUs 630 to finish executing their programs, it dispatches the results 740 to the controller 610. In some embodiments, the program in the stack specifies the particular QPU 630 to which it should be executed. Since each QPU 630 can have its own noise profile, it may be advantageous to execute programs with different parameters on the same QPU 630 (or a set of QPU 630s with substantially the same noise profile). Determining whether noise profiles are substantially the same can be highly relevant to the model of the noise, and operators can be chosen to constrain substantially the same noise model. Some noise models have multiple parameters. For example, the error rate differs for different qubits. This can be generalized to some criteria or metric, such as the average threshold. In other cases, it may be more complex. In some embodiments, similar QPUs can be clustered based on the diamond norm distance between their quantum process operators. If measuring quantum process operators is difficult, heuristic agents can be used.

[0037] As referenced above Figure 4 As described above, by using the pause time between variational steps to perform other calculations, a single QPU 630 can be used as multiple QPUs. Therefore, Figure 6 The configuration shown can be approximated using multiple controllers 610 and a single QPU 630. Alternatively, two QPUs 630 can be used, each QPU 630 using... Figure 4 The technology is used to increase the effective number of available QPUs.

[0038] Figure 8 The illustration shows that an asynchronous method can be applied to a collection of quantum sensors 830. Here, one or more quantum programs (e.g., instructions) are sent from one or more controllers 810 to a library of quantum sensors 830 via a routing layer 820. The quantum programs may include tuning parameters for the sensors 830. The quantum sensors 830 (e.g., asynchronously) generate data and return it to the controllers 810 in a streaming or batch manner for further processing.

[0039] The same asynchronous approach can also be applied to other contexts. For example, the disclosed asynchronous approach can be applied to nodes in quantum networks or other distributed systems of quantum sensing, networking, and computation. In fact, the controller itself does not necessarily have to be classical. The controller can be a QIPU (e.g., QPU 120). For example, the controller can be a set of partitions of QIPU computational units (e.g., qubits). Additionally or alternatively, the controller can be a thread on a single QIPU. Furthermore, the computation performed by the QIPU can involve the execution of network protocols. For example, the QIPU can be a node in a quantum network and the QIPU executes network protocols.

[0040] Figure 9 This is a flowchart illustrating an asynchronous method 900 according to one embodiment. The steps of method 900 can be executed by one or more controllers. The steps of method 900 can be executed in different orders, and the method can include different, additional, or fewer steps. Method 1000 (about...) Figure 10 The aspects described can also be applied to method 900.

[0041] The controller determines the first and second sets of parameters for the 910 quantum program. In some embodiments, the second set of parameters is used for a different quantum program. In some embodiments, the quantum program is a quantum circuit of a variational optimization problem and the third set of parameters corresponds to the next variational step.

[0042] The controller dispatches a quantum program with a first set of parameters and a second set of parameters to the quantum processing queue of the quantum information processing unit (QIPU). The quantum processing queue is configured to store the quantum program for execution by the QIPU.

[0043] The controller receives the first expected value of the quantum program 930 executed by the QIPU using parameters of the first parameter set. The controller can also receive individual execution results of the quantum program with the first parameter set (e.g., in streaming or batch mode).

[0044] When the QIPU uses the parameters of the second parameter set to evaluate the second expected value of the quantum program, the controller calculates the third parameter set of the 940 quantum program based on the first parameter set and the first expected value.

[0045] The controller modifies the 950 quantum processing queue by dispatching a quantum program with a third set of parameters to the quantum processing queue. Modifying the quantum processing queue may include adding the third set of parameters to the tail of the quantum processing queue. Additionally or alternatively, modifying the queue may include instructing the QIPU to stop the current execution and evaluate the expected value of the quantum program using the parameters of the third set of parameters.

[0046] In some embodiments, the controller uses parameters from a second set of parameters to receive a second expected value of the quantum program executed by the QIPU. When the QIPU uses parameters from a third set of parameters to evaluate a third expected value of the quantum program, the controller calculates a fourth set of parameters for the quantum program based on the first and second set of parameters, as well as the first and second expected values. The controller modifies the quantum processing queue by dispatching the quantum program with the fourth set of parameters to the quantum processing queue.

[0047] In some embodiments, when the QIPU uses parameters from a first set of parameters to evaluate a first expected value of the quantum program or uses parameters from a third set of parameters to evaluate a third expected value of the quantum program, the controller calculates the parameter set of a second quantum program. The controller modifies the quantum processing queue by dispatching the second quantum program, which has the parameter set of the second quantum program, to the quantum processing queue.

[0048] In some embodiments, a QIPU is one in a set of QIPUs and a quantum processing queue is configured to store quantum programs, each of which is executed by one or more QIPUs in the set. The expected value calculated by the QIPUs can be received asynchronously by the controller. In some embodiments, dispatching a quantum program with a third set of parameters further includes the controller dispatching instructions for the quantum program with the third set of parameters, which will be executed by the QIPUs. In some embodiments, dispatching a quantum program with a third set of parameters further includes the controller dispatching instructions for the quantum program with the third set of parameters, which will be executed by a QIPU with a noise profile that is substantially the same as the noise profile of the QIPU.

[0049] In some embodiments, in response to the quantum processing queue having fewer than a threshold number of programs, the controller re-dispatches quantum programs with a first set of parameters (or any other set of parameters) to the quantum processing queue. This provides additional statistical sampling and ensures that the queue does not become empty.

[0050] Figure 10 This is a flowchart illustrating another asynchronous method 1000 according to one embodiment. The steps of method 1000 can be executed by one or more controllers. The steps of method 1000 can be executed in a different order, and method 1000 can include different, additional, or fewer steps. Aspects of method 900 (mentioned above) Figure 9 (Description) can also be applied to method 1000.

[0051] The controller generates a set of 1010 quantum programs.

[0052] The controller dispatches at least some of the 1020 quantum program sets to multiple quantum information processing units (QIPUs) for execution.

[0053] The controller asynchronously receives 1030 results generated by multiple QIPUs in streaming or batch processing. The results can be generated by multiple QIPUs processing dispatched quantum programs. The results can be expected values ​​from processing quantum programs or individual results.

[0054] The controller performs single-threaded or multi-threaded generation of 1040 new quantum program sets based on the returned results.

[0055] The controller dispatches at least some of the new quantum programs from the set to multiple QIPUs for execution. In some embodiments, a QIPU stops processing the quantum programs in the set before completion in response to receiving the quantum programs from the new set.

[0056] In some embodiments, the quantum program set is generated by optimizing the objective function in the variable quantum algorithm by incorporating the streaming results into a Bayesian learning model.

[0057] Figure 11 This is an example architecture of a computing system according to one embodiment. Although Figure 11 High-level block diagrams depict computer physical components that serve as part or all of the entities described herein; however, according to one embodiment, the computer may have… Figure 11 Additional, fewer, or modified components are provided. Despite Figure 11 A computer 100 is depicted, but this figure is intended as a functional description of the various features that may exist in a computer system, rather than a structural diagram of the implementation described herein. In practice, as those skilled in the art will recognize, items shown individually may be combined and some items may be separated.

[0058] Figure 11 The illustration shows at least one processor 1102 coupled to chipset 1104. Also coupled to chipset 1104 are memory 1106, storage device 1108, keyboard 1110, graphics adapter 1112, pointing device 1114, and network adapter 1116. Display 1118 is coupled to graphics adapter 1112. In one embodiment, the functionality of chipset 1104 is provided by memory controller hub 1120 and I / O hub 1122. In another embodiment, memory 1106 is directly coupled to processor 1102 instead of chipset 1102. In some embodiments, computer 1100 includes one or more communication buses for interconnecting these components. The one or more communication buses may optionally include circuitry (sometimes referred to as chipset) interconnecting and controlling communication between system components.

[0059] Storage device 1108 is any non-transitory computer-readable storage medium, such as a hard disk drive, optical disc read-only memory (CD-ROM), DVD, or solid-state storage device or other optical storage device, magnetic tape, magnetic tape, disk storage device or other magnetic storage device, disk storage device, optical disc storage device, flash memory device, or other non-volatile solid-state storage device. Such storage device 1108 may also be referred to as persistent storage. Pointing device 1114 may be a mouse, trackball, or other type of pointing device used in conjunction with keyboard 1110 to input data into computer 1100. Graphics adapter 1112 displays images and other information on monitor 1118. Network adapter 1116 couples computer 1100 to a local area network (LAN) or wide area network (WAN).

[0060] Memory 1106 stores instructions and data used by processor 1102. Memory 1106 may be non-persistent memory, examples of which include high-speed random access memory such as DRAM, SRAM, DDR RAM, ROM, EEPROM, and flash memory.

[0061] As is known in the art, computer 1100 may have different Figure 11 The components shown or other components. Additionally, computer 1100 may be missing some of the components shown. In one embodiment, computer 1100 acting as a server may be missing keyboard 1110, pointing device 1114, graphics adapter 1112, or display 1118. Furthermore, storage device 1108 may be local to computer 1100 or remote (such as within a storage area network (SAN)).

[0062] As is known in the art, computer 1100 is adapted to execute computer program modules to provide the functionality described herein. As used herein, the term "module" refers to computer program logic used to provide the specified functionality. Thus, modules can be implemented in hardware, firmware, or software. In one embodiment, the program module is stored on storage device 1108, loaded into memory 1106, and executed by processor 302.

[0063] Some of the foregoing descriptions depict embodiments of algorithmic processes or operations. Those skilled in the art commonly use these algorithmic descriptions and representations to effectively communicate the substance of their work to others skilled in the art. Although these operations are described functionally, computationally, or logically, they are understood to be implemented by computer programs, which include instructions executed by a processor or equivalent circuitry, microcode, etc. Furthermore, without loss of generality, it has sometimes proven convenient to refer to the arrangement of these functional operations as modules.

[0064] As used herein, any reference to "an embodiment" or "an embodiment" means that a particular element, feature, structure, or characteristic described in connection with an embodiment is included in at least one embodiment. The phrase "in an embodiment" appearing in different places in the specification does not necessarily refer to the same embodiment. Similarly, the use of "a" or "an" before an element or component is for convenience only. Unless it is obvious that it means something else, the description should be understood to indicate the presence of one or more elements or components.

[0065] If a value is described as “approximate” or “about” (or its derivative), it should be interpreted as exactly + / - 10% unless the context clearly indicates otherwise. For example, “approximately ten” should be understood as “in the range of nine to eleven”.

[0066] As used herein, the terms “comprising,” “including,” “having,” “with,” or any other variation thereof are intended to cover non-exclusive inclusion. For example, a process, method, article of manufacture, or apparatus that includes a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such process, method, article of manufacture, or apparatus. Furthermore, unless expressly stated otherwise, “or” refers to an inclusive or, rather than an exclusive, or. For example, condition A or B satisfies any of the following conditions: A is true (or exists) and B is false (or does not exist); A is false (or does not exist) and B is true (or exists); and both A and B are true (exist).

[0067] Upon reading this disclosure, those skilled in the art will understand other additional alternative structural and functional designs for systems and processes of asynchronous quantum information processing. Therefore, while specific embodiments and applications have been illustrated and described, it should be understood that the described subject matter is not limited to the precise constructions and components disclosed. The scope of protection should be limited only by the appended claims.

Claims

1. A non-transitory computer-readable storage medium, the non-transitory computer-readable storage medium comprising stored instructions, the instructions causing the computing system to perform operations when executed by a computing system, the operations including: Determine the first and second set of parameters for the quantum program; The quantum program having the first parameter set and the second parameter set is dispatched to the quantum processing queue of the quantum information processing unit (QIPU), the quantum processing queue being configured to store quantum programs for execution by the QIPU; Receive a first expected value from the QIPU that executes the quantum program using the parameters of the first parameter set; When the QIPU uses the parameters of the second parameter set to evaluate the second expected value of the quantum program, a third parameter set for the quantum program is calculated based on the first parameter set and the first expected value. as well as The quantum processing queue is modified by dispatching the quantum program having the third set of parameters to the quantum processing queue. The quantum program is a quantum circuit for a variational optimization problem, and the third set of parameters corresponds to the next variational step.

2. The non-transitory computer-readable storage medium according to claim 1, wherein the operation further comprises: Receive the second expected value of the quantum program executed by the QIPU using the parameters of the second parameter set; When the QIPU uses the parameters of the third parameter set to evaluate the third expected value of the quantum program, the fourth parameter set of the quantum program is calculated based on the first parameter set, the second parameter set, the first expected value, and the second expected value. as well as The quantum processing queue is modified by dispatching the quantum program with the fourth set of parameters to the quantum processing queue.

3. The non-transitory computer-readable storage medium according to claim 1, wherein the operation further comprises: When the QIPU uses parameters from the first parameter set to evaluate the first expected value of the quantum program or uses parameters from the third parameter set to evaluate the third expected value of the quantum program, the parameter set for the second quantum program is calculated; and The quantum processing queue is modified by sending a second quantum program containing the set of parameters of the second quantum program to the quantum processing queue.

4. The non-transitory computer-readable storage medium of claim 1, wherein the QIPU is one QIPU in a set of QIPUs, and the quantum processing queue is configured to store quantum programs, each quantum program being executed by one or more QIPUs in the set.

5. The non-transitory computer-readable storage medium of claim 4, wherein dispatching the quantum program having the third set of parameters further comprises dispatching instructions for the quantum program having the third set of parameters, to be executed by the QIPU.

6. The non-transitory computer-readable storage medium of claim 4, wherein dispatching the quantum program having the third parameter set further comprises dispatching instructions for the quantum program having the third parameter set, to be executed by a QIPU having a noise profile substantially identical to the noise profile of the QIPU.

7. The non-transitory computer-readable storage medium of claim 1, wherein modifying the quantum processing queue comprises adding the third parameter set to the tail of the quantum processing queue.

8. The non-transitory computer-readable storage medium of claim 1, wherein modifying the queue comprises commanding the QIPU to stop its current execution and using the parameters of the third parameter set to evaluate the expected value of the quantum program.

9. The non-transitory computer-readable storage medium of claim 1, in response to the quantum processing queue having fewer than a threshold number of programs, the quantum program having the first set of parameters is redeployed to the quantum processing queue.

10. A method comprising: Generate a set of quantum programs; At least some of the quantum programs in the quantum program set are dispatched to multiple quantum information processing units (QIPUs) for execution; Receive results generated asynchronously by the plurality of QIPUs in streaming or batch processing mode; Based on the returned results, execute the single-threaded or multi-threaded generation of a new set of quantum programs; and At least some of the quantum programs from the new set of quantum programs are dispatched to the plurality of QIPUs for execution. The set of quantum programs is generated by a classical controller by optimizing an objective function for the execution of the variable quantum programs.

11. The method of claim 10, further comprising processing the dispatched program by the plurality of quantum information processing units.

12. The method of claim 10, wherein delivering at least some of the quantum programs in the new set of quantum programs comprises sending an instruction to at least one QIPU to stop the current quantum program process and process the quantum programs in the new set.

13. A quantum processing system, comprising: One or more controllers are configured as follows: Calculate a set of initial parameters for a quantum program; The quantum program, which has the set of initial parameters, is dispatched to the quantum processing queue. Receive a first expected value corresponding to the parameters of the quantum program having a first initial set of parameters; The next parameter set is calculated based on the first initial parameter set and the first expected value; as well as Send the next set of parameters to the quantum processing queue; as well as The quantum information processing unit (QIPU) is configured as follows: The parameters of the first initial parameter set are used to evaluate the first expected value for the quantum program; Broadcast the first desired value to the one or more controllers; While the next set of parameters is being computed, the second expected value of the quantum program is evaluated using the parameters of the second initial set of parameters; Receive the next set of parameters; as well as The next expected value of the quantum program is evaluated using the parameters of the next parameter set. The quantum program is a quantum circuit for a variational optimization problem, and the next set of parameters corresponds to the next variational step.

14. The quantum processing system of claim 13, wherein the quantum information processing unit is further configured to stop evaluating the second desired value before completion in response to receiving the next set of parameters.

15. The quantum processing system of claim 13, wherein the QIPU is one QIPU in a set of QIPUs, and the quantum processing queue is configured to store quantum programs for execution by the QIPUs in the set.

16. The quantum processing system of claim 15, wherein dispatching the next parameter set further comprises dispatching instructions having the quantum program of the next parameter set, to be executed by the QIPU.

17. The quantum processing system of claim 15, wherein dispatching the next parameter set comprises dispatching instructions having the quantum program of the next parameter set, to be executed by a QIPU having a noise profile substantially identical to the noise profile of the QIPU.

18. The quantum processing system of claim 13, wherein the one or more controllers are further configured to, in response to the quantum processing queue having fewer than a threshold number of programs, redeploy the quantum program having the set of initial parameters to the quantum processing queue.