Quantum computing involves the use of quantum bits, referred to herein as “qubits,” which have characteristics that differ from those of classical (i.e., non-quantum) bits used in classical computing. Qubits may be employed by quantum services that are executed by quantum computing devices. As quantum computing continues to increase in popularity and become more commonplace, an ability to efficiently and accurately allocate qubits in real time will be desirable.
The examples disclosed herein implement a quantum service autoscaler that performs automatic scaling of quantum services. In particular, the quantum service autoscaler provisions computing resources to the quantum service for the quantum service to perform the tasks of the quantum service. The quantum service autoscaler can allow quantum services to increase their capacity and handle more load by providing the quantum services with the computing resources to do so when under heavy load or increased throughput. When the computing resources of a first quantum computing system are insufficient to allow the quantum service to perform tasks, the quantum service autoscaler begins an autoscale migration of the quantum service to a second quantum computing system, resulting in the quantum service running in the second computing system with the increased resources required to perform tasks.
In one example, a method for automatic scaling of quantum services is disclosed. The method includes receiving, by a first quantum computing device, a first set of computational information reflecting a utilization of computing resources of a first quantum service in a first quantum computing system that exceeds a computing resources threshold. The method further includes altering, by the first quantum computing device, the computing resources of the first quantum service in the first quantum computing system based on the first set of computational information.
In another example, a quantum computing device for automatic scaling of quantum services is disclosed. The quantum computing device comprises a memory, and a processor device communicatively coupled to the memory. The processor device is to receive a first set of computational information reflecting a utilization of computing resources of a first quantum service in a first quantum computing system that exceeds a computing resources threshold. The processor device is further to alter the computing resources of the first quantum service in the first quantum computing system based on the first set of computational information. The processor device is further to, subsequent to alter the computing resources of the first quantum service in the first quantum computing system, determine that the utilization of computing resources of the first quantum service in the first quantum computing system continues to exceed the computing resources threshold. The processor device is further to cause an initiation of a copy of the first quantum service onto a second quantum computing device in a second quantum computing system.
In another example, a non-transitory computer-readable storage medium is disclosed. The non-transitory computer-readable storage medium stores thereon computer-executable instructions that, when executed, cause one or more processor devices to receive a first set of computational information reflecting a utilization of computing resources of a first quantum service in a first quantum computing system that exceeds a computing resources threshold. The instructions further cause the processor device to alter the computing resources of the first quantum service in the first quantum computing system based on the first set of computational information. The instructions further cause the processor device to, subsequent to alter the computing resources of the first quantum service in the first quantum computing system, determine that the utilization of computing resources of the first quantum service in the first quantum computing system continues to exceed the computing resources threshold. The instructions further cause the processor device to cause an initiation of a copy of the first quantum service onto a second quantum computing device in a second quantum computing system.
Individuals will appreciate the scope of the disclosure and realize additional aspects thereof after reading the following detailed description of the examples in association with the accompanying drawing figures.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure and, together with the description, serve to explain the principles of the disclosure.
The examples set forth below represent the information to enable individuals to practice the examples and illustrate the best mode of practicing the examples. Upon reading the following description in light of the accompanying drawing figures, individuals will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
Any flowcharts discussed herein are necessarily discussed in some sequence for purposes of illustration, but unless otherwise explicitly indicated, the examples are not limited to any particular sequence of steps. The use herein of ordinals in conjunction with an element is solely for distinguishing what might otherwise be similar or identical labels, such as “first executing quantum service” and “second executing quantum service,” and does not imply a priority, a type, an importance, or other attribute, unless otherwise stated herein. The term “about” used herein in conjunction with a numeric value means any value that is within a range of ten percent greater than or ten percent less than the numeric value. As used herein and in the claims, the articles “a” and “an” in reference to an element refers to “one or more” of the elements unless otherwise explicitly specified. The word “or” as used herein and in the claims is inclusive unless contextually impossible. As an example, the recitation of A or B means A, or B, or both A and B.
Quantum computing involves the use of quantum bits, referred to herein as “qubits,” which have characteristics that differ from those of classical (i.e., non-quantum) bits used in classical computing. Qubits may be employed by quantum services that are executed by quantum computing devices.
Quantum services executed by a quantum computing device need to be provisioned with the correct computing resources in order to perform tasks. However, when there is a heavy load or increased throughput in the quantum computing device, the computing resources can be placed under pressure, causing the quantum service to fail to perform tasks as expected.
The examples disclosed herein implement a quantum service autoscaler service that performs automatic scaling of quantum services. The quantum service autoscaler can allow quantum services to handle more load by providing additional computing resources to the quantum service in a first quantum computing system. When the quantum service reaches a limit of the computing resources, the quantum service autoscaler can begin an autoscale migration of the quantum service to a quantum computing device in a second quantum computing system.
A quantum service running on a quantum device in a first quantum computing system may be provisioned with and utilize computing resources in the first quantum computing system in order to perform a task. Over time, the quantum service may require additional computing resources in order to perform the task. For example, one or more of the Quantum Processing Unit (QPU) load, the bandwidth within a quantum computing system, the number of qubits available for the quantum service, tension in the quantum computing system, heat in the quantum computing system, decoherence, and error count may increase the stress on the computing resources utilized by the quantum service in the quantum computing system. As a result, a computing resources limit or threshold of the quantum service or the first quantum computing system may be reached or exceeded by the quantum service; thus the quantum service will require additional computing resources in order to perform the task. In response to the increased load and throughput, the quantum service autoscaler can increase the computing resources provisioned for and utilized by the quantum service in first quantum computing system. For example, the quantum service autoscaler may provide the quantum service with access to additional qubits by requesting an available qubit from a qubit registry, increase the priority of the quantum service with respect to other quantum services in the first quantum computing system, alter a strategy for error correction for the quantum service, increase a number of qubits that are available for error correction, parallelize the execution of the quantum service in the first quantum computing system, terminate non-essential quantum services in the first quantum computing system, or terminate quantum services in the first quantum computing system in order to reduce a heat profile in the first quantum computing system.
The quantum service autoscaler can provide the increased computing resources to the quantum service, however, the computing resources utilized by the quantum service in the first quantum computing system may continue to reach or exceed the computing resources limit or threshold. As a result, the quantum service autoscaler can cause a copy of the quantum service to be initiated on a quantum computing device in a second quantum computing system. For example, the quantum service autoscaler may receive information that the utilization of computing resources in the second quantum computing system does not reach a computing resources limit or threshold of the second quantum computing system. The quantum service autoscaler can send a Quantum Assembly (QASM) file that corresponds to the first quantum service to the second quantum computing system, where the copy of the quantum service will be initiated with the computing resources of the second quantum computing system.
As the copy of the quantum service is initiated with the computing resources of the second quantum computing system, the quantum service autoscaler can load balance the old instantiation of the quantum service on the first quantum computing system and the new instantiation of the quantum service on the second quantum computing system. The quantum service autoscaler can determine that there are enough computing resources for the quantum service to run on a quantum computing device in the second quantum computing system. In response, the quantum service autoscaler can scale down the quantum service in the first quantum computing system, redirect traffic to the new instantiation of the quantum service in the second quantum computing system, and terminate the execution of the quantum service in the first quantum computing system.
The quantum service autoscaler may identify the utilization of computer resources of the quantum service at multiple times of the day. For example, the quantum service autoscaler may determine that it is a first time of day and the computing resources that are required for the quantum service to perform a task at the first time of day. At the first time of day, the quantum service autoscaler can initiate a copy of the quantum service onto a quantum computing device in the second quantum computing system with the computing resources necessary for the quantum service to perform the task.
In the example of
The first quantum computing device 12 of
The first quantum computing device 12 of
Specifically, the quantum service autoscaler 40 can receive a first set of computational information 54. The computational information 54 may include one or more of the amount of computing resources utilized 50 by the one or more quantum services 28(0)-28(S) in the first quantum computing system 10, the computing resources threshold 52, a quantity of qubits available 56, a QPU load 58, a quantity of quantum services running 60 in the first quantum computing system 10, a heat profile 62 of the first quantum computing system 10, an error count 64 of the first quantum computing system 10, and an amount of decoherence 66 in the first quantum computing system 10. The computational information 54 may reflect that the computing resources utilized 50 by a first quantum service 28(0) in the first quantum computing system 10 exceeds the computing resources threshold 52. The computing resources threshold 52 may apply to a limit of computing resources in the one or more quantum services 28(0)-28(S), such as the first quantum service 28(0), or in the first quantum computing system 10.
The quantum service autoscaler 40 may interface with a task manager to alter the computing resources 30 of the first quantum service 28(0) in the first quantum computing system 10 based on the computational information 54 in order to provide additional computing resources 30 for the first quantum service 28(0).
For example, the quantum service autoscaler 40 may prioritize the first quantum service 28(0) over the other quantum services 28(0)-28(S) executing in the first quantum computing system 10. In another example, the quantum service autoscaler 40 may increase the number of qubits available 34 to the first quantum service 28 in order to allocate more qubits 20(0)-20(Q) to the first quantum service 28(0), such as by contacting the qubit registry 22. The quantum service autoscaler 40 may alter the error correction strategy 36 for the first quantum service 28(0) or increase the quantity of qubits available for error correction 38 by contacting the qubit registry 22 for an available qubit and allocating the available qubit for error correction for the first quantum service 28(0). In another example, the quantum service autoscaler 40 may determine that a second quantum service 28(S) in the first quantum computing system 10 is not an essential service for the first quantum computing device 12 or the first quantum computing system 10, and terminate the second quantum service 28(S). The quantum service autoscaler 40 may determine that the heat profile 62 of the first quantum computing system 10 may be reduced by terminating one or more of the quantum services 28(0)-28(S) in the first quantum computing system 10.
Altering the computing resources 30 of the first quantum service 28(0) in the first quantum computing system 10 may be insufficient for the first quantum service 28(0) to perform tasks in the first quantum computing system 10. There may continue to be resource constraints in the first quantum computing system which may not be corrected to allow the first quantum service 28(0) to run in the first quantum computing system 10. After altering the computing resources of the first quantum service 28(0) in the first quantum computing system 10 based on the computational information 54, the quantum service autoscaler 40 may determine that the computing resources utilized 50 by the first quantum service 28(0) in the first quantum computing system 10 continues to exceed the computing resources threshold 52. The quantum service autoscaler 40 can look to other quantum systems within its network and communicate with the other quantum systems to determine whether another quantum system has computing resources available for the first quantum service 28(0) to perform tasks in the other quantum system.
For example, the quantum service autoscaler 40 may verify one or more of an amount of computing resources utilized 70, a computing resources threshold 72, a quantity of qubits available, a QPU load, a quantity of quantum services running, a heat profile, an error count, and an amount of decoherence 66 in the second quantum computing system 46. The computational information 54 may reflect that the computing resources utilized 50 by the first quantum service 28(0) in the first quantum computing system 10 exceeds the computing resources threshold 52. The quantum service autoscaler 40 may initiate a copy 42 of the first quantum service 28(0) onto the second quantum computing device 44 in the second quantum computing system 46. The first quantum service 28(0) may then run with the computing resources 48 in the second quantum computing system 46 that are necessary for the first quantum service 28(0) to perform tasks.
In one example, the quantum service autoscaler 40 may receive a second set of computational information 68 from the second quantum computing device 44. The second set of computational information 68 may reflect the amount of computing resources utilized 70 of the second quantum computing system 46. The amount of computing resources utilized 70 may fall below the computing resources threshold 72 for the second quantum computing system 46. The quantum service autoscaler 40 may cause the initiation of a copy 42 of the first quantum service 28(0) onto the second quantum computing device 44 in the second quantum computing system 46 based on the second set of computational information 68 reflecting that the amount of computing resources utilized 70 is below the computing resources threshold 72.
In another example, the quantum service autoscaler 40 may send a QASM file 74 that corresponds to the first quantum service 28(0) from the first quantum computing device 12 to the second quantum computing system 46. The quantum service autoscaler 40 may request the second quantum computing system 46 to initiate a copy 42 of the first quantum service 28(0) onto the second quantum computing device 44. The copy 42 of the first quantum service 28(0) on the second quantum computing device 44 may be provisioned with the computing resources 48 of the second quantum computing device 44. The QASM file 74 may be sent to the task manager of the second quantum computing device 44 in order to execute the first quantum service 28(0).
The quantum service autoscaler 40 may receive a request that is directed to the first quantum service 28(0). The quantum service autoscaler 40 may send the request from the first quantum computing device 12 to the copy 42 of the first quantum service 28(0) on the second quantum computing device 44. For example, the quantum service autoscaler 40 may communicate with a scheduler and task manager to load balance the first quantum service 28(0) on the first quantum computing device 12 and the copy 42 of the first quantum service 28(0) on the second quantum computing device 44. Requests may be sent between the first quantum service 28(0) and the copy 42 of the first quantum service 28(0) until the first quantum service 28(0) can be satisfactorily terminated on the first quantum computing device 12. The first quantum service 28(0) may be satisfactorily terminated, for example, after a specified number of requests, a specified period of time, or based on the computing resources threshold 52 or 72. In another example, every second request from the first quantum service 28(0) may be sent to the copy 42 of the first quantum service 28(0). The requests to one instantiation of the first quantum service 28(0) may be paused in favor of the other instantiation of the first quantum service 28(0). For example, the copy 42 of the first quantum service 28(0) may be favored until one or more computing resources 30 of the first quantum service 28(0) in the first quantum computing system 10 are available that can allow the first quantum service 28(0) to continue to run in the first quantum computing system 10. For instance, the copy 42 of the first quantum service 28(0) may be favored until the heat profile 62 of the first quantum computing system 10 is reduced to a satisfactory level to allow the first quantum service 28(0) to continue to run in the first quantum computing system 10.
It is to be understood that, because the quantum service autoscaler 40 is a component of the first quantum computing device 12, functionality implemented by the quantum service autoscaler 40 may be attributed to the first quantum computing device 12 generally. Moreover, in examples where the quantum service autoscaler 40 comprises software instructions that program the processor device 16 to carry out functionality discussed herein, functionality implemented by the quantum service autoscaler 40 may be attributed herein to the processor device 16. It is to be further understood that while, for purposes of illustration only, the quantum service autoscaler 40 is depicted as a single component, the functionality implemented by the quantum service autoscaler 40 may be implemented in any number of components, and the examples discussed herein are not limited to any particular number of components.
To illustrate exemplary operations performed by the first quantum computing system 10 of
In
The processor device 16 then alters the computing resources 30 of the first quantum service 28(0) in the first quantum computing system 10 based on the first set of computational information 54 (block 202).
The quantum computing device 80 includes a processor device 16 and a memory 14. The processor device 16 can be any commercially available or proprietary processor suitable for operating in a quantum environment. The memory 14 may include system memory 15 and volatile memory 17 (e.g., random-access memory (RAM)).
The quantum computing device 80 may further include or be coupled to a non-transitory computer-readable storage medium such as a storage device 18. The storage device 18 may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)) for storage, memory, or the like. The storage device 18 and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like. The storage device may also provide functionality for storing one or more qubits 20(0)-20(Q).
A number of modules can be stored in the storage device 18 and in the volatile memory 15, including an operating system 82 and one or more modules, such as the quantum service autoscaler 40. All or a portion of the examples may be implemented as a computer program product 84 stored on a transitory or non-transitory computer-usable or computer-readable storage medium, such as the storage device 18, which includes complex programming instructions, such as complex computer-readable program code, to cause the processor device 16 to carry out the steps described herein. Thus, the computer-readable program code can comprise computer-executable instructions for implementing the functionality of the examples described herein when executed on the processor device 16.
An operator may also be able to enter one or more configuration commands through a keyboard (not illustrated), a pointing device such as a mouse (not illustrated), or a touch-sensitive surface such as a display device (not illustrated). The quantum computing device 80 may also include a communications interface 86 suitable for communicating with other quantum computing systems, including, in some implementations, classical computing devices.
Individuals will recognize improvements and modifications to the preferred examples of the disclosure. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.