OPTIMIZING EXECUTION OF QUANTUM SERVICE DEFINITION FILES USING A QUANTUM OPTIMIZATION DATABASE

Optimizing execution of quantum service definition files using a quantum optimization database is disclosed herein. In one example, a processor device of a computing device identifies a first one or more instructions within a quantum service definition file of a quantum service. The processor device next determines that the first one or more instructions correspond to a first entry in a quantum optimization database, the first entry comprising a result of a previous execution of the first one or more instructions. In response to determining that the first one or more instructions correspond to the first entry in the quantum optimization database, the processor device then modifies the quantum service definition file to incorporate the result of the previous execution of the first one or more instructions in place of the first one or more instructions.

BACKGROUND

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 to provide desired functionality. As quantum computing continues to increase in popularity and become more commonplace, functionality for optimizing the execution of quantum services will be desirable.

SUMMARY

The examples disclosed herein optimize execution of quantum service definition files using a quantum optimization database. In one example, an optimization service, executing on a classical computing device or a quantum computing device, provides a mechanism for populating a quantum optimization database with the results of executing sets of one or more instructions of a quantum service definition file for a quantum service. During subsequent execution of the quantum service using the quantum service definition file, the quantum optimization database may supply the execution results corresponding to the one or more instructions for incorporation into the quantum service definition file in place of the one or more instructions, thereby avoiding the need to execute the one or more instructions.

In another example, a method for optimizing execution of quantum service definition files using a quantum optimization database is disclosed. The method comprises identifying, by a processor device of a computing device, a first one or more instructions within a quantum service definition file of a quantum service. The method further comprises determining that the first one or more instructions correspond to a first entry in a quantum optimization database, the first entry comprising a result of a previous execution of the first one or more instructions. The method also comprises, responsive to determining that the first one or more instructions correspond to the first entry in the quantum optimization database, modifying the quantum service definition file to incorporate the result of the previous execution of the first one or more instructions in place of the first one or more instructions.

In another example, a computing device for optimizing execution of quantum service definition files using a quantum optimization database is disclosed. The computing device comprises a system memory, and a processor device communicatively coupled to the system memory. The processor device is to identify a first one or more instructions within a quantum service definition file of a quantum service. The processor device is further to determine that the first one or more instructions correspond to a first entry in a quantum optimization database, the first entry comprising a result of a previous execution of the first one or more instructions. The processor device is also to, responsive to determining that the first one or more instructions correspond to the first entry in the quantum optimization database, modify the quantum service definition file to incorporate the result of the previous execution of the first one or more instructions in place of the first one or more instructions.

In another example, a non-transitory computer-readable medium for optimizing execution of quantum service definition files using a quantum optimization database is disclosed. The non-transitory computer-readable medium stores thereon computer-executable instructions that, when executed, cause one or more processor devices of a computing device to identify a first one or more instructions within a quantum service definition file of a quantum service. The computer-executable instructions further cause the one or more processor devices to determine that the first one or more instructions correspond to a first entry in a quantum optimization database, the first entry comprising a result of a previous execution of the first one or more instructions. The computer-executable instructions also cause the one or more processor devices to, responsive to determining that the first one or more instructions correspond to the first entry in the quantum optimization database, modify the quantum service definition file to incorporate the result of the previous execution of the first one or more instructions in place of the first one or more instructions.

DETAILED DESCRIPTION

Quantum computing involves the use of quantum bits, referred to herein as “qubits,” each of which has properties (such as superposition and entanglement) 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 to provide desired functionality. The process for instantiating qubits, placing them into specific quantum states and relationships, storing values using the qubits, and/or subsequently deallocating and reusing the qubits may require multiple qubits as well as the execution of multiple instruction sequences. The ability to execute quantum services thus may be limited by factors such as the availability of quantum resources such as qubits, the availability of processing resources, the environmental conditions in which the quantum computing device operates, and the like. As quantum computing continues to increase in popularity and become more commonplace, functionality for optimizing the execution of quantum service definition files to mitigate the effects of these and other factors will be desirable.

In this regard, examples disclosed herein implement an optimization service for optimizing execution of quantum service definition files using a quantum optimization database. The optimization service is executed by a processor device of a computing device and provides a mechanism for substituting sets of one or more instructions within a quantum service definition file of a quantum service (e.g., a Quantum Assembly (QASM) file, as a non-limiting example) with results generated by a previous execution of those sets of one or more or more instructions. As discussed in greater detail below, the optimization service may be executed by a classical computing device in conjunction with a quantum simulator (e.g., the Qiskit quantum computing framework, as a non-limiting example), by a quantum computing device executing a quantum service, or by a combination thereof. For instance, a classical computing device may execute an instance of the optimization service to populate the quantum optimization database with entries for a quantum service definition file of a quantum service, and a quantum computing device may subsequently execute another instance of the optimization service prior to or during execution of the quantum service. The operations discussed below may be performed in some examples as a pre-execution optimization step for the quantum service definition file or may be performed during execution of the quantum service.

In exemplary operation, the optimization service identifies one or more instructions within a quantum service definition file of a quantum service. The one or more instructions may comprise a single instruction or may comprise multiple instructions that together accomplish a particular task, such as configuring a qubit. The one or more instructions may be identified based on formatting of the instructions within the quantum service definition file, and/or based on rules applied by the optimization service.

The optimization service then determines whether the one or more instructions correspond to an entry in a quantum optimization database, where the entry stores a result of a previous execution of the one or more instructions. The result stored by the entry may comprise, e.g., a data value resulting from a calculation, a quantum state of a qubit, and/or a value stored by a qubit, as non-limiting examples. If the one or more instructions are determined to correspond to an entry in the quantum optimization database, the optimization service modifies the quantum service definition file to incorporate the result of the previous execution of the one or more instructions in place of the one or more instructions. For instance, the optimization service may modify the quantum service definition file to remove the one or more instructions from the quantum service definition file and add a new instruction that directly provides the result of the previous execution of the one or more instructions.

In some examples, the entry may comprise an instruction identifier of the one or more instructions (e.g., one or more line numbers of the one or more instructions, a hash value generated based on the content of the one or more instructions, and/or the like, as non-limiting examples) and the contents of the one or more instructions. The one or more instructions may then be determined to correspond to the entry based the instruction identifier and/or on the contents of the one or more instructions. Some examples may provide that the entry further comprises a computing device identifier of a computing device on which the previous execution of the one or more instructions was performed. In such examples, the operations for determining that the one or more instructions correspond to the entry may include determining that the computing device identifier corresponds to the computing device executing the optimization service. Similarly, the entry in some examples may include an environmental condition indication that represents an environmental condition (e.g., temperature, processor load, memory usage, noise levels, and/or the like, as non-limiting examples) under which the previous execution of the one or more instructions was performed. The operations for determining that the one or more instructions correspond to the entry thus may include determining that the environmental condition indication of the first entry corresponds to a current operating environmental condition of the processor device.

According to some examples, the entry may also include a confidence indicator that can be used to indicate a level of confidence in the result generated by the previous execution of the one or more instructions. In such examples, modifying the quantum service definition file to incorporate the result of the previous execution of the one or more instructions may be performed only if a value of the confidence indicator of the entry exceeds a confidence threshold. Otherwise, the optimization service may initiate execution of the one or more instructions, obtain a result of execution of the one or more instructions, and determine whether the result matches the result of the previous execution of the one or more instructions. If so, the optimization service may increment the value of the confidence indicator of the entry corresponding to the one or more instructions.

Some examples may provide that, if the optimization service determines that no entry in the quantum optimization database corresponds to the one or more instructions, the optimization service may initiate execution of the one or more instructions and obtain a result of execution of the one or more instructions. The optimization service may then generate an entry in the quantum optimization database corresponding to the one or more instructions. The entry may comprise an instruction identifier of the one or more instructions, a content of the one or more instructions, and the result of execution of the one or more instructions. In some examples, the entry may further comprise a computing device identifier of the computing device, an environmental condition indication indicating an environmental condition under which the execution of the one or more instructions was performed, and/or a confidence indicator, as non-limiting examples.

FIG.1is a block diagram of a computing system10according to one example. The computing system10includes a classical computing device12that comprises a system memory14and a processor device16. The computing system10further includes a quantum computing device18that comprises a system memory20and a processor device22. The classical computing device12and the quantum computing device18in the example ofFIG.1are communicatively coupled via a classical communications link24, which may comprise a private network or a public network such as the internet. The classical computing device12and the quantum computing device18are also communicatively coupled to each other and/or to other quantum computing devices (not shown) via a quantum channel26over which qubits may be transmitted. It is to be understood that the computing system10, according to some examples, may include more or fewer quantum computing devices and/or classical computing devices than illustrated inFIG.1. Additionally, the classical computing device12and/or the quantum computing device18in some examples may include constituent elements in addition to those illustrated inFIG.1.

The quantum computing device18inFIG.1operates in quantum environments but is capable of operating using classical computing principles or quantum computing principles. When using quantum computing principles, the quantum computing device18performs computations that utilize quantum-mechanical phenomena, such as superposition and/or entanglement states. The quantum computing device18may operate under certain environmental conditions, such as at or near zero degrees (0°) Kelvin. When using classical computing principles, the quantum computing device18utilizes binary digits that have a value of either zero (0) or one (1).

In the example ofFIG.1, the quantum computing device18executes a quantum operating system (OS)28that provides functionality for managing execution of quantum services such as a quantum service30. The quantum service30comprises a process that employs one or more qubits such as qubits32(0)-32(B) to perform quantum operations. The quantum service30ofFIG.1is defined by a quantum service definition file34, which comprises a plurality of quantum programming instructions (referred to herein as “instructions” and captioned as “INSTRUCTION” inFIG.1)36(0)-36(Q) for allocating and manipulating qubits to achieve a desired functionality. The quantum service definition file34in some examples may comprise a QASM file, as a non-limiting example. Each of the qubits32(0)-32(B) may be used by quantum services such as the quantum service30to store a data value (not shown), and/or may have a quantum state (not shown) (e.g., spin, as a non-limiting example) into which the qubit32(0)-32(B) is programmatically placed.

To maintain information for qubits such as the qubits32(0)-32(B), the quantum OS28provides a qubit registry38, which comprises a plurality of qubit registry entries (not shown) that each correspond to a qubit. The qubit registry38maintains and provides access to data relating to the qubits implemented by the quantum computing device18, including a count of the total number of qubits implemented by the quantum computing device18, and a count of the number of available qubits that are currently available for allocation, as non-limiting examples. Each of the qubit registry entries of the qubit registry38also stores qubit metadata for a corresponding qubit. The qubit metadata may include, as non-limiting examples, an identifier of the corresponding qubit, an availability indicator that indicates whether the corresponding qubit is available for use or is in use by a specific quantum service, an identifier of a quantum service that is associated with the corresponding qubit or to which the corresponding qubit is allocated, and/or an entanglement indicator that indicates whether the corresponding qubit is in an entangled state. The functionality of the qubit registry38may be made accessible to other services and processes (e.g., via defined Application Programming Interfaces (APIs), as a non-limiting example).

Execution of quantum services such as the quantum service30is facilitated by a quantum task manager40and a quantum service scheduler42, each of which operates in a manner analogous to their conventional classical counterparts. Thus, the quantum task manager40of the quantum OS28handles operations for creating, monitoring, and terminating quantum services. Likewise, the quantum service scheduler42of the quantum OS28controls the scheduling of quantum services for execution by the processor device22and the allocation of processing resources to executing quantum services. The functionality of the quantum task manager40and the quantum service scheduler42may be made accessible to other services and processes (e.g., via defined APIs, as a non-limiting example).

As quantum computing continues to increase in popularity and become more commonplace, functionality for optimizing the execution of quantum service definition files such as the quantum service definition file34will be desirable. In this regard, examples disclosed herein implement an optimization service44for optimizing execution of quantum service definition files using a quantum optimization database46comprising a plurality of entries48(0)-48(D). The optimization service44accomplishes this by substituting sets of one or more of the instructions36(0)-36(Q) within the quantum service definition file34of the quantum service30with results generated by a previous execution of the set of one or more of the instructions36(0)-36(Q). The optimization service44in the example ofFIG.1is executed by the classical computing device12in conjunction with a quantum simulator50, which may comprise the Qiskit quantum computing framework, as a non-limiting example. Alternatively or additionally, the optimization service44according to some examples may be executed by the quantum computing device18executing the quantum service30. Thus, for example, the classical computing device12may execute an instance of the optimization service44to populate the quantum optimization database46, and the quantum computing device18may subsequently execute another instance of the optimization service44prior to or during execution of the quantum service30. In some examples, the operations discussed herein may be performed as a pre-execution optimization step for the quantum service definition file34, or may be performed during execution of the quantum service30by modifying the quantum service definition file34“in-flight.”

In exemplary operation, the optimization service44identifies one or more instructions within the quantum service definition file34of the quantum service30. The one or more instructions may comprise a single instruction or may comprise multiple instructions that together accomplish a particular task. For example, some tasks involved with allocating and configuring qubits may require multiple instructions among the instructions36(0)-36(Q), which may be processed together as a group by the optimization service44. Multiple instructions among the instructions36(0)-36(Q) may be identified as instructions to be processed together based on formatting of the instructions36(0)-36(Q) within the quantum service definition file34, and/or based on rules (not shown) applied by the optimization service44during processing. In the example ofFIG.1, it is assumed for the sake of illustration that the optimization service44identifies the instruction36(0) as the one or more instructions, and thus the instruction36(0) is referred to herein as the “one or more instructions36(0).”

The optimization service44next determines whether the one or more instructions36(0) corresponds to one of the entries48(0)-48(D) in the quantum optimization database46. Each of the entries48(0)-48(D) corresponds to one or more of the instructions36(0)-36(Q) and stores a result of a previous execution of the corresponding one or more instructions36(0)-36(Q). In the example ofFIG.1, the one or more instructions36(0) correspond to the entry48(0), which stores a result (captioned as “RSLT” inFIG.1)52of a previous execution of the one or more instructions36(0). The result52stored by the entry may comprise, e.g., a data value resulting from a calculation, a quantum state of a qubit, and/or a value stored by a qubit, as non-limiting examples.

The entry48(0) in the example ofFIG.1also stores additional information related to the one or more instructions36(0). The entry48(0) stores an instruction identifier (captioned as “INST ID” inFIG.1)54that uniquely identifies the one or more instructions36(0) corresponding to the entry48(0). The instruction identifier54may comprise one or more line numbers of the one or more instructions36(0) and/or a hash value generated based on the content of the one or more instructions36(0), as non-limiting examples. The entry48(0) also stores the actual content (captioned as “CONT” inFIG.1)56of the one or more instructions36(0), and stores a computing device identifier (captioned as “CMP ID” inFIG.1)58that identifies a computing device on which the one or more instructions36(0) were executed to generate the result52.

The entry48(0) further stores an environmental condition indication (captioned as “ENV IND” inFIG.1)60that represents an environmental condition under which the previous execution of the one or more instructions36(0) was performed. Thus, the environmental condition indication60may comprise an indication of temperature, processor load, memory usage, and/or noise level, as non-limiting examples. The entry48(0) additionally stores a confidence indicator (captioned as “CONF” inFIG.1)62that can be used to indicate a level of confidence in the result52generated by the previous execution of the one or more instructions36(0). It is to be understood that, although not illustrated inFIG.1, each of the entries48(0)-48(D) includes fields corresponding to the result52, the instruction identifier54, the content56, the computing device identifier58, the environmental condition indication60, and the confidence indicator62of the entry48(0).

In some examples, the optimization service44may determine that the one or more instructions36(0) correspond to the entry48(0) by determining that the instruction identifier54of the entry48(0) identifies the one or more instructions36(0), and/or that the content56of the entry48(0) matches the one or more instructions36(0). Some examples may provide that the operations for determining that the one or more instructions36(0) correspond to the entry48(0) may include determining that the computing device identifier58corresponds to the computing device executing the optimization service44(e.g., the classical computing device12, in the example ofFIG.1). The optimization service44according to some examples may determine that the one or more instructions36(0) correspond to the entry48(0) by determining that the environmental condition indication60of the entry48(0) corresponds to a current operating environmental condition (i.e., a current temperature, a current processor load, a current memory usage, and/or a current noise level, as non-limiting examples) of the processor device16of the classical computing device12.

If the optimization service44determines that the one or more instructions36(0) correspond to an entry such as the entry48(0) in the quantum optimization database46, the optimization service44modifies the quantum service definition file34to incorporate the result52of the previous execution of the one or more instructions36(0) in place of the one or more instructions36(0) within the quantum service definition file34. Thus, for example, the optimization service44may modify the quantum service definition file34to remove the one or more instructions36(0) from the quantum service definition file34, and add a new instruction (not shown) that directly provides the result52of the previous execution of the one or more instructions36(0) (e.g., by setting a variable to store the result52).

In some examples, the optimization service44may modify the quantum service definition file34to incorporate the result52of the previous execution of the one or more instructions36(0) only if a value of the confidence indicator62of the entry48(0) exceeds a confidence threshold64. If the value of the confidence indicator62does not exceed the confidence threshold64, the optimization service44may initiate execution of the one or more instructions36(0). For instance, in examples in which the optimization service44is executed by the classical computing device12, the optimization service44may access functionality of the quantum simulator50(e.g., via an API of the quantum simulator50) to initiate execution the one or more instructions36(0). In examples in which the optimization service44is executed by the quantum computing device18, the optimization service44may access functionality of the quantum OS28or elements thereof to initiate execution of the one or more instruction36(0). The optimization service44then obtains a result66of execution of the one or more instructions36(0) and determines whether the result66matches the result52of the previous execution of the one or more instructions36(0). If so, the optimization service44increments the value of the confidence indicator62of the entry48(0) corresponding to the one or more instructions36(0).

According to some examples, if the optimization service44determines that none of the entries48(0)-48(D) in the quantum optimization database46corresponds to the one or more instructions36(0), the optimization service44may initiate execution of the one or more instructions36(0) as described above and obtain a result68of execution of the one or more instructions36(0). The optimization service may then generate an entry such as the entry48(0) in the quantum optimization database46corresponding to the one or more instructions36(0) and store the result68as the result52of the entry48(0).

It is to be understood that, because the optimization service44is a component of the quantum computing device18, functionality implemented by the optimization service44may be attributed to the computing system10generally. Moreover, in examples where the optimization service44comprises software instructions that program the processor device16to carry out functionality discussed herein, functionality implemented by the optimization service44may be attributed herein to the processor device16. It is to be further understood that while, for purposes of illustration only, the optimization service44is depicted as a single component, the functionality implemented by the optimization service44may be implemented in any number of components, and the examples discussed herein are not limited to any particular number of components. Moreover, it is noted that while, for purposes of illustration and simplicity, the examples are illustrated as being implemented by a processor device set that includes a single processor device on a single computing device, in other environments, such as a distributed and/or clustered environment, the examples may be implemented on a computer system that includes a processor device set that includes a plurality of processor devices of a plurality of different computing devices, and functionality of the examples may be implemented on different processor devices of different computing devices. Thus, irrespective of the implementation, the examples may be implemented on a computer system that includes a processor device set made up of one or more processor devices of one or more computing devices.

FIGS.2A-2Dprovide a flowchart70to illustrate exemplary operations performed by the computing system10ofFIG.1for optimizing execution of quantum service definition files using a quantum optimization database according to one example. Elements ofFIG.1are referenced in describingFIGS.2A-2Dfor the sake of clarity. It is to be understood that, in some examples, some operations illustrated inFIGS.2A-2Dmay be performed in an order other than illustrated herein, and/or may be omitted. InFIG.2A, operations begin with a processor device, such as the processor device16of the classical computing device12ofFIG.1(e.g., by executing the optimization service44), identifying one or more instructions within a quantum service definition file of a quantum service (e.g., the one or more instructions36(0) within the quantum service definition file34of the quantum service30ofFIG.1) (block72). In some examples, the operations of block72for identifying the one or more instructions may comprise the optimization service44identifying the one or more instructions36(0) during execution of the quantum service30(block74).

The optimization service44next determines whether the one or more instructions36(0) corresponds to an entry (e.g., the entry48(0) ofFIG.1) in a quantum optimization database (e.g., the quantum optimization database46ofFIG.1), the entry48(0) comprising a result (e.g., the result52ofFIG.1) of a previous execution of the one or more instructions36(0) (block76). If no entry corresponding to the one or more instructions36(0) is identified within the quantum optimization database46, operations in some examples may resume at block78ofFIG.2C. However, if it is determined at decision block76that the one or more instructions36(0) corresponds to the entry48(0), the optimization service44in some examples may further determine whether a computing device identifier of the entry48(0) (e.g., the computing device identifier58ofFIG.1) corresponds to the computing device12(block80). If not, operations in such examples may continue at block78ofFIG.2C. If the optimization service44in such examples determines at decision block80that the computing device identifier58of the entry48(0) corresponds to the computing device12, operations continue at block82ofFIG.2B.

Referring now toFIG.2B, the optimization service44according to some examples may determine whether an environmental condition indication of the entry48(0) (e.g., the environmental condition indication60ofFIG.1) corresponds to a current operating environmental condition of the processor device16(block82). If not, operations in such examples may continue at block78ofFIG.2C. However, if it is determined in such examples at decision block82that the environmental condition indication60of the entry48(0) does correspond to a current operating environmental condition of the processor device16, the optimization service44in some examples may determine whether a value of a confidence indicator of the entry48(0) (e.g., the confidence indicator62ofFIG.1) exceeds a confidence threshold (such as the confidence threshold64ofFIG.1) (block84). If not, operations in such examples may continue at block86ofFIG.2D.

If the optimization service44determines that the conditions of decision block76ofFIG.2A(and, in some examples, the conditions of decision block80ofFIG.2Aand/or decision blocks82and/or84ofFIG.2B) are satisfied, the optimization service44modifies the quantum service definition file34to incorporate the result52of the previous execution of the one or more instructions36(0) in place of the one or more instructions36(0) (block88). In this manner, the quantum service definition file34can be optimized by avoiding execution of the one or more instructions36(0).

Turning now toFIG.2C, if the optimization service44determines that the conditions of decision block76ofFIG.2A(and, according to some examples, the conditions of decision block80ofFIG.2Aand/or decision block82ofFIG.2B) are not met, the optimization service44initiates execution of the one or more instructions36(0) (block78). The optimization service44next obtains a result of execution of the one or more instructions36(0) (e.g., the result68ofFIG.1) (block90). The optimization service44then generates an entry (e.g., the entry48(0) ofFIG.1) corresponding to the one or more instructions36(0), the entry48(0) comprising an identifier of the one or more instructions36(0) (e.g., the identifier54ofFIG.1), a content of the one or more instructions36(0) (e.g., the content56ofFIG.1), and the result of execution of the one or more instructions36(0) (e.g., the result68ofFIG.1stored as the result52) (block92).

Referring now toFIG.2D, if the optimization service44in some examples determines that the conditions of decision block84ofFIG.2Bare not met, the optimization service44initiates execution of the one or more instructions36(0) (block86). The optimization service44next obtains a result of execution of the one or more instructions36(0) (e.g., the result66ofFIG.1) (block94). The optimization service44then determines whether the result66of the execution of the one or more instructions36(0) matches the result52of the previous execution of the one or more instructions36(0) (block96). If so, the optimization service44in such examples increments a value of the confidence indicator62of the entry48(0) (block98). If the optimization service44determines at decision block96that the result66does not match the result52, the optimization service44leaves the confidence indicator62unchanged.

FIG.3is a simpler block diagram of the computing system10ofFIG.1for optimizing execution of quantum service definition files using a quantum optimization database, according to one example. In the example ofFIG.3, a computing system100includes a computing device102(e.g., a classical computing device or a quantum computing device) that comprises a system memory104and a processor device106. In exemplary operation, the processor device106identifies one or more instructions108within a quantum service definition file110of a quantum service112. The processor device106next determines that the one or more instructions108corresponds to an entry114in a quantum optimization database116, where the entry114stores a result118of a previous execution of the corresponding one or more instructions108. The processor device106then modifies the quantum service definition file110to incorporate the result118of the previous execution of the one or more instructions108in place of the one or more instructions108within the quantum service definition file110.

To illustrate a simplified method for optimizing execution of quantum service definition files using a quantum optimization database in the computing system100ofFIG.3according to one example,FIG.4provides a flowchart120. Elements ofFIG.3are referenced in describingFIG.4for the sake of clarity. InFIG.4, operations begin with the processor device106of the computing device102identifying the one or more instructions108within the quantum service definition file110of the quantum service112(block122). The processor device106next determines that the one or more instructions108corresponds to the entry114in the quantum optimization database116, the entry114comprising the result118of a previous execution of the one or more instructions108(block124). In response to determining that the one or more instructions108corresponds to the entry114in the quantum optimization database116, the processor device106modifies the quantum service definition file110to incorporate the result118of the previous execution of the one or more instructions108in place of the one or more instructions108(block126).

FIG.5is a block diagram of a quantum computing device128, such as the quantum computing device18ofFIG.1, suitable for implementing examples according to one example. The quantum computing device128may comprise any suitable quantum computing device or devices. The quantum computing device128can operate using classical computing principles or quantum computing principles. When using quantum computing principles, the quantum computing device128performs computations that utilize quantum-mechanical phenomena, such as superposition and entanglement. The quantum computing device128may operate under certain environmental conditions, such as at or near zero degrees (0°) Kelvin. When using classical computing principles, the quantum computing device128utilizes binary digits that have a value of either zero (0) or one (1).

The quantum computing device128includes a processor device130and a system memory132. The processor device130can be any commercially available or proprietary processor suitable for operating in a quantum environment. The system memory132may include volatile memory134(e.g., random-access memory (RAM)). The quantum computing device128may further include or be coupled to a non-transitory computer-readable medium such as a storage device136. The storage device136and 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 qubits138(0)-138(N).

A number of modules can be stored in the storage device136and in the volatile memory134, including an operating system140and one or more modules, such as an optimization service142. All or a portion of the examples may be implemented as a computer program product144stored on a transitory or non-transitory computer-usable or computer-readable medium, such as the storage device136, which includes complex programming instructions, such as complex computer-readable program code, to cause the processor device130to 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 device130.

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 device128may also include a communications interface146suitable for communicating with other computing systems, including, in some implementations, classical computing devices.

FIG.6is a block diagram of a processor-based computing device148(“computing device148” or “classical computing device148”), such as the classical computing device12ofFIG.1in some examples, suitable for implementing examples according to one example. The computing device148may comprise any computing or electronic device capable of including firmware, hardware, and/or executing software instructions to implement the functionality described herein, such as a computer server, a desktop computing device, a laptop computing device, a smartphone, a computing tablet, or the like. The computing device148includes a processor device150, a system memory152, and a system bus154. The system bus154provides an interface for system components including, but not limited to, the system memory152and the processor device150. The processor device150can be any commercially available or proprietary processor.

The system bus154may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of commercially available bus architectures. The system memory152may include non-volatile memory156(e.g., read-only memory (ROM), erasable programmable ROM (EPROM), electrically EPROM (EEPROM), etc.), and volatile memory158(e.g., RAM). A basic input/output system (BIOS)160may be stored in the non-volatile memory156and can include the basic routines that help to transfer information among elements within the computing device148. The volatile memory158may also include a high-speed RAM, such as static RAM, for caching data.

A number of modules can be stored in the storage device162and in the volatile memory158, including an operating system164and one or more program modules166(e.g., the optimization service44ofFIG.1) which may implement the functionality described herein in whole or in part. It is to be appreciated that the examples can be implemented with various commercially available operating systems164or combinations of operating systems164. All or a portion of the examples may be implemented as a computer program product stored on a transitory or non-transitory computer-usable or computer-readable storage medium, such as the storage device162, which includes complex programming instructions, such as complex computer-readable program code, to cause the processor device150to carry out the steps described herein. Thus, the computer-readable program code can comprise software instructions for implementing the functionality of the examples described herein when executed on the processor device150. The processor device150may serve as a controller, or control system, for the computing device148that is to implement the functionality described herein.

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). Such input devices may be connected to the processor device150through an input device interface168that is coupled to the system bus154but can be connected by other interfaces, such as a parallel port, an Institute of Electrical and Electronic Engineers (IEEE) 1394 serial port, a Universal Serial Bus (USB) port, an IR interface, and the like.

The computing device148may also include a communications interface170suitable for communicating with a network as appropriate or desired. The computing device148may also include a video port172to interface with a display device to provide information to a user.