Quantum computing program compilation using cached compiled quantum circuit … — Amazon Technologies, Inc. (US11977957B2)
Analyze & explore related research in Conceptio
Connect this record directly into your research workflow or AI agent. Explore citations across open repositories, query full text, and export structured proof bundles.
ABSTRACT
Abstract
A quantum computing service may store, in a cache, one or more compiled files of respective quantum functions included in one or more quantum computing programs received one or more customers. When the quantum computing service receives another quantum computing program, from the same or a different customer, the quantum computing service may determine whether the quantum computing program may include one or more of the quantum functions corresponding to the compiled files in the cache. If so, the quantum computing service may use the compiled files in the cache to compile the quantum computing program.
Description
BACKGROUND
A service provider network may allow clients to access services that are implemented using resources at locations remote from the clients. Such services may be said to reside âin the cloud.â Cloud-based quantum computing service may provide clients access to various quantum computing resources of quantum hardware providers (QHPs), which may or may not be the same companies or organizations as the service provider. Quantum computing utilizes the laws of quantum physics to process information. Compared to classical (binary) computers, quantum computers (or quantum processing units (QPUs)) work with quantum bits (or qubits). Qubits can 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 particles, such that the quantum particles are inextricably linked in unison even if separated by great distances. By using superposition and entanglement, quantum computers have the potential to process information in new ways to solve computational problems that are beyond the reach of classical computers.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an example quantum computing service that may use a cache to store compiled files of quantum functions, according to some embodiments.
FIG. 2 shows an example quantum computing service that may enable customers to access quantum computers using multiple quantum computing technologies, according to some embodiments.
FIG. 3 illustrates a service provider network comprising a quantum computing service, virtual computing service, and storage service, according to some embodiments.
FIGS. 4 A- 4 C illustrate an example edge computing device connected to a quantum computing service, according to some embodiments.
FIG. 4 D shows example elements inside compiler and cache, according to some embodiments
FIG. 5 illustrates an example process for compiling a quantum computing program using stored compiled files of quantum functions in a cache, according to some embodiments.
FIG. 6 illustrates an example process for updating a cache of compiled files, according to some embodiments.
FIG. 7 illustrates an example process for using compiled files for quantum hardware providers of different quantum technologies, according to some embodiments.
FIG. 8 illustrates an example process for using compiled files to implement a parametric compilation, according to some embodiments.
FIG. 9 is a block diagram illustrating an example computing device that may be used in at least some embodiments.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that the 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). The words âinclude,â âincluding,â and âincludesâ indicate open-ended relationships and therefore mean including, but not limited to. Similarly, the words âhave,â âhaving,â and âhasâ also indicate open-ended relationships, and thus mean having, but not limited to. The terms âfirst,â âsecond,â âthird,â and so forth as used herein are used as labels for nouns that they precede, and do not imply any type of ordering (e.g., spatial, temporal, logical, etc.) unless such an ordering is otherwise explicitly indicated.
âBased On.â As used herein, this term is used to describe one or more factors that affect a determination. This term does not foreclose additional factors that may affect a determination. That is, a determination may be solely based on those factors or based, at least in part, on those factors. Consider the phrase âdetermine A based on B.â While B may be a factor that affects the determination of A, such a phrase does not foreclose the determination of A from also being based on C. In other instances, A may be determined based solely on B.
The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicitly or implicitly), or any generalization thereof, whether or not it mitigates any or all of the problems addressed herein. Accordingly, new claims may be formulated during prosecution of this application (or an application claiming priority thereto) to any such combination of features. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the appended claims.
DETAILED DESCRIPTION
Quantum computers provided by quantum hardware providers may be implemented using different quantum computing technologies. For example, some quantum computers may include qubits built from superconductors, trapped ions, semiconductors, photonics, etc. A quantum computing program, generally written in a (high-level) source programming language, needs to be compiled into an executable version before it is executed on a quantum computer of a quantum hardware provider. The compiled version of the quantum computing program is in a format, such as in a machine language, in accordance with the quantum hardware of the quantum computer. The compilation of a source code to a compiled (executable) code may be time consuming and thus a considerable overhead added to cloud-based quantum computing.
Various embodiments described herein relate to techniques for reducing the amount of overhead associated with compilation of quantum computing programs in a cloud-based quantum computing service. In some embodiments, the quantum computing service may be implemented using one or more computing devices as part of a service provider network. For example, in some embodiments, a quantum computing service may be implemented using classical (binary) computers of the service provider network located at the same or different locations from customers, which may allow the customers to access various quantum computing resources of quantum hardware providers. In some embodiments, a quantum computing service may receive quantum computing programs from customers, cause the quantum computing programs to be compiled into compiled quantum circuits, and transport the compiled quantum computing programs to quantum hardware providers for execution. Upon completion of the execution of the compiled quantum computing programs comprising one or more compiled quantum circuits, results may be provided to the customers. In some embodiments, during compilation, one or more compiled quantum circuit files of one or more quantum functions in a quantum computing program may be generated, and stored by the quantum computing service, for example in a cache. The quantum computing service may then re-use the compiled quantum circuit files stored in the cache to compile future received quantum computing programs to cut down on an amount of overhead associated with compilation of the quantum computing program. For example, the quantum computing service may first receive a first quantum computing program written in a (high-level) source programming language for execution using a quantum processing unit of a quantum hardware provider. In some embodiments, the first quantum computing program may include one or more quantum functions, such as a Bell function to perform a Bell operation. The quantum computing service may store a compiled quantum circuit file for the Bell function (e.g. that is included in the first quantum computing program). For example, the compiled quantum circuit for the Bell function may be stored in a cache and an identifier for the compiled quantum circuit for the Bell function may be added to a database or other registry or directory of compiled quantum circuits that are stored in the cache. Next, the quantum computing service may receive an additional quantum computing program for execution using the quantum hardware provider. During compilation of the additional quantum computing program, the quantum computing service may parse the additional quantum computing program to determine whether the additional quantum computing program includes the Bell function, as was included in the first quantum computing program, where the Bell function is currently stored in the cache. If the additional quantum computing program also includes the Bell function, the quantum computing service may obtain the compiled quantum circuit file from the cache (instead of re-compiling the Bell function) and re-use the compiled quantum circuit file to generate a compiled version of the additional quantum computing program. Thus, repetition of quantum circuit compilation of at least one portion of the additional quantum computing program may be avoided. Accordingly, the amount of quantum circuit compilation and associated overhead may be reduced.
In some embodiments, a quantum computing service may use one cache per quantum computing customer, e.g., in a one-to-one mapping or single-customer mode. For example, a customer may opt in, or the quantum computing service may be set up, such that one cache is generated and used specifically for only one corresponding customer. Alternatively, in some embodiments, a cache may be generated and used to cache compiled quantum circuits available for use to compile quantum programs submitted by different customers, e.g., in a cross-customer mode. For example, compiled quantum circuit files generated from compilation of quantum computing programs of customer A may be re-used for the compilation of quantum computing programs of customer B, and vice versa. One benefit of the cross-customer mode may be that the compiled quantum circuit files in the cache may be built up more quickly (based on quantum computing programs received from more customers) and may be used to serve and benefit more customers. Further, in some embodiments, for a customer to be able to use the compiled quantum circuit files of another customer, the customer and/or the quantum computing service may need an authorization or license from the other customer. For example, a customer may allow (or dis-allow) specific ones of the compiled files in the cache, which are generated during compilation of quantum computing program(s) from the customer, to be shared with other customers, e.g., through an authorization code, a license, or other permission indications. Further, the customer may specify different levels of permission, e.g., one level of permission to allow a compiled file to be shared with another specific customer and another level of permission to allow another compiled file to be shared with any customers.
In some embodiments, a quantum computing service may store a cached version of a compiled quantum circuit for a whole quantum computing program or may store cached versions of portions of the quantum program as separately cached compiled quantum circuits. In some embodiments, a quantum program may be compiled using cached quantum circuit files for portions of the quantum program and, for other portions of the quantum program for which a compiled quantum circuit is not stored in a cache, additional quantum circuits may be compiled. Thus, a compiled quantum program may be formed using cached and non-cached compiled quantum circuits. In some embodiments, compiled quantum circuits generated in order to compile such a quantum program may be added to the cache, once compiled, and also added to a directory of compiled quantum circuits stored in the cache.
In some embodiments, the quantum functions of a quantum program for which the quantum computing service stores compiled quantum circuit files may have different levels of complexity. For example, in some embodiments, a quantum function may be a relatively simple function that may be represented by a single quantum logic gate, such as a Pauli-X (or X) gate. In addition, in some embodiments, a quantum function may include a more complex function, such as a Bell function (as in the above example) that may further include several less complex quantum functions, such as a Hadamard gate and a CNOT gate. In some embodiments, quantum hardware providers may use different quantum computing technologies to implement different types of quantum processing units (QPUs). For example, some quantum computers may include qubits built from superconductors, trapped ions, semiconductors, photonics, etc. As a result, the compiled quantum circuit file of a quantum function to be executed on a given QPU may need to be in the executable format (e.g., a binary file format) in accordance with the corresponding quantum hardware type of the given QPU. Thus, in some embodiments, a quantum computing service may store multiple compiled quantum circuit files for a single quantum function in different formats in accordance with quantum hardware types of QPUs offered by respective quantum hardware providers. Furthermore, in some embodiments, a previously received quantum computing program (e.g., the first quantum computing program in the above example) and the later received quantum computing program (e.g., the additional quantum computing program in the example) may or may not be written in the same source quantum programming language. For example, one quantum computing program may use a term âBell functionâ whereas another quantum computing program represents the equivalent of a âBell functionâ as a Hadamard gate and CNOT gate without assigning a particular label, such as âBell function.â In some embodiments, as long as both instances of the quantum function include the same quantum gates targeted to be executed on the same quantum hardware type, the compiled quantum circuit files of the different instances of the quantum function may be the same, and thus a compiled quantum circuit file generated from the previously received quantum computing program may be re-used to decrease the compilation overhead for the later received additional quantum computing program.
In some embodiments, compilation of a compiled quantum circuit may involve at least two compilation steps, such as compilation of a version of a quantum function using a native gate set that is native to a given QPU upon which the compiled quantum circuit is to be executed and compilation of a machine binary for instructing the various sensors and instruments of the given QPU to execute the compiled quantum function (e.g. to implement and execute the native gates). In some embodiments, a compiled native gate set may have a long validity life in a cache because the compiled native gate set is not dependent upon calibration data of the QPU. In contrast, a compiled machine binary for instructing the various sensors and instruments of the given QPU may have a shorter validity life in the cache because the compiled machine binary takes into account calibration data for the various sensors and instruments of the given QPU, which may drift or otherwise change over time.
In some embodiments, a cache of a quantum computing service may store compiled native gate sets, compiled machine binaries or both. In some embodiments, for a given quantum function, a quantum computing service may store a compiled native gate set for a given QPU and/or a compiled machine binary for the given QPU. In some embodiments, the compiled machine binary may be rendered invalid if one or more thresholds is met, such as expiration of a threshold amount of time, opening of a new access window for the QPU, and/or start of a new calibration of the quantum computer. However, the compiled native gate set may remain stored in the cache even if the compiled machine binary is rendered invalid. Thus, if a subsequent quantum program is received that includes the quantum function, a new machine binary may be compiled using current calibration data, but the steps of compiling the native gate set may be omitted by using the cached compiled native gate set for the giv
BACKGROUND
A service provider network may allow clients to access services that are implemented using resources at locations remote from the clients. Such services may be said to reside âin the cloud.â Cloud-based quantum computing service may provide clients access to various quantum computing resources of quantum hardware providers (QHPs), which may or may not be the same companies or organizations as the service provider. Quantum computing utilizes the laws of quantum physics to process information. Compared to classical (binary) computers, quantum computers (or quantum processing units (QPUs)) work with quantum bits (or qubits). Qubits can 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 particles, such that the quantum particles are inextricably linked in unison even if separated by great distances. By using superposition and entanglement, quantum computers have the potential to process information in new ways to solve computational problems that are beyond the reach of classical computers.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an example quantum computing service that may use a cache to store compiled files of quantum functions, according to some embodiments.
FIG. 2 shows an example quantum computing service that may enable customers to access quantum computers using multiple quantum computing technologies, according to some embodiments.
FIG. 3 illustrates a service provider network comprising a quantum computing service, virtual computing service, and storage service, according to some embodiments.
FIGS. 4 A- 4 C illustrate an example edge computing device connected to a quantum computing service, according to some embodiments.
FIG. 4 D shows example elements inside compiler and cache, according to some embodiments
FIG. 5 illustrates an example process for compiling a quantum computing program using stored compiled files of quantum functions in a cache, according to some embodiments.
FIG. 6 illustrates an example process for updating a cache of compiled files, according to some embodiments.
FIG. 7 illustrates an example process for using compiled files for quantum hardware providers of different quantum technologies, according to some embodiments.
FIG. 8 illustrates an example process for using compiled files to implement a parametric compilation, according to some embodiments.
FIG. 9 is a block diagram illustrating an example computing device that may be used in at least some embodiments.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that the 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). The words âinclude,â âincluding,â and âincludesâ indicate open-ended relationships and therefore mean including, but not limited to. Similarly, the words âhave,â âhaving,â and âhasâ also indicate open-ended relationships, and thus mean having, but not limited to. The terms âfirst,â âsecond,â âthird,â and so forth as used herein are used as labels for nouns that they precede, and do not imply any type of ordering (e.g., spatial, temporal, logical, etc.) unless such an ordering is otherwise explicitly indicated.
âBased On.â As used herein, this term is used to describe one or more factors that affect a determination. This term does not foreclose additional factors that may affect a determination. That is, a determination may be solely based on those factors or based, at least in part, on those factors. Consider the phrase âdetermine A based on B.â While B may be a factor that affects the determination of A, such a phrase does not foreclose the determination of A from also being based on C. In other instances, A may be determined based solely on B.
The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicitly or implicitly), or any generalization thereof, whether or not it mitigates any or all of the problems addressed herein. Accordingly, new claims may be formulated during prosecution of this application (or an application claiming priority thereto) to any such combination of features. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the appended claims.
DETAILED DESCRIPTION
Quantum computers provided by quantum hardware providers may be implemented using different quantum computing technologies. For example, some quantum computers may include qubits built from superconductors, trapped ions, semiconductors, photonics, etc. A quantum computing program, generally written in a (high-level) source programming language, needs to be compiled into an executable version before it is executed on a quantum computer of a quantum hardware provider. The compiled version of the quantum computing program is in a format, such as in a machine language, in accordance with the quantum hardware of the quantum computer. The compilation of a source code to a compiled (executable) code may be time consuming and thus a considerable overhead added to cloud-based quantum computing.
Various embodiments described herein relate to techniques for reducing the amount of overhead associated with compilation of quantum computing programs in a cloud-based quantum computing service. In some embodiments, the quantum computing service may be implemented using one or more computing devices as part of a service provider network. For example, in some embodiments, a quantum computing service may be implemented using classical (binary) computers of the service provider network located at the same or different locations from customers, which may allow the customers to access various quantum computing resources of quantum hardware providers. In some embodiments, a quantum computing service may receive quantum computing programs from customers, cause the quantum computing programs to be compiled into compiled quantum circuits, and transport the compiled quantum computing programs to quantum hardware providers for execution. Upon completion of the execution of the compiled quantum computing programs comprising one or more compiled quantum circuits, results may be provided to the customers. In some embodiments, during compilation, one or more compiled quantum circuit files of one or more quantum functions in a quantum computing program may be generated, and stored by the quantum computing service, for example in a cache. The quantum computing service may then re-use the compiled quantum circuit files stored in the cache to compile future received quantum computing programs to cut down on an amount of overhead associated with compilation of the quantum computing program. For example, the quantum computing service may first receive a first quantum computing program written in a (high-level) source programming language for execution using a quantum processing unit of a quantum hardware provider. In some embodiments, the first quantum computing program may include one or more quantum functions, such as a Bell function to perform a Bell operation. The quantum computing service may store a compiled quantum circuit file for the Bell function (e.g. that is included in the first quantum computing program). For example, the compiled quantum circuit for the Bell function may be stored in a cache and an identifier for the compiled quantum circuit for the Bell function may be added to a database or other registry or directory of compiled quantum circuits that are stored in the cache. Next, the quantum computing service may receive an additional quantum computing program for execution using the quantum hardware provider. During compilation of the additional quantum computing program, the quantum computing service may parse the additional quantum computing program to determine whether the additional quantum computing program includes the Bell function, as was included in the first quantum computing program, where the Bell function is currently stored in the cache. If the additional quantum computing program also includes the Bell function, the quantum computing service may obtain the compiled quantum circuit file from the cache (instead of re-compiling the Bell function) and re-use the compiled quantum circuit file to generate a compiled version of the additional quantum computing program. Thus, repetition of quantum circuit compilation of at least one portion of the additional quantum computing program may be avoided. Accordingly, the amount of quantum circuit compilation and associated overhead may be reduced.
In some embodiments, a quantum computing service may use one cache per quantum computing customer, e.g., in a one-to-one mapping or single-customer mode. For example, a customer may opt in, or the quantum computing service may be set up, such that one cache is generated and used specifically for only one corresponding customer. Alternatively, in some embodiments, a cache may be generated and used to cache compiled quantum circuits available for use to compile quantum programs submitted by different customers, e.g., in a cross-customer mode. For example, compiled quantum circuit files generated from compilation of quantum computing programs of customer A may be re-used for the compilation of quantum computing programs of customer B, and vice versa. One benefit of the cross-customer mode may be that the compiled quantum circuit files in the cache may be built up more quickly (based on quantum computing programs received from more customers) and may be used to serve and benefit more customers. Further, in some embodiments, for a customer to be able to use the compiled quantum circuit files of another customer, the customer and/or the quantum computing service may need an authorization or license from the other customer. For example, a customer may allow (or dis-allow) specific ones of the compiled files in the cache, which are generated during compilation of quantum computing program(s) from the customer, to be shared with other customers, e.g., through an authorization code, a license, or other permission indications. Further, the customer may specify different levels of permission, e.g., one level of permission to allow a compiled file to be shared with another specific customer and another level of permission to allow another compiled file to be shared with any customers.
In some embodiments, a quantum computing service may store a cached version of a compiled quantum circuit for a whole quantum computing program or may store cached versions of portions of the quantum program as separately cached compiled quantum circuits. In some embodiments, a quantum program may be compiled using cached quantum circuit files for portions of the quantum program and, for other portions of the quantum program for which a compiled quantum circuit is not stored in a cache, additional quantum circuits may be compiled. Thus, a compiled quantum program may be formed using cached and non-cached compiled quantum circuits. In some embodiments, compiled quantum circuits generated in order to compile such a quantum program may be added to the cache, once compiled, and also added to a directory of compiled quantum circuits stored in the cache.
In some embodiments, the quantum functions of a quantum program for which the quantum computing service stores compiled quantum circuit files may have different levels of complexity. For example, in some embodiments, a quantum function may be a relatively simple function that may be represented by a single quantum logic gate, such as a Pauli-X (or X) gate. In addition, in some embodiments, a quantum function may include a more complex function, such as a Bell function (as in the above example) that may further include several less complex quantum functions, such as a Hadamard gate and a CNOT gate. In some embodiments, quantum hardware providers may use different quantum computing technologies to implement different types of quantum processing units (QPUs). For example, some quantum computers may include qubits built from superconductors, trapped ions, semiconductors, photonics, etc. As a result, the compiled quantum circuit file of a quantum function to be executed on a given QPU may need to be in the executable format (e.g., a binary file format) in accordance with the corresponding quantum hardware type of the given QPU. Thus, in some embodiments, a quantum computing service may store multiple compiled quantum circuit files for a single quantum function in different formats in accordance with quantum hardware types of QPUs offered by respective quantum hardware providers. Furthermore, in some embodiments, a previously received quantum computing program (e.g., the first quantum computing program in the above example) and the later received quantum computing program (e.g., the additional quantum computing program in the example) may or may not be written in the same source quantum programming language. For example, one quantum computing program may use a term âBell functionâ whereas another quantum computing program represents the equivalent of a âBell functionâ as a Hadamard gate and CNOT gate without assigning a particular label, such as âBell function.â In some embodiments, as long as both instances of the quantum function include the same quantum gates targeted to be executed on the same quantum hardware type, the compiled quantum circuit files of the different instances of the quantum function may be the same, and thus a compiled quantum circuit file generated from the previously received quantum computing program may be re-used to decrease the compilation overhead for the later received additional quantum computing program.
In some embodiments, compilation of a compiled quantum circuit may involve at least two compilation steps, such as compilation of a version of a quantum function using a native gate set that is native to a given QPU upon which the compiled quantum circuit is to be executed and compilation of a machine binary for instructing the various sensors and instruments of the given QPU to execute the compiled quantum function (e.g. to implement and execute the native gates). In some embodiments, a compiled native gate set may have a long validity life in a cache because the compiled native gate set is not dependent upon calibration data of the QPU. In contrast, a compiled machine binary for instructing the various sensors and instruments of the given QPU may have a shorter validity life in the cache because the compiled machine binary takes into account calibration data for the various sensors and instruments of the given QPU, which may drift or otherwise change over time.
In some embodiments, a cache of a quantum computing service may store compiled native gate sets, compiled machine binaries or both. In some embodiments, for a given quantum function, a quantum computing service may store a compiled native gate set for a given QPU and/or a compiled machine binary for the given QPU. In some embodiments, the compiled machine binary may be rendered invalid if one or more thresholds is met, such as expiration of a threshold amount of time, opening of a new access window for the QPU, and/or start of a new calibration of the quantum computer. However, the compiled native gate set may remain stored in the cache even if the compiled machine binary is rendered invalid. Thus, if a subsequent quantum program is received that includes the quantum function, a new machine binary may be compiled using current calibration data, but the steps of compiling the native gate set may be omitted by using the cached compiled native gate set for the given quantum function.
In some embodiments, a quantum hardware provider may provide compilation services and a cache of a quantum computing service may cache compiled quantum circuits that were compiled by a quantum hardware provider. For example, in some embodiments, a quantum computing service may submit a quantum program to a quantum hardware provider and receive back a compiled native gate set. The quantum computing service may then submit the compiled native gate set to the quantum hardware provider and receive back a compiled machine binary for a given QPU of the quantum hardware provider. The quantum computing service may then include the compiled machine binary for the given QPU in a task queue for quantum tasks to be executed on the given QPU. In some embodiments, the quantum computing service may cache the native gate set and/or the compiled to machine binary received from the quantum hardware provider and may re-use the cached files for subsequent quantum programs without having to re-submit the corresponding quantum functions to the quantum hardware provider to determine a compiled native gate set and/or a compiled machine binary for the respective quantum functions.
In some embodiments, the cache for storing compiled quantum circuits may be implemented as a centralized or a distributed system. For example, in some embodiments, the cache may be implemented as a centralized system residing at a centralized location, such as the quantum computing service. Alternatively, in some embodiments, the cache may include several caches distributed at different locations. For example, in some embodiments, the service provider network may include multiple edge computing devices located at respective locations of the quantum hardware providers. As a result, at least a portion of the cache storing compiled quantum circuit files in a format in accordance with the quantum hardware type of a quantum hardware provider may be implemented using the edge computing device(s) located at the same location of this quantum hardware provider. Further, in some embodiments, the cache for storing compiled quantum circuits may be implemented based on virtualized or non-virtualized storage using various storage devices, such as flash memory, hard drive disks, solid state drives, optical storage devices, etc.
In some embodiments, one or more of the compiled quantum circuit files in the cache may be associated with validity periods in connection with calibration data of corresponding quantum computers of the quantum hardware providers (e.g. QPUs). Calibration is a process to measure parameters of a quantum computer to reduce errors and decoherence in quantum computing. In some embodiments, quantum hardware providers may frequently update, calibrate, and/or modify their respective quantum computers. Because of these frequent changes, benchmarking results may quickly become obsolete. For example, benchmarking results for a quantum computer performed on a given day when the quantum computer is recently calibrated may quickly become obsolete after a few days, hours, or even minutes as the quantum computer varies from the calibrated state. In some embodiments, a quantum hardware provider may calibrate a QPU when providing an access window that makes the QPU available to execute quantum programs. Thus, a compiled file created using calibration data for benchmarking results at a given point-in-time may not be valid at a later point in time when the QPU has drifted from the calibration data determined based on the previously determined benchmarking results. As a result, in some embodiments, the quantum computing service may recognize validity periods of the compiled quantum circuit files stored in the cache, and render them invalid upon a determination of expiration of their respective validity periods. As described above, a validity period may be determined expired if one or more thresholds is met, such as expiration of a threshold amount of time, opening of a new access window for the QPU, and/or start of a new calibration of the quantum computer. Depending on the quantum hardware and/or calibration measurement techniques, in some embodiments, the validity period of a quantum computer may last from seconds, minutes, hours, up to days. An invalid compiled quantum circuit file may not be re-used for compilation of future quantum computing programs. In some embodiments, after a compiled quantum circuit file for one quantum functions becomes invalid, the quantum computing service may monitor for the quantum functions in future received quantum computing programs. When the same quantum function is compiled for a subsequently received quantum program using updated calibration data, the quantum computing service may cause a new compiled file of the quantum function to be generated and stored in the cache to replace the expired compiled quantum circuit stored file in the cache. In some embodiments, an invalid compiled quantum circuit file may be removed from the cache.
FIG. 1 shows an example quantum computing service that may use a cache to store compiled files of quantum functions, according to some embodiments. In FIG. 1 , service provider network 100 may include quantum computing service 102 . In some embodiments, quantum computing service 102 may be implemented using one or more computing devices, such as classical (binary) computers, of service provider network 100 . In some embodiments, service provider network 100 may also include other devices such as storage devices, routers, networking devices, etc. and provide other cloud-based services such as database and storage services, networking services, etc. Quantum computing service 102 may provide one or more customers
104 , 106 , and 108 access to quantum computing resources of various
quantum hardware providers
122 , 124 , 126 , and 128 . In some embodiments, customers
104 , 106 , and 108 may access quantum computing service 102 via network 120 , such as a logically isolated connection over a public network, a dedicated private physical connection (not accessible to the public), a public Internet connection, etc. In some embodiments,
quantum hardware providers
122 , 124 , 126 , and 128 may allow quantum computing programs to be executed on quantum computers based on various different types of quantum computing technologies or paradigms, such as quantum annealers, ion trap machines, superconducting machines, photonic devices, etc. In some embodiments, quantum computing service 102 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.
For purposes of illustration, example interactions between a customer and a quantum hardware provider, through quantum computing service 102 , may be described in the following steps. For instance, in some embodiments, at âstep Aâ quantum computing service 102 may receive a first quantum computing program from a customer (e.g., customer 104 ), e.g., via an interface, for execution using a quantum hardware provider (e.g., quantum hardware provider 124 ). In some embodiments, the interface may be a graphic interface on a website, an interface for command line input (CLI), an application programming interface (API), software development kit (SDK), etc. that allows a customer to access quantum computing service 102 via network 120 . In some embodiments, the first quantum computing program may be stored temporarily at task queue(s) 130 of quantum computing service 102 .
In some embodiments, the quantum computing program may be written in or represented by a generic source programming language. For instance, in some embodiments, when a developer uses a software development kit, the quantum computing program submitted by the developer to quantum computing service 102 may be represented by a graphic diagram including one or more quantum function blocks in a generic source programming language visible to the developer (e.g., QCL, QASM, OpenQASM, Q #, Quil, Quipper, etc.). In some embodiments, quantum computing service 102 may first translate the quantum computing program to a gate-level program file, such as a Quil file, that replaces the quantum computing program with one or more quantum logic gates. Alternatively, in some embodiments, a developer may directly use a gate-level source programming language (e.g., when using a software development kit (SDK) such as PyQuil) to write a quantum computing program. In some embodiments, such gated-level program files may include generic (or standard) quantum logic gates that may not be actually offered by a given quantum computer. Thus, in some embodiments, the generic gate-level program file may be further translated to a native gate-level program file (e.g., a native Quil file) based on natural gate sets of the specific quantum computer.
The translated first quantum computing program that has been translated into the generic gate-level program file may not necessarily be âunderstoodâ by the quantum computer of quantum hardware provider 124 . Thus, in some embodiments, at âstep Bâ task manager 133 may direct task queue(s) 130 to send the first quantum computing program to compiler 135 for compilation. During the compilation, compiler 135 may parse this quantum computing program, generate compiled files of individual quantum functions included or called in the quantum computing program, and link these compiled files in to a compiled code. The compiled quantum computing program or code may be in the format (e.g., a binary file format) in accordance with the quantum hardware of the quantum computer, and thus executable on the quantum computer of quantum hardware provider 124 . In other words, a quantum computing program in a generic, gate-level or non gate-level, source programming language (e.g., QCL, QASM, OpenQASM, Q #, Quil, Quipper, using PyQuil, etc.) represents a target quantum computing task in a portable language format that may be developed and visible on various computing devices. The translation of the quantum computing program to a native gate-level program file (e.g., native Quil file) converts the representation of the target quantum computing task from the portable language format to a native language format that may be specific to a given type of a quantum computer. And the compilation of the native gate-level program file to a compiled quantum circuit file that is directly executable on a given quantum computer is like encoding the target quantum computing task from the native, quantum hardware-specific representation to a machine language representation that may be âunderstoodâ and executed directly on the given quantum computer.
In some embodiments, at step âCâ the compiled quantum computing program may be transported to quantum hardware provider 124 for execution, and in return a result may be provided to customer 104 . In some embodiments, at âstep Dâ compiler 135 of quantum computing service 102 may store one or more of the compiled files of the quantum functions of the first quantum computing program in cache 140 . As indicated in FIG. 1 , in some embodiments, cache 140 may reside within service provider network 100 , but outside quantum computing service 102 . For instance, cache 140 may be implemented using one or more edge computing devices of service provider network 100 located at the locations of respective
quantum hardware providers
122 , 124 , 126 , and 128 , such as providing a distributed cache system. In this example, given the compiled files is in the format compatible with the quantum hardware of quantum hardware provider 124 , the compiled file may thus be stored in the edge computing device(s) at the location of quantum hardware provider 124 . Alternatively, in some embodiments, cache 140 may be implemented using computing device(s) of quantum computing service 102 and thus reside within quantum computing service 102 , e.g., providing a centralized cache system. In some embodiments, the edge computing devices may also be part of quantum computing service 102 . In addition, in some embodiments, at âstep Dâ compiler 135 of quantum computing service 102 may also store one or more of the (translated) native gate-level program files of one or more quantum functions of the first quantum computing program in cache 140 or another cache. Alternatively, in some embodiments, at âstep Dâ compiler 135 may store only the (translated) native gate-level program files, not the compiled binary files, in a cache.
In some embodiments, the quantum functions for which quantum computing service 102 stores compiled files may include quantum functions of different levels of complexity. For example, in some embodiments, a quantum function may be a relatively simple function that may be represented by a single quantum logic gate, such as a Pauli-X (or X) gate, a Hadamard (or H) operator, etc. In addition, in some embodiments, a quantum function may include a more complex function, such as a Bell function, a quantum Fourier transformer (QFT) function, etc. that may include and be built on top of other quantum functions or logic gates. For purposes of illustration, in this example, it is assumed that quantum computing service 102 stores a compiled file of a Bell function from the first quantum computing program in cache 140 . In addition, in some embodiments, the compiled files in cache 140 may be each associated with an identifier, e.g., a hash value created based on the name and parameter(s) (or argument(s)) of the corresponding quantum function. For example, in some embodiments, cache 140 may include a database that may include identifiers, e.g., one or more relational tables, hash tables, or other forms of a database structures that organize identifiers for cached compiled quantum circuits. A compiled quantum circuit file and associated identifier (e.g., a hash value of the compiled quantum circuit file) or other information may be stored as records in the database of cache 140 . Consider the Bell function as an example, the identifier for its compiled quantum circuit file in cache 140 may be a hash value of the string Bell (0, 1) or Bell. Alternatively, in some embodiments, the identifier for a compiled quantum circuit file may simply be the name of the quantum function, such as the string Bell, or use other information of the quantum function. In some embodiments, the identifier of a compiled quantum circuit file may also be associated with an identifier of the quantum computer type (e.g. QPU) upon which the compiled quantum circuit has been compiled to execute, such as quantum computer # 1 of quantum hardware provider 124 . This way, compiler 135 may be able to recognize if a compiled file is in the format compatible with the quantum hardware of a given quantum computer of a given quantum hardware provider.
In some embodiments, quantum computing service 102 may receive an additional quantum computing program from the customer or another customer for execution using quantum hardware provider 124 , and the additional quantum computing program may be sent to compiler 135 for compilation, like âstep Aâ and âstep Bâ described above. The customer may be the same customer (e.g., customer 104 ) of the first quantum computing program in a single-customer mode, or alternatively a different customer (e.g., customer 108 ) in a cross-customer mode. Either way, the following steps may be performed in a substantially similar manner. But for purposes of illustration, it is considered that the additional quantum program may be received from a different customer such as customer 108 in this example.
In some embodiments, at âstep Bâ during compilation of the additional quantum computing program, compiler 135 may parse the additional quantum computing program to determine whether it includes any of the quantum functions that have compiled files stored in cache 140 . In some embodiments, this determination may be based on examining whether the second quantum computing program has a quantum function of set of quantum gates that match an identifier indicating any of the quantum functions in cache 140 . For example, when the additional quantum computing program includes such quantum functions, compiler 135 may compute hash values of these quantum functions to determine whether any of them match the hash values for compiled quantum circuits stored in cache 140 . When, as an example, a match is identified with the hash value for the Bell function in cache 140 , compiler 135 may determine that the Bell function in the additional quantum computing program is stored in cache 140 .
At âstep Eâ and âstep Fâ when it is determined that the additional quantum computing program includes a same quantum function, e.g., the Bell function, compiler 135 may obtain the corresponding compiled quantum circuit file from cache 140 , and re-use the compiled file to generate a compiled file for the additional quantum computing program. When cache 140 uses a database to store the compiled file and associated identifier, the retrieval of the compiled file from cache 140 may be implemented using any appropriate database query techniques. At âstep Câ the compiled second quantum computing program may be transported from quantum computing service 102 to quantum hardware provider 124 for execution, and in return a result may be provided to customer 108 . As described herein, quantum computing service may be able to re-use a previously compiled file (from the first quantum computing program) to compile the second quantum computing program. Thus, repetition of compilation of at least one portion of the second quantum computing program may be avoided. As a result, the amount of compilation and associated overhead may be reduced. In some embodiments, at âstep Eâ and âstep Fâ compiler 135 may fetch one or more (translated) native gate-level program files of one or more matched quantum functions from cache 140 or another cache to accelerate the compilation process of the second quantum computing program. For instance, compiler 135 may retrieve a native gate-file of a quantum function that was generated for one quantum computer of quantum hardware provider 124 , and use it to facilitate the creation of the compiled file of the quantum computing program for another quantum computer of quantum hardware provider 124 , wherein both quantum computers of quantum hardware provider 124 use the same native gates. Note that in some embodiments, the stored native gate-level program files may not necessarily include information of the calibration data of a given quantum computer (e.g. QPU).
As described above, in some embodiments, quantum computers may need to be calibrated to reduce errors and decoherence in the quantum computing, and the compilation of the quantum computing program may be connected with the calibration data of a quantum computer. Thus, in some embodiments, the compiled files in cache 140 , e.g., for the Bell function as an example, may be associated with respective validity periods. In some embodiments, the validity periods may last from seconds, minutes, hours, up to days, depending on the corresponding quantum computer and/or calibration measurements. In some embodiments, quantum computing service 102 may recognize that the compiled files in cache 140 are associated with the validity periods, and render a compiled file invalid upon a determination of expiration of its validity period. In some embodiments, the compiled file of the Bell function (from the first quantum computing program) in cache 140 may have already expired when quantum computing service 140 receives the additional quantum computing program. As a result, quantum computing service 102 may not re-use the expired (or invalid) compiled file to compile the additional quantum computing program. Instead, compiler 135 may generate a new compiled file of the Bell function, as an example, during compilation of the additional quantum computing program, and use the newly generated compiled file to compile the at least a portion of the additional quantum computing program. Further, in some embodiments, compiler 135 may store the newly generated compiled file in cache 140 (to replace the expired compiled file), like âstep Dâ described above.
Further, as described above, the format of the compiled file of a quantum function may need to be compatible with the quantum hardware, such that the compiled file may be a binary file that is âunderstoodâ and executable directly on the corresponding quantum computer. In other words, a compiled file for one type of quantum hardware may not be executable on another type of quantum hardware. In some embodiments, the second quantum computing program from customer 108 may be targeted to a different quantum computer, e.g., one of quantum hardware provider 128 , rather than the same quantum computer of quantum hardware provider 122 for customer 104 . In that case, quantum computing service 102 may not be able to re-use the compiled file in cache 140 (from customer 104 ) to compile the second quantum computing program (from customer 108 ), because the compiled codes need to be in different formats. As a result, compiler 135 may generate a new compiled file of the Bell function, as an example, during compilation of an additional quantum computing program, and use the newly generated compiled file to compile the second quantum computing program. Further, in some embodiments, compiler 135 may store the newly generated compiled file in cache 140 (for quantum hardware provider 128 ), like âstep Dâ described above. Alternatively, in some embodiments, compiler 135 of quantum computing service 102 may proactively
CLAIMS
Claims ( 20 )
What is claimed is:
1. A system, comprising:
one or more computing devices configured to implement a quantum computing service to allow access to one or more quantum hardware providers, wherein the quantum computing service is configured to:
receive a first quantum computing program requested to be executed using at least one of the quantum hardware providers;
generate one or more compiled files corresponding to one or more quantum functions included in the first quantum program in a format executable on a quantum computer of the at least one quantum hardware provider;
store in a cache at least one of the one or more compiled files;
receive a second quantum computing program requested to be executed using the at least one quantum hardware provider;
determine whether the second quantum computing program includes at least one of the quantum functions corresponding to the compiled files stored in the cache; and
in response to a determination that the second quantum computing program includes a first quantum function that has a corresponding compiled file in the cache,
obtain from the cache the compiled file of the first quantum function;
compile the second quantum computing program using the compiled file of the first quantum function obtained from the cache; and
provide the compiled second quantum computing program for execution on the quantum computer of the at least one quantum hardware provider.
2. The system of claim 1 , wherein to determine whether the second quantum computing program includes at least one of the quantum functions, the quantum computing service is configured to determine whether the second quantum computing program references an identifier indicating at least one of the quantum functions in the cache.
3. The system of claim 1 , wherein the first quantum computing program is received from a first client, and wherein the second quantum computing program is received from the first client or another client.
4. The system of claim 1 , the quantum computing service is further configured to:
determine that the second quantum computing program includes a second quantum function that does not have a compiled file stored in the cache;
generate a compiled file of the second quantum function in the format executable on the quantum computer of the at least one quantum hardware provider;
compile the second quantum computing program using the compiled file of the first quantum function obtained from the cache and the generated compiled file of the second quantum function; and
store the compiled file of the second quantum function in the cache.
5. The system of claim 1 , wherein at least one of the compiled files in the cache is associated with a validity period in connection with calibration of the quantum computer of the at least one quantum hardware provider, and wherein the quantum computing service is configured to render the at least one compiled file invalid upon a determination of expiration of the validity period.
6. A method, comprising:
receiving, at a quantum computing service implemented using one or more computing devices, a quantum computing program requested to be executed using a quantum hardware provider;
determining, by the quantum computing service, whether the quantum computing program includes a first quantum function with a corresponding compiled file in a cache in a format executable on a quantum computer of the quantum hardware provider; and
responsive to determining that the quantum computing program includes the first quantum function that has a corresponding compiled file in the cache,
compiling, by the quantum computing service, the quantum computing program using the compiled file obtained from the cache corresponding to the first quantum function; and
providing the compiled quantum computing program to the quantum hardware provider for execution.
7. The method of claim 6 , wherein determining whether the quantum computing program includes the first quantum function comprises determining whether the quantum computing program references an identifier indicating the first quantum function in the cache.
8. The method of claim 6 , wherein the quantum computing program is received from a first client, and wherein the compiled file of the first quantum function in the cache is associated with an indication specifying that the compiled file of the first quantum function is allowed to be used to compile quantum computing programs received from another client.
9. The method of claim 6 , further comprising:
determining that the quantum computing program includes a second quantum function that does not have a compiled file stored in the cache;
causing a compiled file of the second quantum function to be generated in the format executable on the quantum computer of the quantum hardware provider;
compiling the quantum computing program using the compiled file of the first quantum function obtained from the cache and the generated compiled file of the second quantum function; and
storing the compiled file of the second quantum function in the cache.
10. The method of claim 6 , further comprising:
determining that remaining one or more quantum functions in the quantum computing program individually have corresponding compiled files stored in the cache;
obtaining from the cache the compiled file of the remaining quantum functions; and
compiling the quantum computing program using the compiled files of the first quantum function and the remaining quantum functions obtained from the cache.
11. The method of claim 6 , further comprising:
recognizing that at least one of compiled files in the cache is associated with a validity period in connection with calibration of the quantum computer of the at least one quantum hardware provider; and
rendering the at least one compiled file invalid upon a determination of expiration of the validity period.
12. The method of claim 6 , wherein at least a portion of the cache storing the compiled file of the first quantum function resides in a first edge computing device located at a location of the quantum hardware provider.
13. The method of claim 6 , further comprising:
generating a translated file of the first quantum function, based on a translation of the quantum computing program from a generic representation to a native representation specific to the quantum hardware provider; and
storing the translated file of the first quantum function in the native representation in the cache.
14. One or more non-transitory computer readable media storing program instructions that, when executed on or across one or more processors, cause the one or more processors to:
receive, via an interface, a quantum computing program requested to be executed using a quantum computer of at least one of one or more quantum hardware providers;
determine whether the quantum computing program includes at least one of one or more quantum functions that have corresponding compiled files in a cache in a format executable on the quantum computer of the at least one quantum hardware provider;
responsive to determining that the quantum computing program includes a first quantum function that has a corresponding compiled file in the cache,
compile the quantum computing program using the compiled file obtained from the cache corresponding to the first quantum function; and
provide the compiled quantum computing program to the at least one quantum hardware provider for execution.
15. The non-transitory computer readable media of claim 14 , wherein to determine whether the quantum computing program includes at least one of the quantum functions, the program instructions cause the one or more processors to determine whether the quantum computing program references an identifier indicating at least one of the quantum functions in the cache.
16. The non-transitory computer readable media of claim 14 , wherein the quantum computing program is received from a first client, and wherein the compiled files in the cache is associated with an indication specifying that the compiled file of the first quantum function is allowed to be used to compile quantum computing programs received from another client.
17. The non-transitory computer readable media of claim 14 , wherein the program instructions further cause the one or more processors to:
determine that the quantum computing program includes a second quantum function that does not have a compiled file stored in the cache;
generate a compiled file of the second quantum function in the format executable on the quantum computer of the at least one quantum hardware provider;
compile the quantum computing program using the compiled file of the first quantum function obtained from the cache and the generated compiled file of the second quantum function; and
store the compiled file of the second quantum function in the cache.
18. The non-transitory computer readable media of claim 14 , wherein the program instructions further cause the one or more processors to:
determine that remaining one or more quantum functions in the quantum computing program individually have corresponding compiled files stored in the cache;
obtain from the cache the compiled file of the remaining quantum functions; and
compile the quantum computing program using the compiled files of the first quantum function and the remaining quantum functions obtained from the cache.
19. The non-transitory computer readable media of claim 14 , wherein the program instructions further cause the one or more processors to:
recognize that at least one of the compiled files in the cache is associated with a validity period in connection with calibration of the quantum computer of the at least one quantum hardware provider; and
render the at least one compiled file invalid upon a determination of expiration of the validity period.
20. The non-transitory computer readable media of claim 14 , wherein at least a portion of the cache storing the compiled file of the first quantum function resides in a first edge computing device located at a location of the quantum computer of the at least one quantum hardware provider.
US17/393,286
2021-08-03
2021-08-03
Quantum computing program compilation using cached compiled quantum circuit files
Active
2042-11-12
US11977957B2
( en )
Priority Applications (5)
Application Number
Priority Date
Filing Date
Title
US17/393,286
US11977957B2
( en )
2021-08-03
2021-08-03
Quantum computing program compilation using cached compiled quantum circuit files
PCT/US2022/074095
WO2023129761A2
( en )
2021-08-03
2022-07-25
Quantum computing program compilation using cached compiled quantum circuit files
CN202280053512.7A
CN117795475A
( en )
2021-08-03
2022-07-25
Quantum computing program compilation using cached compiled quantum circuit files
EP22893967.4A
EP4381379A2
( en )
2021-08-03
2022-07-25
Quantum computing program compilation using cached compiled quantum circuit files
US18/628,331
US20240249177A1
( en )
2021-08-03
2024-04-05
Quantum computing program compilation using cached compiled quantum circuit files
Applications Claiming Priority (1)
Application Number
Priority Date
Filing Date
Title
US17/393,286
US11977957B2
( en )
2021-08-03
2021-08-03
Quantum computing program compilation using cached compiled quantum circuit files
Related Child Applications (1)
Application Number
Title
Priority Date
Filing Date
US18/628,331
Continuation
US20240249177A1
( en )
2021-08-03
2024-04-05
Quantum computing program compilation using cached compiled quantum circuit files
Publications (2)
Publication Number
Publication Date
US20230040849A1
US20230040849A1 ( en )
2023-02-09
US11977957B2
true
US11977957B2 ( en )
2024-05-07
Family
ID=85153662
Family Applications (2)
Application Number
Title
Priority Date
Filing Date
US17/393,286
Active
2042-11-12
US11977957B2
( en )
2021-08-03
2021-08-03
Quantum computing program compilation using cached compiled quantum circuit files
US18/628,331
Pending
US20240249177A1
( en )
2021-08-03
2024-04-05
Quantum computing program compilation using cached compiled quantum circuit files
Family Applications After (1)
Application Number
Title
Priority Date
Filing Date
US18/628,331
Pending
US20240249177A1
( en )
2021-08-03
2024-04-05
Quantum computing program compilation using cached compiled quantum circuit files
Country Status (4)
Country
Link
US
( 2 )
US11977957B2
( en )
EP
( 1 )
EP4381379A2
( en )
CN
( 1 )
CN117795475A
( en )
WO
( 1 )
WO2023129761A2
( en )
Cited By (2)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
US20230325703A1
( en )
*
2022-04-11
2023-10-12
Red Hat, Inc.
Optimizing execution of quantum service definition files using a quantum optimization database
US12260191B2
( en )
2021-09-30
2025-03-25
Amazon Technologies, Inc.
Assisted composition of quantum algorithms
Families Citing this family (11)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
GB2530036A
( en )
*
2014-09-09
2016-03-16
Ultrahaptics Ltd
Method and apparatus for modulating haptic feedback
US12204986B2
( en )
*
2021-04-29
2025-01-21
Red Hat, Inc.
Generating quantum service definitions from executing quantum services
US12346678B2
( en )
*
2022-01-31
2025-07-01
Intel Corporation
Hybrid compilation apparatus and method for quantum-classical code sequences
US12541703B2
( en )
2022-04-26
2026-02-03
International Business Machines Corporation
Multitasking scheme for quantum computers
US12524691B2
( en )
*
2022-04-26
2026-01-13
International Business Machines Corporation
Central controller for a quantum system
US12572836B2
( en )
*
2023-02-20
2026-03-10
Bank Of America Corporation
Intelligent provisioning of quantum programs to quantum hardware
US12688447B2
( en )
2023-02-20
2026-07-21
Bank Of America Corporation
Intelligent orchestration of quantum programs using smart contracts linked to quantum program non-fungible tokens
US20250131298A1
( en )
*
2023-10-18
2025-04-24
Classiq Technologies LTD.
Iterative compilation and execution in a quantum operating system
US12445533B2
( en )
2024-03-13
2025-10-14
Bank Of America Corporation
Dynamic caching based on a user's temporal and geographical location
CN119129766B
( en )
*
2024-08-21
2025-10-17
ä¸å½ç§å¦é¢è®¡ç®ææ¯ç ç©¶æ
Quantum computer benchmark test system and test method
US20260105001A1
( en )
*
2024-10-16
2026-04-16
International Business Machines Corporation
Utilizing cache in a quantum system
Citations (56)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
US6741585B1
( en )
2000-05-05
2004-05-25
Lucent Technologies Inc.
Interworking of addressing in an internetwork
US20050013280A1
( en )
2003-07-14
2005-01-20
Buddhikot Milind M.
Method and system for mobility across heterogeneous address spaces
US20050251806A1
( en )
2004-05-10
2005-11-10
Auslander Marc A
Enhancement of real-time operating system functionality using a hypervisor
EP1701259A2
( en )
2005-03-11
2006-09-13
Microsoft Corporation
Systems and methods for multi-level intercept processing in a virtual machine environment
US20080244553A1
( en )
2007-03-28
2008-10-02
Daryl Carvis Cromer
System and Method for Securely Updating Firmware Devices by Using a Hypervisor
US7484091B2
( en )
2004-04-29
2009-01-27
International Business Machines Corporation
Method and system for providing a trusted platform module in a hypervisor environment
US20100070970A1
( en )
2008-09-15
2010-03-18
Vmware, Inc.
Policy-Based Hypervisor Configuration Management
US20110075667A1
( en )
2009-09-30
2011-03-31
Alcatel-Lucent Usa Inc.
Layer 2 seamless site extension of enterprises in cloud computing
US20110131443A1
( en )
2009-11-30
2011-06-02
Dor Laor
Mechanism for Automatic Adjustment of Virtual Machine Storage
US7996836B1
( en )
2006-12-29
2011-08-09
Symantec Corporation
Using a hypervisor to provide computer security
US8032899B2
( en )
2006-10-26
2011-10-04
International Business Machines Corporation
Providing policy-based operating system services in a hypervisor on a computing system
US8127292B1
( en )
2007-06-22
2012-02-28
Parallels Holdings, Ltd.
Virtualization system with hypervisor embedded in bios or using extensible firmware interface
US8201161B2
( en )
2008-01-07
2012-06-12
Lenovo (Singapore) Pte. Ltd.
System and method to update device driver or firmware using a hypervisor environment without system shutdown
US8239557B2
( en )
2008-06-25
2012-08-07
Red Hat, Inc.
Virtualization management using a centralized server
EP2557498A1
( en )
2011-01-30
2013-02-13
Huawei Technologies Co., Ltd.
Updating method and computer system for hypervisor components
US8433802B2
( en )
2010-01-26
2013-04-30
International Business Machines Corporation
System and method for fair and economical resource partitioning using virtual hypervisor
US8514868B2
( en )
2008-06-19
2013-08-20
Servicemesh, Inc.
Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US20140208413A1
( en )
2013-01-23
2014-07-24
Steve Grobman
System and method for an endpoint hardware assisted network firewall in a security environment
US20150160884A1
( en )
2013-12-09
2015-06-11
Vmware, Inc.
Elastic temporary filesystem
US9230016B2
( en )
2011-02-02
2016-01-05
Novell, Inc
User input auto-completion
US20160026573A1
( en )
2014-07-28
2016-01-28
International Business Machines Corporation
Using a decrementer interrupt to start long-running hardware operations before the end of a shared processor dispatch cycle
US20160077845A1
( en )
2014-09-11
2016-03-17
Amazon Technologies, Inc.
Variable timeslices for processing latency-dependent workloads
US9323552B1
( en )
2013-03-14
2016-04-26
Amazon Technologies, Inc.
Secure virtual machine memory allocation management via dedicated memory pools
US9361145B1
( en )
2014-06-27
2016-06-07
Amazon Technologies, Inc.
Virtual machine state replication using DMA write records
US20160170785A1
( en )
2014-12-11
2016-06-16
Amazon Technologies, Inc.
Managing virtual machine instances utilizing an offload device
US20160170781A1
( en )
2014-12-11
2016-06-16
Amazon Technologies, Inc.
Systems and methods for loading a virtual machine monitor during a boot process
US9485323B1
( en )
2013-09-23
2016-11-01
Amazon Technologies, Inc.
Managing pooled client-premise resources via provider-defined interfaces
US20170300354A1
( en )
2009-07-27
2017-10-19
Nicira, Inc.
Automated network configuration of virtual machines in a virtual lab environment
US20170366606A1
( en )
2014-05-13
2017-12-21
Velostrata Ltd.
Real Time Cloud Workload Streaming
US9979694B2
( en )
2010-09-30
2018-05-22
Amazon Technologies, Inc.
Managing communications between virtual computing nodes in a substrate network
US20180260125A1
( en )
2017-03-10
2018-09-13
Pure Storage, Inc.
Synchronously replicating datasets and other managed objects to cloud-based storage systems
US10095537B1
( en )
2016-03-22
2018-10-09
Amazon Technologies, Inc.
Driver version identification and update system
US10482413B2
( en )
2015-12-18
2019-11-19
Amazon Technologies, Inc.
Data transfer tool for secure client-side data transfer to a shippable storage device
WO2019222748A1
( en )
2018-05-18
2019-11-21
Rigetti & Co, Inc.
Computing platform with heterogenous quantum processors
US10498611B1
( en )
2018-08-29
2019-12-03
Charter Communications Operating, Llc
System architecture and methods for controlling and managing networking devices and expediting new service delivery in a subscriber's home network using micro-domains
US10592216B1
( en )
2017-11-15
2020-03-17
Amazon Technologies, Inc.
Development environment for programming quantum computing resources
US20200117469A1
( en )
2018-10-15
2020-04-16
International Business Machines Corporation
Generating a predicted profile for target code based on a profile of sampled code
US10713582B2
( en )
*
2016-03-11
2020-07-14
1Qb Information Technologies Inc.
Methods and systems for quantum computing
US20200394027A1
( en )
2019-06-11
2020-12-17
IonQ, Inc.
Quantum compiler
US20210012233A1
( en )
*
2019-07-11
2021-01-14
International Business Machines Corporation
Adaptive compilation of quantum computing jobs
US20210019125A1
( en )
2019-07-16
2021-01-21
Google Llc
Systems and Methods for Synthesizing Code from Input and Output Examples
US11010145B1
( en )
*
2018-02-21
2021-05-18
Rigetti & Co, Inc.
Retargetable compilation for quantum computing systems
US20210157662A1
( en )
*
2019-11-27
2021-05-27
Amazon Technologies, Inc.
Quantum computing service with local edge devices supporting multiple quantum computing technologies
WO2021108510A1
( en )
*
2019-11-27
2021-06-03
Amazon Technologies, Inc.
Quantum computing service supporting multiple quantum computing technologies
US20210166133A1
( en )
*
2019-12-03
2021-06-03
1Qb Information Technologies Inc.
System and method for enabling an access to a physics-inspired computer and to a physics-inspired computer simulator
US20210286601A1
( en )
*
2019-12-09
2021-09-16
Horizon Quantum Computing Pte. Ltd.
Systems and methods for unified computing on digital and quantum computers
US20210303279A1
( en )
2020-03-31
2021-09-30
Microsoft Technology Licensing, Llc.
Frequent source code pattern mining
US11222279B2
( en )
*
2019-04-18
2022-01-11
International Business Machines Corporation
Modular quantum circuit transformation
US20220084085A1
( en )
*
2018-10-03
2022-03-17
Rigetti & Co, Inc.
Parcelled Quantum Resources
US20220215279A1
( en )
*
2021-01-04
2022-07-07
At&T Intellectual Property I, L.P.
Federated quantum computing distributed architecture
US11442702B2
( en )
2018-09-22
2022-09-13
Affirm, Inc.
Code completion
US20220358390A1
( en )
*
2021-05-04
2022-11-10
International Business Machines Corporation
Communication coordination and node synchronization for enhanced quantum circuit operation employing a hybrid classical/quantum system
US20230020389A1
( en )
*
2021-07-09
2023-01-19
Rigetti & Co, Llc
Executing a Quantum Logic Circuit on Multiple Processing Nodes
US20230099621A1
( en )
2021-09-30
2023-03-30
Amazon Technologies, Inc.
Determination of quantum circuit compilation passes and/or compilation parameters optimized for one or more performance metrics
US11658948B2
( en )
*
2020-12-08
2023-05-23
TrustFour Technologies, Inc.
Cryptographic platform system and method
US20230259802A1
( en )
*
2020-07-15
2023-08-17
Google Llc
Generative Modeling of Quantum Hardware
Family Cites Families (10)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
US9110751B2
( en )
*
2012-02-13
2015-08-18
Microsoft Technology Licensing, Llc
Generating and caching software code
US9600256B2
( en )
*
2013-10-18
2017-03-21
Microsoft Technology Licensing, Llc
Incrementally compiling software artifacts from an interactive development environment
US9348625B2
( en )
*
2014-05-23
2016-05-24
Google Inc.
Application access to native and bundled libraries
GB2530036A
( en )
*
2014-09-09
2016-03-16
Ultrahaptics Ltd
Method and apparatus for modulating haptic feedback
US9672020B2
( en )
*
2014-09-19
2017-06-06
Microsoft Technology Licensing, Llc
Selectively loading precompiled header(s) and/or portion(s) thereof
US10990467B2
( en )
*
2016-12-15
2021-04-27
Nutanix, Inc.
Accessing computing resource attributes of an external service provider
US10719903B2
( en )
*
2017-12-22
2020-07-21
International Business Machines Corporation
On-the fly scheduling of execution of dynamic hardware behaviors
US10540737B2
( en )
*
2017-12-22
2020-01-21
International Business Machines Corporation
Processing unit performance projection using dynamic hardware behaviors
US11416295B2
( en )
*
2019-04-30
2022-08-16
Intel Corporation
Technologies for providing efficient access to data in an edge infrastructure
US11074046B2
( en )
*
2019-07-30
2021-07-27
Yacoub Elias Yacoub Massad
Methods and systems for generating code to enable a honest/flexible functional dependency injection approach
2021
2021-08-03
US
US17/393,286
patent/US11977957B2/en
active
Active
2022
2022-07-25
EP
EP22893967.4A
patent/EP4381379A2/en
active
Pending
2022-07-25
WO
PCT/US2022/074095
patent/WO2023129761A2/en
not_active
Ceased
2022-07-25
CN
CN202280053512.7A
patent/CN117795475A/en
active
Pending
2024
2024-04-05
US
US18/628,331
patent/US20240249177A1/en
active
Pending
Patent Citations (57)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
US6741585B1
( en )
2000-05-05
2004-05-25
Lucent Technologies Inc.
Interworking of addressing in an internetwork
US20050013280A1
( en )
2003-07-14
2005-01-20
Buddhikot Milind M.
Method and system for mobility across heterogeneous address spaces
US7484091B2
( en )
2004-04-29
2009-01-27
International Business Machines Corporation
Method and system for providing a trusted platform module in a hypervisor environment
US20050251806A1
( en )
2004-05-10
2005-11-10
Auslander Marc A
Enhancement of real-time operating system functionality using a hypervisor
EP1701259A2
( en )
2005-03-11
2006-09-13
Microsoft Corporation
Systems and methods for multi-level intercept processing in a virtual machine environment
US8032899B2
( en )
2006-10-26
2011-10-04
International Business Machines Corporation
Providing policy-based operating system services in a hypervisor on a computing system
US7996836B1
( en )
2006-12-29
2011-08-09
Symantec Corporation
Using a hypervisor to provide computer security
US20080244553A1
( en )
2007-03-28
2008-10-02
Daryl Carvis Cromer
System and Method for Securely Updating Firmware Devices by Using a Hypervisor
US8127292B1
( en )
2007-06-22
2012-02-28
Parallels Holdings, Ltd.
Virtualization system with hypervisor embedded in bios or using extensible firmware interface
US8201161B2
( en )
2008-01-07
2012-06-12
Lenovo (Singapore) Pte. Ltd.
System and method to update device driver or firmware using a hypervisor environment without system shutdown
US8514868B2
( en )
2008-06-19
2013-08-20
Servicemesh, Inc.
Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US8239557B2
( en )
2008-06-25
2012-08-07
Red Hat, Inc.
Virtualization management using a centralized server
US20100070970A1
( en )
2008-09-15
2010-03-18
Vmware, Inc.
Policy-Based Hypervisor Configuration Management
US20170300354A1
( en )
2009-07-27
2017-10-19
Nicira, Inc.
Automated network configuration of virtual machines in a virtual lab environment
US20110075667A1
( en )
2009-09-30
2011-03-31
Alcatel-Lucent Usa Inc.
Layer 2 seamless site extension of enterprises in cloud computing
US20110131443A1
( en )
2009-11-30
2011-06-02
Dor Laor
Mechanism for Automatic Adjustment of Virtual Machine Storage
US8433802B2
( en )
2010-01-26
2013-04-30
International Business Machines Corporation
System and method for fair and economical resource partitioning using virtual hypervisor
US9979694B2
( en )
2010-09-30
2018-05-22
Amazon Technologies, Inc.
Managing communications between virtual computing nodes in a substrate network
EP2557498A1
( en )
2011-01-30
2013-02-13
Huawei Technologies Co., Ltd.
Updating method and computer system for hypervisor components
US9230016B2
( en )
2011-02-02
2016-01-05
Novell, Inc
User input auto-completion
US20140208413A1
( en )
2013-01-23
2014-07-24
Steve Grobman
System and method for an endpoint hardware assisted network firewall in a security environment
US9323552B1
( en )
2013-03-14
2016-04-26
Amazon Technologies, Inc.
Secure virtual machine memory allocation management via dedicated memory pools
US9485323B1
( en )
2013-09-23
2016-11-01
Amazon Technologies, Inc.
Managing pooled client-premise resources via provider-defined interfaces
US20150160884A1
( en )
2013-12-09
2015-06-11
Vmware, Inc.
Elastic temporary filesystem
Related documents
- TIDE: An FPGA quantum-control processor for deterministic adaptive execution with guarded runtime program revision#612596
- TIDE: An FPGA quantum-control processor for deterministic adaptive execution with guarded runtime program revision#611119
- QuMod: Parallel Quantum Job Scheduling on Modular QPUs using Circuit Cutting#10314
- Environmental records unlock universal quantum computation from thermal decoherence#1122505
- QROB: Quantifying Realization Overhead in Quantum Compilation via Reverse Construction#984673
Retrieved via Conceptio: every document is proof-bundled with source, license, and retrieval metadata.
Read the Docs → · View CLI source on GitHub · Conceptio Open Knowledge Archive