Containerized execution orchestration of quantum tasks on quantum hardware provider quantum processing units
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- AMAZON TECH INC
- Filing Date
- 2024-09-26
- Publication Date
- 2026-07-01
AI Technical Summary
Existing quantum computing technologies face challenges in efficiently orchestrating quantum task execution across diverse quantum hardware providers due to varying qubit technologies, error rates, and resource management complexities, which hinder effective utilization by users lacking deep quantum mechanics knowledge.
A cloud-based quantum computing service provides customers with a software container that enables orchestration of quantum tasks using third-party quantum processing units, incorporating a quantum task validator, translator, and compiler, along with token management for access and resource tracking, allowing selection and execution of quantum tasks on compatible QPUs.
Facilitates seamless access and management of quantum resources across different quantum hardware providers, simplifying the experience for users and enabling efficient execution of quantum tasks while optimizing resource utilization and billing.
Smart Images

Figure US2024048601_03072025_PF_FP_ABST
Abstract
Description
CONTAINERIZED EXECUTION ORCHESTRATION OF QUANTUM TASKS ON QUANTUM HARDWARE PROVIDER QUANTUM PROCESSING UNITSBACKGROUND
[0001] Quantum computing utilizes the laws of quantum physics to process information. Quantum physics is a theory that describes the behavior of reality at the fundamental level. It is currently the only physical theory that is capable of consistently predicting the behavior of microscopic quantum objects like photons, molecules, atoms, and electrons.
[0002] A quantum computer is a device that utilizes quantum physics to allow one to write, store, process and read out information encoded in quantum states, e.g., the states of quantum objects. A quantum object is a physical object that behaves according to the laws of quantum physics. The state of a physical object is a description of the object at a given time.
[0003] In quantum physics, the state of a two-level quantum system, or simply, a qubit, is a list of two complex numbers whose squares sum up to one. Each of the two numbers is called an amplitude, or quasi-probability, and their squared absolute values are probabilities that a measurement of the qubit results in zero or one. A fundamental and counterintuitive difference between a probabilistic bit (e.g., a classical zero or one bit) and the qubit is that a probabilistic bit represents a lack of information about a two-level classical system, while a qubit contains maximal information about a two-level quantum system.
[0004] Quantum computers are based on such quantum bits (qubits), which may experience the phenomena of “superposition” and “entanglement.” Superposition allows a quantum system to be in multiple states at the same time. For example, whereas a classical computer is based on bits that are either zero or one, a qubit may be both zero and one at the same time, with different probabilities assigned to zero and one. Entanglement is a strong correlation between quantum systems, such that the quantum systems are inextricably linked even if separated by great distances.
[0005] A quantum algorithm comprises a reversible transformation acting on qubits in a desired and controlled way, followed by a measurement on one or multiple qubits. For example, if a system has two qubits, a transformation may modify four numbers; with three qubits this becomes eight numbers, and so on. As such, a quantum algorithm acts on a list of numbers exponentially large as dictated by the number of qubits. To implement a transform, the transform may be decomposed into small operations acting on a single qubit, or a pair of qubits, as an example. Such small operations may be called quantum gates and a specific arrangement of the quantum gates implements a quantum circuit.
[0006] There are different types of qubits that may be used in quantum computers, each having different advantages and disadvantages. For example, some quantum computers may include qubits built from superconductors, trapped ions, semiconductors, photonics, etc. Each may experience different levels of interference, errors and decoherence. Also, some may be more useful for generating particular types of quantum circuits or quantum algorithms, while others may be more useful for generating other types of quantum circuits or quantum algorithms. Also, costs, run-times, error rates, availability, etc. may vary across quantum computing technologies.BRIEF DESCRIPTION OF THE DRAWINGS
[0007] FIG. 1 illustrates a quantum computing service of a service provider network, wherein the quantum computing service includes a containerized execution service that provides software containers to customers to enable orchestration, at customer classical computing resources, of quantum task execution using quantum processing units of third-party quantum hardware providers, according to some embodiments.
[0008] FIG. 2 is a process flow diagram illustrating interactions between a customer quantum algorithm, a software container implemented using customer classical computing resources, a containerized execution service of a cloud-based quantum computing service, and a third-party quantum hardware provider, according to some embodiments.
[0009] FIG. 3 illustrates additional components that may be included in the quantum computing service, according to some embodiments.
[0010] FIG. 4 illustrates example components of a software container provided to a customer by a quantum computing service in order to implement local execution orchestration of quantum tasks, according to some embodiments.
[0011] FIG. 5 is a flowchart illustrating a process performed by a quantum computing service to provide local quantum task execution orchestration, via containerized software, to customers by providing a software container and a quantum access token to a requesting customer for use by the requesting customer in implementing the local quantum task execution orchestration, according to some embodiments.
[0012] FIG. 6 is a flowchart illustrating a process performed by a quantum computing service to collect quantum hardware provider quantum processing unit (QPU) performance information and to distribute the collected quantum processing unit (QPU) performance information to software containers provided to customers of the quantum computing service, according to some embodiments.
[0013] FIG. 7 is a flowchart illustrating a process, performed by code included in a software container provided to a customer of the quantum computing service, to select a quantum processingunit and request an access token for the selected quantum processing unit, wherein the quantum processing unit is selected to execute a given quantum circuit associated with a quantum task submitted for local quantum task execution orchestration, according to some embodiments.
[0014] FIG. 8 is a flowchart illustrating additional processes performed by code included in a software container provided to a customer of a quantum computing service, according to some embodiments.
[0015] FIG. 9 is a block diagram illustrating an example classical computing device that may be used in at least some embodiments.
[0016] While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to. When used in the claims, the term “or” is used as an inclusive or and not as an exclusive or. For example, the phrase “at least one of x, y, or z” means any one of x, y, and z, as well as any combination thereof.DETAILED DESCRIPTION
[0017] The present disclosure relates to methods and apparatus for providing local quantum task execution orchestration to quantum computing service customers, using remote quantum hardware that is remote from the customers. For example, a cloud-based quantum computing service provides a customer of the cloud-based quantum computing service a software container comprising software that enables orchestration of execution of a quantum task. The code included in the software container runs on customer classical computing hardware and interfaces with remote quantum computing devices, such as quantum processing units of a quantum hardware provider to run a quantum circuit associated with a quantum task. In some embodiments, the software container receives quantum processing unit (QPU) information for QPUs that are eligible to execute customer quantum circuits. For example, a QPU information service of the quantum computing service collects QPU performance information and / or calibration information from the respective participating quantum hardware providers (QHPs) and / or for internal QPUs of the quantum computing service and provides this collected QPU information to the customer-issuedsoftware containers for use in selecting a QPU to execute a given quantum task. A quantum task execution request provided to the customer-issued software container may indicate one or more constraints for selecting a QPU that is to be used to execute the quantum task, such as a type of qubit technology, an error rate, a gate fidelity, a qubit fidelity, a qubit count, etc. Code executing in the customer-issued software container may evaluate the received QPU information in view of the specified constraints for a quantum task to select a given QPU of a larger set of available QPUs of the QHPs that are available to execute the quantum task, wherein the given selected QPU is selected to satisfy the specified constraints. Also, in some embodiments, a quantum task execution request received at the customer-issued software container may specify a particular QHP and / or QPU to be used to execute the quantum task, in which case the specified QHP or QPU will be selected, if available.
[0018] Once a QPU to be used to execute a quantum task is selected, the customer-issued software container submits a request to a containerized execution service of the quantum hardware provider for a quantum access token, and in response is issued a quantum access token for the selected QPU. The quantum access token entitles the customer-issued software container to add the quantum task to a queue for the specified QPU. Also, the containerized execution service of the quantum computing service may provide a notification to the QHP hosting the QPU that the quantum access token has been issued. In this way, when the quantum task and issued quantum token are presented for inclusion in the queue of the given QPU, it can be confirmed that authorization has been granted to add the quantum task to the queue. Also, presentment of the quantum token may be used to track usage of the selected QPU by customers of the quantum computing service, for example for billing purposes.
[0019] In some embodiments, a customer-issued software container includes executable code to implement a quantum task validator, a quantum circuit translator, and a quantum circuit compiler. In some embodiments, the quantum circuit validator may ensure that a received quantum task is a valid task, and may further ensure that any constraints associated with the quantum task are valid. In some embodiments, this may include selecting a QPU to execute the quantum task and ensuring constraints associated with QPU selection for the quantum task do not rule out all available QPUs. For example, if a customer submitted a quantum task including a quantum circuit with technology specific gates specified in the quantum circuit definition, but also submitted constraints that ruled out use of a QPU with gates matching those specified in the quantum circuit, the validator would flag the quantum task execution request as an invalid request.
[0020] In some embodiments, the quantum circuit may be submitted in an intermediate representation that is not specific to a single quantum computing technology, and a quantum circuittranslator may translate the quantum circuit into a native format for a particular QPU technology. For example, gates represented in the intermediate representation may be replaced with native gates, or sets of native gates, that perform equivalent logic as the gates in the intermediate representation, but which are gates that are natively implemented in a quantum computing technology corresponding to the selected QPU. Once translated into a native representation, the quantum circuit may then be compiled into an executable artifact that can be submitted to a QHP or QPU for inclusion in a QPU queue for execution. In some embodiments, the customer-issued software container includes executable code for performing compilation passes and / or application programmatic interfaces (APIs) for offloading one or more compilation passes to a more sophisticated compilation service of the quantum computing service. For example, compilation passes involving optimization, such as SAT solvers, etc., may be offloaded to a compilation service of a quantum computing service via container-side and service-side APIs. In some embodiments, some compilation passes may be performed locally using the compilation code included in the customer-issued software container, while other compilation passes are performed remotely using a compilation service of the quantum computing service. Also, in some embodiments, compilation may be fully performed locally or may be fully offloaded to the compilation service of the quantum computing service. Also, in some embodiments, the customer-issued software container may cache compiled artifacts, for example as received as a result of remote compilation, and re-use the cached compiled artifacts without repeating the remote compilation. For example, the cached compiled artifacts may be issued multiple times with associated quantum access tokens for execution on a given QPU.
[0021] FIG. 1 illustrates a quantum computing service of a service provider network, wherein the quantum computing service includes a containerized execution service that provides software containers to customers to enable orchestration, at customer classical computing resources, of quantum task execution using quantum processing units of third-party quantum hardware providers, according to some embodiments.
[0022] Service provider network 100 includes quantum computing service 102 and is connected over a network to customers, such as customers 104, 106, and 108, and is also connected over the network (or another network) to quantum hardware providers 128, 130, 132, and 134. In some embodiments, the network connections may be over a public network, such as the internet, or a private directly connected network. Additionally, quantum computing service interceptors 136, 138, 140, and 142 may be implemented using edge computing devices of the service provider network 100. Additional details about other components that may be included in the quantumcomputing service 102 and at the quantum hardware providers 128, 130, 132, and 134 are further described below in regard to FIG. 3.
[0023] As an example, at step 101 customer 104 may provide a request to the quantum computing service 102 for implementation of containerized quantum execution using a customer- issued software container. In response, at step 103, the quantum computing service 102 issues the customer 104 a container 105 comprising code for implementing local quantum task execution orchestration using third-party quantum devices, such as those of quantum hardware providers 128, 130, 132, and 134.
[0024] Once container 105 is implemented using the classical computing resources of customer 104, customer code, such as customer quantum algorithm 107 may issue quantum tasks to the container 105, wherein the container 105 implements orchestration of execution of the received quantum tasks. For example, in response to receiving a quantum task from customer quantum algorithm 107, the code executing in the container 105 selects a QPU to be used to execute the quantum task and submits, at step 109, a request for a quantum access token to be issued for the selected QPU. In some embodiments, QPU information service 110 provides container 105 with QPU information for the QPUs of QHPs 128, 130, 132, and 134. In such situations, the code executing in the container 105 may select a given QPU based on the received QPU information and based on customer constraints and / or preferences with regard to QPU selection. At step 111, the container 105 receives from the containerized execution service 112, a quantum access token for the selected QPU. Then at step 113, the container 105 submits, over the network, a compiled version of the received quantum task and the quantum access token received from the containerized execution service 112. This is submitted to the QHP that hosts the selected QPU, such as quantum hardware provider 128. In some embodiments, the quantum computing service may optionally implement interceptors, such as QCS (quantum computing service) interceptor 136, adjacent to the quantum hardware providers. In such embodiments, the interceptors may intercept the submitted compiled quantum task and access token 113 and may perform various tasks. For example, the interceptor may verify the token and track token usage for billing purposes. Also, in some embodiments, the interceptor may perform additional compilation, such as further compiling a compiled artifact into a machine binary used by a given quantum hardware provider.
[0025] Subsequent to execution, execution results 115 may be returned to the customer 104. Also, in some embodiments, the execution results may be stored in a storage service of the service provider network 100, and an indication of where the results are stored may be provided back to customer 104.
[0026] In some embodiments, container API interfaces 116 may facilitate orchestration of some steps associated with quantum task execution orchestration that are performed by the quantum computing service in coordination with the code executing in the software container 105. For example, in some embodiments, translation module 118 and / or compilation module 114 may be used as an outside resource by code executing in the software container 105, for example to assist with translation or compilation.
[0027] FIG. 2 is a process flow diagram illustrating interactions between a customer quantum algorithm, a software container implemented using customer classical computing resources, a containerized execution service of a cloud-based quantum computing service, and a third-party quantum hardware provider, according to some embodiments.
[0028] At step 202, customer 104’s quantum algorithm 107 submits a quantum task to customer 104’ s container 105. The quantum task may include a quantum circuit that is be executed as part of performing the quantum task and may further include information specifying a QPU, specifying QPU constraints, and / or specifying QPU preferences for a QPU to be used to execute the quantum circuit associated with the quantum task. Additionally, the quantum task may specify a desired time of execution. At step 204, the code executing in container 105 sends a request to the containerized execution service 112 for a quantum token to be issued to customer 104 to access a QPU selected to perform the quantum task. In response, the containerized execution service 112, at step 206, provides notice (or a request) to the quantum hardware provider hosting the selected QPU, such as quantum hardware provider 128. Also, the notice may specify an access window within which the token is to be valid. At step 208, the quantum hardware provider acknowledges and / or accepts the token issuance. Then at step 210, the containerized execution service 112 issues the requested token to customer 104 via the customer’s container 105.
[0029] Also, the code executing in container 105 may concurrently (or subsequently) validate, translate, and / or compile a quantum circuit associated with the quantum task. For example, in some embodiments these steps may be performed concurrently with token acquisition or may be performed in response to receiving a valid quantum access token. In some embodiments, at least some aspects of these processes may be performed in conjunction with the quantum computing service, such as via container API interfaces 116.
[0030] Once the quantum circuit is compiled, at step 214, the code executing in the container 105 sends instruction executions to quantum hardware provider 128, wherein the execution instructions include a compiled version of the quantum circuit associated with the quantum task and also include the received quantum access token. At 216, the quantum hardware providerreturns the execution results, and at 218 the execution results are made available to the customer, such as via the customer’s quantum algorithm 107, or directly.
[0031] Also, at 220 the quantum hardware provider 128 (or an associated interceptor, such as interceptor 136) provides an invoice for the usage of the QHP’s QPU. In turn, at 222, the containerized exaction service 112 invoices the customer 104 for the QPU usage. In some embodiments, invoicing may be performed at a lower frequency than quantum task execution. For example, customers may be invoiced for QPU usage monthly for all quantum tasks executed in the prior month.Additional Details for An Example Quantum Computing Service
[0032] Generally speaking, as an alternative to building and maintaining a quantum computer, potential users of quantum computers may instead prefer to rely on a quantum computing service to provide access to quantum computers. Also, in some embodiments, a quantum computing service, as described herein, may enable potential users of quantum computers to access quantum computers based on multiple different quantum computing technologies and / or paradigms, without the cost and resources required to build or manage such quantum computers. Also, in some embodiments, a quantum computing service, as described herein (which includes a containerized execution service), may provide various services that simplify the experience of using a quantum computer such that potential quantum computer users lacking deep experience or knowledge of quantum mechanics, may, nevertheless, utilize quantum computing services to solve problems.
[0033] Also, in some embodiments, a quantum computing service, as described herein, may be used to supplement other services offered by a service provider network. For example, a quantum computing service may interact with a classical computing service to execute hybrid algorithms. In some embodiments, a quantum computing service may allow a classical computer to be accelerated by sending particular tasks to a quantum computer for execution, and then further performing additional classical compute operations using the results of the execution of a quantum computing object on the quantum computer. For example, a quantum computing service may allow for the acceleration of virtual machines implemented on classical hardware in a similar manner as a graphics processing unit (GPU) may accelerate graphical operations that otherwise would be performed on a central processing unit (CPU). A quantum computing service may also interact with other services offered by a service provider network such as a QPU characterization service introduced above.
[0034] In some embodiments, a quantum computing service may provide potential quantum computer users with access to quantum computers using various quantum computing technologies, such as quantum annealers, ion trap machines, superconducting machines, Rydberg atom arrays,photonic devices, etc. In some embodiments, a quantum computing service may provide customers with access to at least three broad categories of quantum computers including quantum annealers, circuit-based quantum computers, and analog or continuous variable quantum computers. As used herein, these three broad categories may be referred to as quantum computing paradigms.
[0035] In some embodiments, a quantum computing service may be configured to provide simulation services using classical hardware-based computing instances to simulate execution of a quantum circuit on a quantum computer. In some embodiments, a quantum computing service may be configured to perform general simulation and / or simulation that specifically simulates execution of a quantum circuit on a particular type of quantum computer of a particular quantum computer technology type or paradigm type. In some embodiments, simulation may be fully managed by a quantum computing service on behalf of a customer of the quantum computing service. For example, the quantum computing service may reserve sufficient computing capacity on a virtualized computing service of the service provider network to perform simulation without customer involvement in the details of managing the resources for the simulator.
[0036] In some embodiments, a quantum computing service may include a dedicated console that provides customers access to multiple quantum computing technologies. Furthermore, the quantum computing service may provide a quantum algorithm development kit that enables customers with varying levels of familiarity with quantum circuit design to design and execute quantum circuits. In some embodiments, a console of a quantum computing service may include various application programmatic interfaces (APIs), such as:• (Create / Delete / Update / Get / List)Simulator-Configuration - create, read, update, and delete (CRUD) operations for simulator configuration objects.• (Start / Cancel / Describe)Simulator - used to control each of the user-defined simulator instances.• (List / Describe) quantum processor units (QPUs)- retrieves quantum computer hardware information.• (Create / Cancel / List / Describe)Job - used to manage the lifecycle of a quantum job.• (Assign / Update / List) Quality of Service (QoS) guarantee - used to manage QoS guarantees for quantum jobs and / or quantum tasks.• (Create / Cancel / List / Describe)Task - used to manage the lifecycle of individual quantum tasks / quantum objects.
[0037] In some embodiments, a quantum algorithm development kit may include a graphical user interface, APIs or other interface to allow customers of a quantum computing service to define quantum objects, such as quantum tasks, algorithms or circuits, using the quantum algorithmdevelopment kit. In some embodiments, access to the quantum algorithm development kit may be extended to a customer, via service API interfaces of a customer-issued software container. In some embodiments, the quantum algorithm development kit may include an interface option that enables customers to share the quantum objects with other customers of the quantum computing service. For example, the quantum algorithm development kit may include a marketplace that allows customers to share or sell particular quantum objects with other customers. In some embodiments, the quantum algorithm development kit may include an interface element that allows customers to select a QoS to be applied for a quantum job or quantum tasks defined via the quantum algorithm development kit.
[0038] In some embodiments, results of the execution of a quantum circuit on a quantum computer at a quantum hardware provider location may be provided to the edge computing device at the quantum hardware provider location. The edge computing device may automatically transport the results to a secure storage service of the service provider network or directly to the customer, where the customer can access the results using the storage service of the service provider network or via a console of the quantum computing service or directly. Likewise, results of execution of a quantum circuit via a local QPU (e.g., a QPU located within the service provider network) may be accessed via the console of the quantum computing service.
[0039] In some embodiments, the results stored to the secure storage service may be seamlessly used by other services integrated into the service provider network, such as a QPU characterization service, a database service, an object-based storage service, a block-storage service, a data presentation service (that reformats the results into a more usable configuration), etc.
[0040] In some embodiments, a quantum computing service may support creating snapshots of results of executing a quantum circuit. For example, the quantum computing service may store snapshots of intermediate results of a hybrid algorithm or may more generally store snapshots of any results generated by executing a quantum circuit on a quantum computer. In some embodiments, an edge computing device at a hardware provider location may temporarily store results and may create snapshot copies of results stored on the edge computing device. The edge computing device may further cause the snapshot copies to be stored in an object-based data storage service of the service provider network. In some embodiments, snapshotting may not be performed, based on customer preferences.
[0041] Furthermore, as related to the description herein, it may be understood that quantum hardware, such as quantum hardware device(s), may be used to implement quantum computers, and / or various components of quantum computers (e.g., quantum processing units / cores (QPUs),routing spaces, magic state distillation factories, other components used to perform logical quantum computations, etc.). For example, a given quantum hardware device may resemble “building blocks” of a quantum computer, such as a grid (e.g., a one-dimensional grid, a two- dimensional grid, etc.) of qubits that may be initialized in various ways in order to form various components of a quantum computer, such as topological quantum codes. Quantum hardware devices may be further configured such that single qubit gates, multi-qubit gates, and / or other operations of quantum circuits may be performed between qubits of the quantum hardware devices (according to a given physical qubit connectivity graph of the quantum hardware device which details which physical qubits are connected to respective other physical qubits via edges). A person having ordinary skill in the art should also understand that, depending upon factors such as type(s) of qubit technologies used, type(s) of gates performed between said qubits, etc., quantum hardware devices may also comprise various control devices (e.g., function generators, devices for temperature, magnetic, and / or other environmental controls pertaining to local environments of the grid of qubits, etc.) that may be used to maintain and / or transform various properties of the qubits and / or other physical components of a given quantum computer. Moreover, a person having ordinary skill in the art should understand that a qubit may refer to both a logical bit (e.g., a one or a zero with some probability) and to one or more physical components used to construct the given qubit based, at least in part, on the type of qubit technology being applied. For example, a superconducting qubit (e.g., a transmon) may be constructed using at least a superconducting material and a non-superconducting material in which the non-superconducting material is located in between sections of superconducting material. With regard to this understanding, it should also be understood that quantum hardware may therefore be used to implement physical qubits, in ways such as those as described above, that may again be combined in various ways to implement one or more logical qubits such that logical quantum operations may be performed using said physical elements of said quantum hardware.
[0042] FIG. 3 illustrates additional components that may be included in the quantum computing service, according to some embodiments.
[0043] In some embodiments, service provider network 100 may include various services such as quantum computing service 102, QPU information service 110, containerized execution service 112, and a quantum compilation service 114, in addition to one or more other services that pertain to quantum compilation, computation, and / or optimization. In some embodiments, service provider network 100 may include data centers, routers, networking devices, etc., such as of a cloud computing provider network. In some embodiments, customers 104, 106, and 108 and / or additional customers of service provider network 100 and / or quantum computing service 102, maybe connected to the service provider network 100 in various ways, such as via a logically isolated connection over a public network, via a dedicated private physical connection, not accessible to the public, via a public Internet connection, etc.
[0044] As introduced above, quantum computing service 102 may be configured to provide services to customers of service provider network 100, such that various quantum tasks of said customers may be executed using QPUs of internal or third-party quantum hardware providers (e.g., QPUs of quantum hardware providers 128, 130, 132, and 134, local quantum hardware device 136, etc.), and / or may be simulated using classical computing device(s) that are accessible via service provider network 100 (e.g., via quantum compute simulator using classical hardware 124).
[0045] In some embodiments, a quantum computing service 102 may include a QPU information service 110, a containerized execution service 112, a quantum compilation module 114, container API interfaces 116, a translation module 118, a quantum algorithm development kit 120, a results storage module 122, a quantum compute simulator using classical hardware 124, and a quantum hardware provider recommendation and / or selection module 126. Also, quantum computing service 102 is connected to quantum hardware providers 128, 130, 132, and 134. In some embodiments, quantum hardware providers 128, 130, 132, and 134 may offer access to run quantum objects on quantum computers that operate based on various different types of quantum computing technologies or paradigms, such as based on quantum annealing, ion-trap, superconductive materials, photons, etc.
[0046] Quantum computing service 102 may also be configured to translate (e.g., via translation module 118 or via translation implemented in a container 105) a given quantum computing object into a selected quantum circuit format for a particular quantum computing technology used by the selected quantum hardware provider or local QPU, wherein the selected quantum circuit format for the particular quantum computing technology is one of a plurality of quantum circuit formats for a plurality of different quantum computing technologies supported by the quantum computing service. To translate the quantum computing object into the selected quantum circuit format, the one or more computing devices that implement the quantum computing service are configured to identify portions of the quantum computing object corresponding to quantum operators in an intermediate representation in which the quantum object was submitted by the customer, substitute the quantum operators of the intermediate representation with quantum operators of the quantum circuit format of the particular quantum computing technology, and perform one or more optimizations to reduce an overall number of quantum operators in a translated quantum circuit that is a translated version of the received quantumcomputing object. Additionally, quantum computing service 102 may be configured to provide the translated quantum circuit for execution at a quantum hardware provider or internal QPU that uses the particular quantum computing technology; receive, from the quantum hardware provider or internal QPU, results of the execution of the translated quantum circuit; provide a notification to a customer of the quantum computing service that the quantum computing object has been executed; and provide at least portions of the executed results to QPU information service 110 for use in generating characterization information that is specific to the given QPU.
[0047] Quantum circuits that have been translated may be provided to a quantum computer at a respective quantum hardware provider location. In some embodiments, results of executing the quantum circuit on the quantum computer at the quantum hardware provider location may be returned to the edge computing device at the quantum hardware provider location. The edge computing device and / or quantum computing service 102 may cause the results to be stored in a data storage system of the service provider network 100. In some embodiments, results storage / results notification module 122 may coordinate storing results and may notify a customer, such as customer 104, that the results are ready from the execution of the customer’s quantum object, such as a quantum task, quantum algorithm, or quantum circuit. In some embodiments, results storage / results notification module 122 may cause storage space in a data storage service to be allocated to a customer to store the customer’s results. Also, the results storage / results notification module 122 may specify access restrictions for viewing the customer’s results in accordance with customer preferences.
[0048] In some embodiments, quantum compute simulator using classical hardware 124 of quantum computing service 102 may be used to simulate a quantum algorithm or quantum circuit using classical hardware. For example, one or more virtual machines of a virtual computing service may be instantiated to process a quantum algorithm or quantum circuit simulation job. In some embodiments, quantum compute simulator using classical hardware 124 may fully manage compute instances that perform quantum circuit simulation. For example, in some embodiments, a customer may submit a quantum circuit to be simulated and quantum compute simulator using classical hardware 124 may determine resources needed to perform the simulation job, reserve the resources, configure the resources, etc. In some embodiments, quantum compute simulator using classical hardware 124 may include one or more “warm” simulators that are pre-configured simulators such that they are ready to perform a simulation job without a delay typically involved in reserving resources and configuring the resources to perform simulation.
[0049] In some embodiments, quantum computing service 102 includes quantum hardware provider recommendation / selection module 126. In some embodiments, quantum hardwarerecommendation / selection module 126 may make a recommendation to a quantum computing service customer as to which type of quantum computer or which quantum hardware provider to use to execute a quantum object submitted by the customer. Additionally, or alternatively, quantum hardware provider recommendation / selection module 126 may receive a customer selection of a quantum computer type and / or quantum hardware provider to use to execute the customer’s quantum object, such as a quantum task, quantum algorithm, quantum circuit, etc. submitted by the customer or otherwise defined with customer input. In some embodiments, the recommendation may include estimated costs, error rates, run-times, etc. associated with executing the quantum computing object on quantum computers of respective ones of the quantum hardware providers or an internal QPU. As additionally detailed herein, quantum hardware provider recommendation / selection module 126 may also make a recommendation to a quantum computing service customer based, at least in part, on characterization information of various QPUs that are accessible via service provider network 100, according to some embodiments.
[0050] In some embodiments, a recommendation provided by quantum hardware provider recommendation / selection module 126 may be based on one or more characteristics of a quantum object submitted by a customer and one or more characteristics of the quantum hardware providers supported by the quantum computing service 102, such as one or more of quantum hardware providers 128, 130, 132, or 134.
[0051] In some embodiments, quantum hardware provider recommendation / selection module 126 may make a recommendation based on known data about previously executed quantum objects similar to the quantum object submitted by the customer. For example, quantum computing service 102 may store certain amounts of metadata about executed quantum objects and use such metadata to make recommendations. In some embodiments, a recommendation may include an estimated cost to perform the quantum computing task by each of the first and second quantum hardware providers. In some embodiments, a recommendation may include an estimated error rate for each of the first and second quantum hardware providers in regard to performing the quantum computing task. In some embodiments, a recommendation may include an estimated length of time to execute the quantum computing task for each of the first and second quantum hardware providers. In some embodiments, a recommendation may include various other types of information relating to one or more quantum hardware providers or any combination of the above. Such metadata may additionally include QPU-specific characterization information, according to some embodiments.
[0052] In some embodiments, various aspects of the quantum hardware provider recommendation / selection module 126 may be implemented in code included in a customer-issued software container.
[0053] In some embodiments, quantum compute simulator using classical hardware 124 may allow a customer to simulate one or more particular quantum computing technology environments. For example, a customer may simulate a quantum circuit in an annealing quantum computing environment and an ion trap quantum computing environment to determine simulated error rates. The customer may then use this information to make a selection of a quantum hardware provider to use to execute the customer’s quantum circuit. As further detailed in the following paragraphs herein, quantum compute simulator using classical hardware 124 may be used to simulate execution of various quantum circuits as part of generating QPU-specific characterization information.
[0054] In some embodiments, aspects of quantum compute simulator using classical hardware 124 may be made available at a customer-site via a customer-issued software container. For example, simulation requests and results may be routed between the customer-issued software container and the quantum computing service 102 via container- API interfaces 116.
[0055] In some embodiments, service provider network may also include quantum compilation module 114. Quantum compilation module 114 may orchestrate one or more intermediate compilations (e.g., a compilation mapping of a logical quantum circuit to a given quantum hardware device structure, a compilation of gate nativization(s), translation of a quantum circuit into a quantum circuit specific to a given quantum hardware provider’s design / language / architecture / technology, etc.) that may be used in order to take an input logical quantum circuit and conduct, via quantum computing service 102, the execution of said circuit using a given QPU of a given quantum hardware provider. For example, some two-qubit gates of a given logical quantum circuit may be decomposed into a series of native gates, and quantum compilation module 114 may be configured to treat such decompositions. In yet another example, in some embodiments in which a quantum hardware provider of quantum hardware providers 128 - 134 pertains to Rydberg atom arrays, other quantum compilation module 114 may be configured to compile and / or encode a mapping problem for determining atomic computational positions in Rydberg atom arrays, according to some embodiments. As discussed above, in some embodiments, the compilation may be performed purely in the customer-issued software container (e.g., compilation module 114 may be replicated in the customer container 105), the compilation may be performed purely remotely (e.g., using API container API interfaces and remote compilation module 114) or may be implemented in a hybrid fashion.
[0056] In some embodiments, quantum algorithm development kit 120 of quantum computing service may be implemented as a graphical user interface, wherein a customer of service provider network 100 may upload and / or provide quantum computing service 102 with various information regarding a request for execution of a given quantum algorithm on a QPU that is accessible via service provider network 100. However, quantum algorithm development kit 120 may also be implemented as various types of programmatic (e.g., Application Programming Interfaces (APIs)) or command line interfaces to support the methods and systems described herein, according to some embodiments. Furthermore, quantum algorithm development kit 120 may be a customerfacing interface in which a customer of quantum computing service 102 may submit inputs to be used for a given quantum circuit execution. A customer of quantum computing service 102 may also request that a given quantum task that they provide to quantum computing service 102 be executed using QPU(s) of a given quantum hardware provider (e.g., quantum hardware provider 128, 130, 132, 134, etc.). As part of the fulfillment of said request, the given quantum task may be divided into one or more logical quantum circuits that represent intermediate logical computations used within the overall quantum algorithm, then those logical quantum circuit(s) may then be used in order to generate quantum circuit mapping(s) of the logical quantum circuit(s) to quantum hardware device(s) of a given quantum hardware provider.
[0057] FIG. 4 illustrates example components of a software container provided to a customer by a quantum computing service in order to implement local execution orchestration of quantum tasks, according to some embodiments.
[0058] In some embodiments, a customer-issued software container, such as container 105, includes quantum task validator 402, quantum task translator 404, quantum circuit compiler 406, and service API interfaces 408. In some embodiments, service API interfaces 408 may coordinate with container- API interfaces 116 of quantum computing service 102 to facilitate distribution of tasks between the code executing in the customer-issued software container and the various modules of the quantum computing service 102.
[0059] In some embodiments, various types of tokens may be issued, such as are shown for access tokens 410. For example, a standard access token 412, a prioritized access token 414, and / or a dedicated access token 416 may be issued to container 105. For example, a prioritized access token may be used in gaining access to a quantum processing unit of a quantum hardware provider to perform a quantum task, wherein the prioritized access token entitles a quantum task to be given prioritized placement in a queue for a given quantum processing unit of the first or second quantum hardware provider. As another example, a dedicated access token may be used in gaining access to a quantum processing unit of a quantum hardware provider to perform a quantum task, whereinthe dedicated access token entitles a customer to exclusive use of a given quantum processing unit of the first or second quantum hardware provider for a dedicated access time window. In some embodiments, a standard access token may be used in gaining access to a quantum processing unit to perform a quantum task, wherein the task is placed in a queue for the given QPU without prioritization.
[0060] In some embodiments, the container 105 further includes execution libraries 418 comprising files needed to implement quantum task execution orchestration. Also, container 105 includes an interface 420 to the QPU information service 110, and a QPU selection interface 422 which may receive customer QPU selection criteria, and which may perform similar functions as quantum hardware provider recommendation / selection module 126, described above, but instead is implemented locally, or at least partially locally. Also, container 105 includes QPU execution API 424 configured to submit a compiled artifact and quantum access token for a quantum task to a QPU for execution.
[0061] FIG. 5 is a flowchart illustrating a process performed by a quantum computing service to provide local quantum task execution orchestration, via containerized software, by providing a software container and a quantum access token to a requesting customer for use by the requesting customer to implement the local quantum task execution orchestration, according to some embodiments.
[0062] At block 502, a quantum computing service receives a request to access quantum computing resources from a customer of a quantum computing service. At block 504, the quantum computing service provides to the customer a software container that includes code for orchestrating execution of quantum tasks using quantum processing units of quantum hardware providers. At block 506, the quantum computing service provides to the customer one or more quantum access tokens for gaining access to a given quantum processing unit of a given one of the quantum hardware providers. Also, at block 508, the quantum computing service provides an indication to the given quantum hardware provider that the one or more quantum access tokens haven been issued to the customer to access the given quantum processing unit of the given quantum hardware provider.
[0063] FIG. 6 is a flowchart illustrating a process performed by a quantum computing service to collect quantum hardware provider quantum processing unit performance information and to distribute the collected quantum processing unit performance information to software containers provided to customers of the quantum computing service to implement local quantum task execution orchestration at customer classical computing resources, according to some embodiments.
[0064] At block 602, the quantum computing service collects performance information and / or calibration information relating to quantum processing units of quantum hardware providers. Also, at block 604, the quantum computing service implements a quantum processing unit (QPU) information service for use in distributing the collected QPU information to software containers provided to customers of the quantum computing service. Then, at block 606, the quantum computing service provides, to customer software containers, via the QPU information service, performance and / or calibration information for QPUs of quantum hardware providers participating in the quantum computing service.
[0065] FIG. 7 is a flowchart illustrating a process, performed by code included in a software container provided to a customer of the quantum computing service, to select a quantum processing unit and request an access token for the selected quantum processing unit, wherein the quantum processing unit is selected to execute a given quantum circuit associated with a quantum task submitted for local quantum task execution orchestration, according to some embodiments.
[0066] At block 702, a customer-issued software container receives a customer request to execute a quantum task, wherein the request optionally further specifies one or more characteristics of a quantum processing unit that is to be used to execute the quantum task. At block 704, the customer-issued software container receives from a QPU information service, performance and / or calibration information for QPUs of quantum hardware providers participating in the quantum computing service. And, at block 706, the code executing in the customer-issued software container determines a selected QPU of the quantum hardware providers to be used to execute the quantum task based on the received performance and / or calibration information and based on the one or more QPU characteristics optionally specified in the task execution request. Also, at block 708, the customer-issued software container requests a quantum access token for the selected QPU to execute the quantum task.
[0067] FIG. 8 is a flowchart illustrating additional processes performed by code included in a software container provided to a customer of a quantum computing service, according to some embodiments.
[0068] At block 802, the code executing in the customer-issued software container validates a quantum task to be executed, and at block 804 translates one or more quantum circuits associated with the quantum task from an intermediate representation into a native representation comprising native gates of the selected QPU. At block 806, the code executing in the customer-issued software container performs one or more compilation passes to compile the one or more nativized quantum circuits into compiled artifacts configured to be executed using the selected QPU, wherein the compilation passes are performed by the code included in the software container and / or at least inpart using a compilation service of the quantum computing service. Finally, at block 808, the code executing in the customer-issued software container orchestrates execution of the quantum task using the compiled artifacts and the selected QPU.Illustrative computer system
[0069] FIG. 9 is a block diagram illustrating an example computing device that may be used in at least some embodiments.
[0070] FIG. 9 illustrates such a general-purpose computing device 900 as may be used in any of the embodiments described herein. In the illustrated embodiment, computing device 900 includes one or more processors 910 coupled to a system memory 920 (which may comprise both non-volatile and volatile memory modules) via an input / output (I / O) interface 930. Computing device 900 further includes a network interface 940 coupled to VO interface 930.
[0071] In various embodiments, computing device 900 may be a uniprocessor system including one processor 910, or a multiprocessor system including several processors 910 (e.g., two, four, eight, or another suitable number). Processors 910 may be any suitable processors capable of executing instructions. For example, in various embodiments, processors 910 may be general-purpose or embedded processors implementing any of a variety of instruction set architectures (ISAs), such as the x86, PowerPC, SPARC, or MIPS ISAs, or any other suitable ISA. In multiprocessor systems, each of processors 910 may commonly, but not necessarily, implement the same ISA. In some implementations, graphics processing units (GPUs) may be used instead of, or in addition to, conventional processors.
[0072] System memory 920 may be configured to store instructions and data accessible by processor(s) 910. In at least some embodiments, the system memory 920 may comprise both volatile and non-volatile portions; in other embodiments, only volatile memory may be used. In various embodiments, the volatile portion of system memory 920 may be implemented using any suitable memory technology, such as static random-access memory (SRAM), synchronous dynamic RAM or any other type of memory. For the non-volatile portion of system memory (which may comprise one or more NVDIMMs, for example), in some embodiments flash-based memory devices, including NAND-flash devices, may be used. In at least some embodiments, the non-volatile portion of the system memory may include a power source, such as a supercapacitor or other power storage device (e.g., a battery). In various embodiments, memristor based resistive random-access memory (ReRAM), three-dimensional NAND technologies, Ferroelectric RAM, magnetoresistive RAM (MRAM), or any of various types of phase change memory (PCM) may be used at least for the non-volatile portion of system memory. In the illustrated embodiment, program instructions and data implementing one or more desired functions, such as those methods,techniques, and data described above, are shown stored within system memory 920 as code 925 and data 926.
[0073] In some embodiments, I / O interface 930 may be configured to coordinate I / O traffic between processor 910, system memory 920, and any peripheral devices in the device, including network interface 940 or other peripheral interfaces such as various types of persistent and / or volatile storage devices. In some embodiments, I / O interface 930 may perform any necessary protocol, timing or other data transformations to convert data signals from one component (e.g., system memory 920) into a format suitable for use by another component (e.g., processor 910). In some embodiments, I / O interface 930 may include support for devices attached through various types of peripheral buses, such as a variant of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard, for example. In some embodiments, the function of I / O interface 930 may be split into two or more separate components, such as a north bridge and a south bridge, for example. Also, in some embodiments some or all of the functionality of I / O interface 930, such as an interface to system memory 920, may be incorporated directly into processor 910.
[0074] Network interface 940 may be configured to allow data to be exchanged between computing device 900 and other devices 960 attached to a network or networks 950, such as other computer systems or devices as illustrated in FIG. 1A through FIG. 8, for example. In various embodiments, network interface 940 may support communication via any suitable wired or wireless general data networks, such as types of Ethernet network, for example. Additionally, network interface 940 may support communication via telecommunications / telephony networks such as analog voice networks or digital fiber communications networks, via storage area networks such as Fibre Channel SANs, or via any other suitable type of network and / or protocol.
[0075] In some embodiments, system memory 920 may represent one embodiment of a computer-accessible medium configured to store at least a subset of program instructions and data used for implementing the methods and apparatus discussed in the context of FIG. 1A through FIG. 8. However, in other embodiments, program instructions and / or data may be received, sent or stored upon different types of computer-accessible media. Generally speaking, a computer- accessible medium may include non-transitory storage media or memory media such as magnetic or optical media, e.g., disk or DVD / CD coupled to computing device 900 via I / O interface 930. A non-transitory computer-accessible storage medium may also include any volatile or non-volatile media such as RAM (e.g., SDRAM, DDR SDRAM, RDRAM, SRAM, etc ), ROM, etc., that may be included in some embodiments of computing device 900 as system memory 920 or another type of memory. In some embodiments, a plurality of non-transitory computer-readable storage mediamay collectively store program instructions that when executed on or across one or more processors implement at least a subset of the methods and techniques described above. A computer-accessible medium may further include transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as a network and / or a wireless link, such as may be implemented via network interface 940. Portions or all of multiple computing devices such as that illustrated in FIG. 9 may be used to implement the described functionality in various embodiments; for example, software components running on a variety of different devices and servers may collaborate to provide the functionality. In some embodiments, portions of the described functionality may be implemented using storage devices, network devices, or special-purpose computer systems, in addition to or instead of being implemented using general-purpose computer systems. The term “computing device”, as used herein, refers to at least all these types of devices, and is not limited to these types of devices. Conclusion
[0076] Various embodiments may further include receiving, sending or storing instructions and / or data implemented in accordance with the foregoing description upon a computer-accessible medium. Generally speaking, a computer-accessible medium may include storage media or memory media such as magnetic or optical media, e.g., disk or DVD / CD-ROM, volatile or nonvolatile media such as RAM (e g., SDRAM, DDR, RDRAM, SRAM, etc ), ROM, etc., as well as transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as network and / or a wireless link.
[0077] The various methods as illustrated in the Figures and described herein represent exemplary embodiments of methods. The methods may be implemented in software, hardware, or a combination thereof. The order of method may be changed, and various elements may be added, reordered, combined, omitted, modified, etc.
[0078] Various modifications and changes may be made as would be obvious to a person skilled in the art having the benefit of this disclosure. It is intended to embrace all such modifications and changes and, accordingly, the above description to be regarded in an illustrative rather than a restrictive sense.
[0079] Embodiments of the present disclosure can be described in view of the following clauses:Clause 1. A system comprising: one or more computing devices of a service provider network, wherein the one or more computing devices are configured to implement a quantum computing service;a first edge computing device of the service provider network located at a first location of a first quantum hardware provider; and a second edge computing device of the service provider network located at a second location of a second quantum hardware provider, wherein the one or more computing devices of the service provider network that implement the quantum computing service are further configured to: receive a request for access to quantum computing resources from a customer of the quantum computing service; provide, to the customer, a container comprising executable code for orchestrating execution of quantum tasks; and provide, to the customer, one or more quantum access tokens for gaining access to a quantum processing unit of the first or second quantum hardware provider.Clause 2. The system of clause 1, wherein the one or more computing devices that implement the quantum computing service are further configured to implement a quantum processing unit information service configured to: collect from the first and second quantum hardware providers performance information and / or calibration information for quantum processing units of the first and second quantum hardware providers; and provide, to the container provided to the customer, the performance and / or calibration information for the quantum processing units of the first and second quantum hardware providers.Clause 3. The system of clause 1 or clause 2, wherein the executable code included in the container, when executed using one or more processors, cause the one or more processors to: receive a customer request to execute a quantum task, wherein the customer request specifies one or more characteristics of a quantum processing unit that is to be used to execute the customer’ s quantum task; receive the performance and / or calibration information for the quantum processing units of the first and second quantum hardware providers; determine, based on the customer requested characteristics and the received performance and / or calibration information for the quantum processing units of the first and second quantum hardware providers, a given one of the quantum processing units that satisfies the customer requested characteristics; and request, to the quantum computing service, a quantum access token for accessing the given quantum processing unit.Clause 4. The system of any of clauses 1 through 3, wherein the executable code included in the container, when executed using one or more processors, cause the one or more processors to: request a compilation service of the quantum computing service perform one or more compilation tasks for generating a compiled version of a quantum task for which execution is to be orchestrated by the executable code of the container; and receive an at least partially compiled version of the quantum task, wherein said orchestrating, by the executable code of the container, the execution of the quantum tasks includes using the at least partially compiled version of the quantum task in the execution.Clause 5. The system of any of clauses 1 through 4, wherein the one or more computing devices configured to implement the quantum computing service are further configured to implement a token management service configured to: receive, from a given customer container, a request for a quantum access token to execute one or more quantum tasks; provide, to the given customer container, the requested quantum access token for executing the one or more quantum tasks; and provide to a given one of the first or second quantum hardware providers an indication that the quantum access token has been issued to the given customer.Clause 6. The system of clause 5, wherein the token management service is configured to: issue a standard access token for use in gaining access to a quantum processing unit of the first or second quantum hardware provider to perform a quantum task; issue a prioritized access token for use in gaining access to a quantum processing unit of the first or second quantum hardware provider to perform a quantum task, wherein the prioritized access token entitles a quantum task to be given prioritized placement in a queue for a given quantum processing unit of the first or second quantum hardware provider; and issue a dedicated access token for use in gaining access to a quantum processing unit of the first or second quantum hardware provider to perform a quantum task, wherein the dedicated access token entitles a customer to exclusive use of a given quantum processing unit of the first or second quantum hardware provider for a dedicated access time window.Clause 7. A method, comprising:receiving, by one or more computing devices implementing a quantum computing service, a request for access to quantum computing resources from a customer of the quantum computing service; providing, to the customer, by the one or more computing devices implementing the quantum computing service, a container comprising executable code for orchestrating execution of quantum tasks; and providing, to the customer, by the one or more computing devices implementing the quantum computing service, one or more quantum access tokens for gaining access to a quantum processing unit of a quantum hardware provider.Clause 8. The method of clause 7, further comprising: providing, to the container provided to the customer, by the one or more computing devices implementing the quantum computing service, performance and / or calibration information for quantum processing units of quantum hardware providers, wherein at least one of the quantum hardware providers is operated by a third party in relation to the quantum computing service and the customer.Clause 9. The method of clause 8, further comprising: receiving, by the one or more computing devices implementing the quantum computing service, from the container provided to the customer, a selection of a given quantum processing unit that is to be used to perform a given quantum task, wherein said providing the one or more quantum access tokens comprises providing a quantum access token for the given quantum processing unit that is indicated in the selection.Clause 10. The method of any of clauses 7 through 9, wherein the container provided to the customer comprises: program instructions for implementing a quantum task validator configured to validate one or more quantum circuits to be executed as part of performing a quantum task; program instructions for implementing a quantum circuit translator configured to translate the one or more quantum circuits associated with the quantum task from an intermediate representation to a native representation that is particular to a given type of quantum processing unit; and program instructions for implementing one or more compilation tasks for compiling a native representation of the one or more quantum circuits into an executable compiled object configured to be executed by a given quantum processing unit of the given type.Clause 11. The method of any of clauses 7 through 9, wherein the container provided to the customer comprises: an application programmatic interface (API) configured to: provide a native representation of a given quantum circuit to be executed by a given quantum processing unit to a compilation service of the quantum computing service; and receiving an executable compiled object configured to be executed by the given quantum processing unit from the compilation service of the quantum computing service.Clause 12. The method of any of clauses 7 through 11, further comprising: receiving, by the one or more computing devices implementing the quantum computing service, from the container provided to the customer, a quantum circuit that is to be executed using a given quantum processing unit; performing one or more compilation passes to at least partially compile the quantum circuit for execution on the given quantum processing unit; and providing, by the one or more computing devices implementing the quantum computing service, to the container provided to the customer, an at least partially compiled version of the quantum circuit.Clause 13. The method of clause 7, further comprising: providing, by the one or more computing devices implementing the quantum computing service, to a quantum hardware provider, an indication that the one or more quantum access tokens have been issued to the customer for gaining access to a given one or more quantum processing units of the quantum hardware provider.Clause 14. The method of any of clauses 7 through 13, wherein the one or more quantum access tokens comprise: a dedicated access token for use in gaining access to a quantum processing unit to perform a quantum task, wherein the dedicated access token entitles a customer to exclusive use of the quantum processing unit for a dedicated access time window.Clause 15. The method of any of clauses 7 through 14, wherein the one or more quantum access tokens comprise: a prioritized access token for use in gaining access to a quantum processing unit to perform a quantum task, wherein the prioritized access token entitles a quantum task to be provided prioritized placement in a queue for the quantum processing unit.Clause 16. The method of clause 15, wherein the one or more quantum access tokens comprise: a standard access token for use in gaining access to a quantum processing unit to perform a quantum task.Clause 17. One or more non-transitory, computer-readable, storage media storing program instructions that, when executed on or across one or more processors, cause the one or more processors to: implement a containerized quantum execution orchestration environment using computing resources of a customer of a quantum computing service, the containerized quantum execution orchestration environment configured to: receive, from the customer, a quantum task to be executed using a quantum processing unit of a quantum hardware provider; receive, from the quantum computing service a quantum access token to be presented to the quantum hardware provider to gain access to the quantum processing unit; and orchestrate execution of the quantum task on the quantum processing unit of the quantum hardware provider using the quantum access token received from the quantum computing service.Clause 18. The one or more non-transitory, computer-readable storage media of clause 17, wherein the program instructions comprise one or more of: program instructions for implementing a quantum task validator configured to validate quantum circuits to be executed as part of performing a quantum task; or program instructions for implementing a quantum circuit translator configured to translate a quantum circuit associated with a quantum task from an intermediate representation to a native representation particular to a given type of quantum processing unit.Clause 19. The one or more non-transitory, computer-readable storage media of clause 17 or clause 18, wherein the program instructions comprise: program instructions for implementing one or more compilation tasks for compiling a quantum circuit into an executable object configured to be executed by a given quantum processing unit.Clause 20. The one or more non-transitory, computer-readable storage media of any of clauses 17 through 19, wherein the quantum access token is:a prioritized access token for use in gaining access to a quantum processing unit to perform a quantum task, wherein the prioritized access token entitles a quantum task to be provided priority placement in a queue for the quantum processing unit; or a dedicated access token for use in gaining access to a quantum processing unit to perform a quantum task, wherein the dedicated access token entitles a customer to exclusive use of the processing unit for a dedicated access time window.
Claims
CLAIMSWHAT IS CLAIMED IS:
1. A system comprising: one or more computing devices of a service provider network, wherein the one or more computing devices are configured to implement a quantum computing service; a first edge computing device of the service provider network located at a first location of a first quantum hardware provider; and a second edge computing device of the service provider network located at a second location of a second quantum hardware provider, wherein the one or more computing devices of the service provider network that implement the quantum computing service are further configured to: receive a request for access to quantum computing resources from a customer of the quantum computing service; provide, to the customer, a container comprising executable code for orchestrating execution of quantum tasks; and provide, to the customer, one or more quantum access tokens for gaining access to a quantum processing unit of the first or second quantum hardware provider.
2. The system of claim 1, wherein the one or more computing devices that implement the quantum computing service are further configured to implement a quantum processing unit information service configured to: collect from the first and second quantum hardware providers performance information and / or calibration information for quantum processing units of the first and second quantum hardware providers; and provide, to the container provided to the customer, the performance and / or calibration information for the quantum processing units of the first and second quantum hardware providers.
3. The system of claim 1 or claim 2, wherein the executable code included in the container, when executed using one or more processors, cause the one or more processors to: receive a customer request to execute a quantum task, wherein the customer request specifies one or more characteristics of a quantum processing unit that is to be used to execute the customer’ s quantum task; receive the performance and / or calibration information for the quantum processing units of the first and second quantum hardware providers; determine, based on the customer requested characteristics and the received performance and / or calibration information for the quantum processing units of the first and second quantum hardware providers, a given one of the quantum processing units that satisfies the customer requested characteristics; and request, to the quantum computing service, a quantum access token for accessing the given quantum processing unit.
4. The system of claim 1, wherein the executable code included in the container, when executed using one or more processors, cause the one or more processors to: request a compilation service of the quantum computing service perform one or more compilation tasks for generating a compiled version of a quantum task for which execution is to be orchestrated by the executable code of the container; and receive an at least partially compiled version of the quantum task, wherein said orchestrating, by the executable code of the container, the execution of the quantum tasks includes using the at least partially compiled version of the quantum task in the execution.
5. The system of claim 1 or claim 4, wherein the one or more computing devices configured to implement the quantum computing service are further configured to implement a token management service configured to: receive, from a given customer container, a request for a quantum access token to execute one or more quantum tasks; provide, to the given customer container, the requested quantum access token for executing the one or more quantum tasks; and provide to a given one of the first or second quantum hardware providers an indication that the quantum access token has been issued to the given customer.
6. The system of claim 5, wherein the token management service is configured to: issue a standard access token for use in gaining access to a quantum processing unit of the first or second quantum hardware provider to perform a quantum task; issue a prioritized access token for use in gaining access to a quantum processing unit of the first or second quantum hardware provider to perform a quantum task, wherein the prioritized access token entitles a quantum task to be given prioritized placement in a queue for a given quantum processing unit of the first or second quantum hardware provider; and issue a dedicated access token for use in gaining access to a quantum processing unit of the first or second quantum hardware provider to perform a quantum task, wherein the dedicated access token entitles a customer to exclusive use of a given quantum processing unit of the first or second quantum hardware provider for a dedicated access time window.
7. A method, comprising: receiving, by one or more computing devices implementing a quantum computing service, a request for access to quantum computing resources from a customer of the quantum computing service; providing, to the customer, by the one or more computing devices implementing the quantum computing service, a container comprising executable code for orchestrating execution of quantum tasks; and providing, to the customer, by the one or more computing devices implementing the quantum computing service, one or more quantum access tokens for gaining access to a quantum processing unit of a quantum hardware provider.
8. The method of claim 7, further comprising: providing, to the container provided to the customer, by the one or more computing devices implementing the quantum computing service, performance and / or calibration information for quantum processing units of quantum hardware providers, wherein at least one of the quantum hardware providers is operated by a third party in relation to the quantum computing service and the customer.
9. The method of claim 8, further comprising: receiving, by the one or more computing devices implementing the quantum computing service, from the container provided to the customer, a selection of a given quantum processing unit that is to be used to perform a given quantum task, wherein said providing the one or more quantum access tokens comprises providing a quantum access token for the given quantum processing unit that is indicated in the selection.
10. The method of claim 7, wherein the container provided to the customer comprises: program instructions for implementing a quantum task validator configured to validate one or more quantum circuits to be executed as part of performing a quantum task; program instructions for implementing a quantum circuit translator configured to translate the one or more quantum circuits associated with the quantum task from an intermediate representation to a native representation that is particular to a given type of quantum processing unit; and program instructions for implementing one or more compilation tasks for compiling a native representation of the one or more quantum circuits into an executable compiled object configured to be executed by a given quantum processing unit of the given type.
11. The method of claim 7, wherein the container provided to the customer comprises: an application programmatic interface (API) configured to: provide a native representation of a given quantum circuit to be executed by a given quantum processing unit to a compilation service of the quantum computing service; and receiving an executable compiled object configured to be executed by the given quantum processing unit from the compilation service of the quantum computing service.
12. The method of claim 7, further comprising: receiving, by the one or more computing devices implementing the quantum computing service, from the container provided to the customer, a quantum circuit that is to be executed using a given quantum processing unit; performing one or more compilation passes to at least partially compile the quantum circuit for execution on the given quantum processing unit; and providing, by the one or more computing devices implementing the quantum computing service, to the container provided to the customer, an at least partially compiled version of the quantum circuit.
13. The method of claim 7, further comprising: providing, by the one or more computing devices implementing the quantum computing service, to a quantum hardware provider, an indication that the one or more quantum access tokens have been issued to the customer for gaining access to a given one or more quantum processing units of the quantum hardware provider.
14. The method of claim 7 or claim 13, wherein the one or more quantum access tokens comprise: a dedicated access token for use in gaining access to a quantum processing unit to perform a quantum task, wherein the dedicated access token entitles a customer to exclusive use of the quantum processing unit for a dedicated access time window.
15. The method of claim 7 or claim 13, wherein the one or more quantum access tokens comprise: a prioritized access token for use in gaining access to a quantum processing unit to perform a quantum task, wherein the prioritized access token entitles a quantum task to be provided prioritized placement in a queue for the quantum processing unit.