Quantum Hybrid Computing
The implementation of quantum hybrid calculations, which involve assigning functions to classical or quantum processing and transferring results, addresses the challenge of efficiently executing quantum circuits within classical processes, achieving optimized resource allocation and execution efficiency.
Patent Information
- Application Number
- JP2021500534
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-07-18
- Filing Date
- 2019-07-18
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2039-07-18
AI Technical Summary
Programming quantum computers to effectively utilize their strengths is challenging due to the need for efficient execution of quantum circuits within classical processes.
Implementing quantum hybrid calculations by receiving a hybrid program, assigning functions to either classical or quantum processing, scheduling the processing, transferring partial results between processors, and matching the results of the hybrid program execution.
This approach allows for efficient and safe implementation of quantum hybrid calculations, enabling effective allocation of computing resources between classical and quantum environments, thereby optimizing the execution of quantum circuits.
Smart Images

Figure 0007678747000001 
Figure 0007678747000002 
Figure 0007678747000003
Abstract
Description
[Technical field]
[0001] The embodiments described herein generally relate to implementing efficient execution of quantum circuits constructed by classical processes. [Background technology]
[0002] A quantum computer is a computational system that utilizes quantum mechanical phenomena such as superposition and entanglement to process data. Unlike digital computers, where data is encoded in one of two distinct states ("0" or "1"), in a quantum computer, data must be encoded into quantum bits (hereafter "qubits"). A single qubit can represent a "1", a "0", or any quantum superposition of the two qubit states. In general, a quantum computer with N qubits can simultaneously store up to 2 N A qubit can exist in any superposition of three different states, i.e. a pair of qubits can be in any quantum superposition of four states, and three qubits can be in any superposition of eight states.
[0003] Large-scale quantum computers can solve certain problems more quickly than digital computers (alternatively referred to herein as "classical computers"). In the operation of a quantum computer, a calculation can be initialized by setting qubits to a controlled initial state. These qubits are manipulated to achieve a predefined sequence of quantum logic gates that represents the problem to be solved, called a quantum algorithm. Quantum algorithms such as Shor's algorithm and Simon's algorithm run faster than any probabilistic classical algorithm. Quantum algorithms are often non-deterministic, since they provide the correct solution only with some known probability. Summary of the Invention [Problem to be solved by the invention]
[0004] Given the inherent advantages of quantum computers in solving certain problems, the challenge is to program them in a way that takes advantage of their strengths. [Means for solving the problem]
[0005] In one exemplary embodiment, a method for implementing quantum hybrid computing includes receiving a hybrid program, assigning each function corresponding to the hybrid program to either classical or quantum information processing, scheduling processing corresponding to each function, initiating execution of the hybrid program, transferring partial results of the functions between the classical processor and the quantum processor, and collating results of execution of the hybrid program.
[0006] In another exemplary embodiment, an apparatus for implementing quantum hybrid computing includes a receiver that receives a hybrid program, an arbiter that assigns each function to either classical or quantum information processing based on one or more criteria for each function, a scheduler that schedules processing of each function on both the classical and quantum processors, and a manager that transfers partial results of the functions between the classical and quantum processors and collates results of the processing.
[0007] Moreover, in another embodiment, a computer-readable medium stores instructions that, when executed, cause a digital computing processor to receive a hybrid program having one or more executable components written in a first language and one or more executable components written in a second language, assign the executable components written in the first language for execution in a first computing environment, assign the executable components written in the second language for execution in a second computing environment, schedule execution in the first computing environment against execution in the second computing environment, collate results of the scheduled execution, iteratively repeat the scheduled execution based on the collated results of a most recent iteration of execution, and terminate the iterative iteration of execution upon the occurrence of a predetermined milestone.
[0008] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.
[0009] In the following detailed description, embodiments are described by way of example only, since various changes and modifications will become apparent to those skilled in the art from the following detailed description. The use of the same reference numbers in different figures indicates similar or identical items. [Brief description of the drawings]
[0010] [Figure 1] 1 illustrates an exemplary system configuration in which quantum hybrid computing may be implemented, arranged in accordance with at least some embodiments described herein. [Diagram 2] 1 illustrates an exemplary configuration of a processor system in which quantum hybrid computing may be implemented, arranged in accordance with at least some embodiments described herein. [Diagram 3]1 illustrates an exemplary block diagram configuration of a processor, arranged in accordance with at least some embodiments described herein, to facilitate at least a portion of quantum hybrid computing. [Figure 4] 1 illustrates an exemplary process flow in which at least a portion of the classical / hybrid computation is implemented, arranged in accordance with at least some embodiments described herein. [Diagram 5] An exemplary computing embodiment is shown, in which any of the processes and sub-processes of quantum hybrid computing may be implemented as computer readable instructions stored on a computer readable medium. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] In the following detailed description, reference is made to the accompanying drawings, which form a part of this specification. In the drawings, similar symbols typically identify similar components unless the context dictates otherwise. Furthermore, unless otherwise noted, the description of each successive drawing may refer to features from one or more of the previous drawings to place the present exemplary embodiment in a clearer context and to provide a more substantial description. Nevertheless, the exemplary embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that aspects of the present disclosure, as generally described herein and illustrated in the drawings, may be arranged, substituted, combined, separated, and designed in a variety of different configurations, all of which are expressly contemplated herein.
[0012] Described herein are approaches, embodied in one or more of systems, apparatus, applications, programs, and methods, whereby quantum hybrid computing, including both classical and quantum computing, is implemented securely and efficiently, for example, by distributing computing among co-located computing devices in a heterogeneous computing environment.
[0013] As used herein, the following terms may be used in addition to their accepted meanings:
[0014] "Classical computing", "classical program", "digital computing", "digital program" or variations thereof may refer to computing / processing of data converted to binary numbers. Classical computing processors may include, but are not limited to, central processing units (CPUs), graphical processing units (GPUs), tensor processing units (TPUs), application specific integrated circuits (ASICs), field programmable gate arrays, etc., and non-limiting combinations thereof. Non-limiting examples thereof may include classical optimization functions that may be parallelized and executed on multi-core classical computers, classical computers with GPUs to perform parallel computations, etc.
[0015] "Quantum computing" or variations thereof can also refer to computing / processing of data encoded in qubits. Quantum computing utilizes atoms to perform high-level gating functions, producing results that are on the order of 10K faster than classical computing.
[0016] "Environment" may also refer to a computing environment in which there are components that can utilize utilities such as libraries, other programs, other hardware, etc., when executing a program. Thus, as used herein, it may refer to a classical computing environment, a quantum computing environment, etc.
[0017] A "hybrid program" may refer to a quantum program that is an iterative process programmed in a classical computing environment, at least some functions of which are intended for execution in a quantum computing environment, e.g., a quantum sandbox. Results of the executed functions corresponding to the hybrid program may be measured or verified in the classical computing environment, where the quantum program or iterative process is then updated or replaced. Such processes may be repeated iteratively on the order of hundreds of thousands of times until the process reaches a time- or process-based milestone.
[0018] "Circuit" may refer to the quantum functions contained in a hybrid program, since the processing of such functions is linear.
[0019] A "sandbox" may refer to a restricted environment in which certain functions are prohibited. In the present context, a sandbox may be used to isolate one running function from another, whether the running function is classical or quantum, especially when any of the running functions are received from a third party and their trust level has not been fully verified.
[0020] In accordance with the exemplary embodiments described herein, quantum computing includes performing an iterative process by which quantum circuits can be written into a classical computing environment for execution in the quantum computing environment. Non-limiting examples of such classical computing environments that may be used include desktop computers, laptop computers, mobile devices, and the like. Quantum circuits may be submitted to a quantum computing device over a network, e.g., the Internet, where they may be queued with other quantum circuits, e.g., in a manner similar to batch processing for mainframe computing devices. Queued quantum circuits may be executed in sequence.
[0021] The iterations or cumulative results of the computation of the quantum circuit may be received and collated either in the classical computing environment in which the quantum circuit was written or in another classical computing environment in which the execution of the quantum circuit is managed. In either classical computing environment, the quantum circuit may be updated or rewritten based on the results of the latest iteration or based on the results of the cumulative computations to date.
[0022] When submitting a quantum circuit written in a classical computing environment, for example, via the Internet for processing on a cloud-based quantum computing device, network latency and bandwidth consumption can slow down both the transmission of the circuit and its results. As a result, resource costs are expected to be large in such computing scenarios. This approach is problematic, for example, for optimization problems such as quantum chemistry, which require two-part algorithms that set up a quantum state via a quantum computer and then optimize the result on a classical computer. Not least because quantum optimization requires iterations on the order of tens or hundreds of thousands. In other words, the network-based exchange of the large amounts of data inherent to quantum computing can be considered prohibitive and slow for practitioners.
[0023] 1 illustrates an exemplary system configuration 100 in which quantum hybrid computing may be implemented, arranged in accordance with at least some embodiments described herein. As depicted, configuration 100 includes at least a network 104, a cloud-based infrastructure 105, servers 106A and 106B, classical processing units 115A-115M, quantum processing units 120A-120N, and a connector 126.
[0024] The network 104, to which one or more users may submit the programs 107 and / or 109 for execution, may refer to a network configured to at least support transmission of the programs from users or user entities to the cloud-based infrastructure 105. According to some examples, the network 104 may include the Internet to provide communication between multiple network terminals. Thus, the network 104 may support real-time communication data streams between user terminals, e.g., classical computing devices, and the cloud-based infrastructure 105.
[0025] Cloud-based infrastructure 105 may refer to a service provider's data center having multiple servers, including servers 106A and 106B, and may refer to computing devices, including classical computing devices CPUs 115A-115M and quantum computing devices 120A-120N. It should be noted that the computing devices may be implemented by a single or multiple machines. Additionally, cloud-based infrastructure 105 may be operated for a single organization. Non-limiting examples of such organizations that operate, manage, and / or host such infrastructure include, but are not limited to, Amazon®, Microsoft®, Google®, IBM®, etc.
[0026] Servers 106A and 106B may refer to two of a plurality of servers on the order of hundreds to thousands of servers hosted on a cloud-based infrastructure 105. These servers are configured to at least receive programs 107 and 109 over the network 104 or from a user entity. Servers 106A and 106B may be further configured to receive and / or store partial or complete results 108 and 110, respectively, of the execution of programs 107 and 109 and return such results to a user or user entity over the network 104. Neither server 106A nor 106B is limited to receiving only hybrid programs, classical programs, or quantum programs. Thus, unless otherwise stated herein, there should be no distinction between the types of programs that may be received at or transmitted from either server 106A, 106B. Furthermore, unless the context otherwise requires, hereinafter, reference to server 106 may be meant to refer to either of servers 106A and 106B without departing from the spirit or scope of the quantum hybrid computing embodiments described herein. It should also be noted that servers 106A and 106B may be implemented by a single or multiple machines, and programs 107 and 109 may be submitted to servers 106A and 106B via a single or multiple connections or channels. That is, according to at least one exemplary embodiment, servers 106A and 106B may be implemented as a single server and may perform at least all of the functions described herein as being ascribed to either server.
[0027] Program 107 may also refer to one or more programs received from a user or user entity over network 104 and / or stored by server 106. Program 107 may include one or more executable components or functions written in a first language intended for execution in a first computing environment and one or more executable components or functions written in a second language intended for execution in a second computing environment. The first language may be a classical computing programming language and the second language may be a quantum computing language, e.g., Python.
[0028] More specifically, programs 107 may refer to one or more programs received from a user or user entity over network 104 and / or stored by server 106. Programs 107 may include one or more classical computing programs and / or one or more hybrid programs 112. Classical computing programs may be written in classical programming languages and are not described herein.
[0029] A hybrid program 112 is typically written or programmed in a classical environment and may include one or more classical components or functions and one or more quantum circuits 125. The classical components or functions may be distinguished from quantum circuits based on characteristics inherently related to the respective computing environment, such as, but not limited to, any of the functions, languages, libraries, etc. For example, a program 107 may be written or programmed using a Python software development kit (SDK) and may include instructions to perform one or more quantum scientific calculations. Thus, the server 106A may identify a received program 107 as a hybrid program if the received program 107 includes classical computing components or functions and / or is written in a classical computing language and includes quantum computing functions and / or is written in a quantum computing language. The SDKs referenced herein are not limited to a particular quantum language.
[0030] Results 108 may also refer to iterative or cumulative results from the execution of one or more classical computing programs executed on one or more of CPUs 115A-115M. Additionally or alternatively, results 108 may include results 113 from the execution of hybrid program 112 with one or more of CPUs 115A-115M and one or more of QPUs 120A-120N. Additionally, results 113 may include iterative or cumulative results from the execution of hybrid program 112. Results 108 may be stored on server 106 and / or returned to a user or user entity via network 104.
[0031] Program 109 may refer to one or more programs received from a user or user entity over network 104 and / or stored by server 106. Program 109 may include at least one or more QPU circuits 117 written or programmed in a classical environment intended for execution in a quantum computing environment. As such, QPU circuits 117 included within program 109 may be written or programmed entirely in a quantum computing language or may include only quantum circuits.
[0032] Results 110 may refer to iterative or cumulative results from the execution of QPU circuitry 117 included in program 109 running on one or more of QPUs 120A-120N. Results 110 may be stored on server 106 and / or returned to a user or user entity via network 104.
[0033] Classical computing device CPUs 115A-115M may refer to one or more embodiments of a classical computing environment including a classical computer, processing unit, and / or even individual processors on which hybrid program 112 is at least managed and on which at least some of its results are measured or collated.
[0034] CPUs 115A-115M may receive hybrid program 112 into a hybrid job queue, which may be a memory or storage component or device included in or otherwise associated with one or more embodiments of CPU 115; manage the hybrid program, including assigning execution of one or more classical components or functions to any one or more of CPUs 115A-115M; assigning execution of one or more quantum circuits 125 to any one or more of QPUs 120A-120N; scheduling processing of the classical components or functions and circuits 125 on the assigned processing units; initiating execution of the classical components or functions and circuits 125; and collating iterative and / or cumulative results of hybrid program 112, including results 113 of each classical component or function and results 127 of the quantum circuits 125.
[0035] CPUs 115A-115M may iteratively manage the processing of hybrid program 112 on the order of hundreds of thousands of times until a processing and / or time milestone is reached. Common examples of such milestones may relate to a predetermined number of iterations, a time limit for iterative computing, a predetermined threshold difference between the results of successive iterations, etc.
[0036] Additionally, CPU 115M indicates that there is no limit to the number of CPUs in any embodiment of quantum hybrid computing, but unless the context otherwise requires, hereinafter may be referred to as CPU 115 without departing from the spirit or scope of the quantum hybrid computing embodiments described herein. Additionally, although reference is made herein to a CPU, in the context of quantum hybrid computing, embodiments of classical computing processors may include or alternatively include, but are not limited to, a central processing unit (CPU), a graphical processing unit (GPU), a tensor processing unit (TPU), and the like.
[0037] Quantum computing devices 120A-120N may refer to multiple embodiments of quantum computing environments, including quantum computers, processing devices, and / or even individual processors on which QPU circuit 117 and quantum circuit 125 may be executed. As previously mentioned, CPUs 115A-115M may manage the processing of hybrid program 112. In this regard, each quantum computing device 120A-120N has a classical computing interface for coordinating the processing on the respective quantum device.
[0038] Furthermore, QPU120N indicates that there is no limit to the number of QPUs in any embodiment of quantum hybrid computing, but unless the context requires otherwise, hereinafter it may be QPU120 without departing from the spirit or scope of the quantum hybrid computing embodiments described herein.
[0039] The connector 126 may connect various combinations of the CPU 115 and the QPU 120. The connector 126 may be embodied as a hardware connection or by a high-speed Ethernet connection of at least the order of 100 GB. Regardless, the embodiment of the connector 126 is to minimize the latency and / or lag between any of the CPU 115 and the QPU 120. Thus, in accordance with at least some embodiments of quantum hybrid computing, the CPU 115 and the QPU 120 may be physically co-located, i.e., in a data center corresponding to the cloud-based infrastructure 105, or may be physically connected by the connector 126 in a single structural unit, e.g., a housing, board, device.
[0040] Connector 126, however, may not be considered a simple connector, nor may it be considered a simple design choice. When switching between processing on CPU 115 and QPU 120, minimizing delays is paramount due to the short period during which coherence is maintained in the qubit system. Thus, much of hybrid program 112 runs as closely as possible to QPU 120. Also, due to the large amount of classical data likely to be generated by CPU 115 and QPU 120 in the course of executing hybrid program 112, the cost of shuttling information between them increases as the physical and systemic separation of the processors increases.
[0041] However, alternative embodiments may envisage CPU 115 and QPU 120 being substantially connected by connector 126, subject to development of techniques to minimize latency and / or lag resulting from significant data transfers and repetitive data transfers.
[0042] The number of servers 106, CPUs 115, and QPUs 115 hosted or otherwise associated with the cloud-based infrastructure 105 may vary from one embodiment to another without departing from the spirit or scope of the quantum hybrid computing described herein. Thus, the CPUs 115M and QPUs 120N may or may not be the same in number in any embodiment of the quantum hybrid computing.
[0043] 2 illustrates an exemplary configuration of a system 200 of processors in which quantum hybrid computing may be implemented, arranged in accordance with at least some embodiments described herein. As depicted, system 200 includes at least a CPU 115, a QPU 120, a connector 126, a result queue 229, a hybrid job queue 230, and a quantum circuit queue 235.
[0044] CPU 115 may also refer to one or more embodiments of a classical computing environment, including a classical computer, processing unit, and / or even an individual processor, as described herein with respect to Figure 1. As depicted, CPU 115 includes at least an operating system (OS) 205, a user program 210, a QPU API 215, and an execution sandbox 220.
[0045] OS 205 may also refer to a classical computing operating system designed, programmed, or otherwise configured to control classical computing software and hardware components. Thus, in accordance with at least some embodiments of quantum hybrid processing, OS 205 may be designed, programmed, or otherwise configured to receive hybrid program 112, assign execution of one or more classical components or functions to any one or more CPUs 115, schedule and / or prioritize processing of classical components or functions with circuits 125, assign one or more of quantum circuits 125 to any one or more of hybrid job queues 130-130N for eventual execution on QPU 120, initiate execution of hybrid program 112, and collate iterative and / or accumulated results of hybrid program 112.
[0046] Hybrid job queues 230A-230N may also refer to memory or storage components or devices included in or otherwise associated with one or more embodiments of CPU 115. Because quantum circuits are linear, quantum circuits included in hybrid program 112 may be queued, similar to batch processing. Thus, hybrid job queues 230A-230N may be designed, programmed, or otherwise configured to store quantum circuits 125 for scheduled or prioritized execution on one or more assigned embodiments of QPU 120.
[0047] User programs 210 may refer to programs designed, programmed, or otherwise configured to execute classical components or functions corresponding to hybrid programs 112. Results of such execution may be sent or submitted, iteratively or cumulatively, to one or more of result queues 229A-229N.
[0048] Execution sandbox 220 may utilize QPU API (application programming interface) 215 to send or submit quantum circuits 125 to an assigned one of QPUs 120 according to scheduling and prioritization established by OS 205. In this manner, execution sandbox 220 may be isolated in its interactions with QPU 120 as circuits 125 are sent or submitted and results 127 are received. Results 127 from the execution of circuits 125 may be sent or submitted to result queues 229A-N, either iteratively or cumulatively.
[0049] Execution sandbox 220 may also be designed, programmed, or otherwise configured to update or replace circuit 125 based on the results of an iteration of execution on QPU 120, and then send or submit the updated or new circuit to QPU 120 to continue the iterative process.
[0050] Furthermore, a separate instance of the execution sandbox 215 is utilized for each circuit 125, facilitating parallel execution of multiple circuits.
[0051] Such computing of the hybrid program 112 may continue iterative calculations on the order of hundreds of thousands of times until a processing and / or time milestone is reached. Non-limiting examples of such milestones may relate to a predetermined number of iterations, a time limit for the iterative computing, a predetermined threshold difference between the results of successive iterations, etc.
[0052] Result queues 229A-229N may be memory or storage components or devices included in or otherwise associated with one or more embodiments of CPU 115. Result queues 229A-229N may be designed, programmed, or otherwise configured to store iterative and cumulative results of execution of hybrid program 112, including execution of corresponding classical components or functions and quantum circuits.
[0053] Quantum circuits may be executed in isolation. Thus, if an embodiment of QPU 120 receives a QPU circuit 117 but is unable to execute the received circuit, the QPU circuit 117 may be assigned to one or more of circuit queues 235A-235N.
[0054] Circuit queues 235A-235N may refer to memory or storage components or devices included in or otherwise associated with one or more embodiments of QPU 120. Circuit queues 235A-235N may be designed, programmed, or otherwise configured to store QPU circuits 117 for scheduled or prioritized execution in one embodiment of QPU 120. QPU 120 may be blocked from circuit queues 235A-235N, i.e., unable to execute any of QPU circuits 117, when QPU 120 is needed to execute quantum operations for circuits 125 associated with hybrid program 112. Thus, QPU circuits 117 stored in any of circuit queues 235A-235N may be assigned to an embodiment of QPU 120 that is not assigned to any of circuits 125 corresponding to hybrid program 112.
[0055] 3 illustrates an exemplary block diagram configuration of a processor 300 for facilitating at least a portion of a quantum hybrid computation, arranged in accordance with at least some embodiments described herein. As depicted, the processor 300 may correspond to any one of the CPUs 115 described herein with respect to systems 100 and 200, and further includes at least a receiver 305, an arbiter 310, a scheduler 315, and a manager 320.
[0056] The receiver 305 may also refer to a component or module designed, programmed, or otherwise configured to receive at least a hybrid program from a user or user entity over a network, e.g., the Internet. A hybrid program may also refer to a quantum program or iterative process that is programmed in a classical computing environment and at least some of its functions are intended to be executed in a quantum computing environment.
[0057] Arbiter 310 may also refer to a component or module designed, programmed, or otherwise configured to assign execution of one or more classical components or functions corresponding to a received hybrid program to one or more classical processing devices, and to assign execution of one or more quantum circuits to any one or more quantum processing devices. Arbiter 310 may assign functions as referenced above based on one or more characteristics of the functions that are inherently related to either classical or quantum processing. Such characteristics may be known in the art and thus are not described herein. Furthermore, if a function is capable of being executed by multiple processors in either a classical or quantum computing environment, arbiter 310 may assign functions to respective processors based on heuristics and the characteristic performance profiles of the processors.
[0058] Scheduler 315 may refer to a component or module designed, programmed, or otherwise configured to schedule processing for classical components or functions and circuit processing assigned by arbiter 310. As part of the scheduling, scheduler 315 may prioritize the execution of each function in both classical and quantum computing environments. Scheduler 315 may prioritize the scheduling for optimization purposes and based on dependencies, i.e., parallelism, between functions.
[0059] Manager 320 may also refer to a component or module designed, programmed, or otherwise configured to manage the execution of a received hybrid program. For example, manager 320 may initiate execution of classical components or functions and quantum circuits corresponding to the hybrid program, transfer partial results of the execution of the functions between processors in a classical computing environment and a quantum computing environment in whichever direction is appropriate for execution, and collate iterative and / or accumulated results of the hybrid program for on the order of hundreds of thousands of iterations until a processing and / or time milestone is reached. Non-limiting examples of such milestones may relate to a predetermined number of iterations, a time limit for iterative computing, a predetermined threshold difference between the results of successive iterations, etc.
[0060] As part of managing the execution of hybrid program 112, manager 320 may be designed, programmed, or otherwise configured to execute instructions to switch processing from CPU 115 to QPU 120 or vice versa, e.g., to execute circuit 120 on a particular one of QPUs 120, according to instructions in the source code of hybrid program 112. Instructions to change processors may be used within either computing environment by any software libraries or SDKs that the respective environment exposes to hybrid application 120, or instructions may be programmatically inserted by the respective computing environment when it is determined that a more appropriate processor should be used, such as a command to switch to another device inserted by a compiler for a domain-specific language.
[0061] FIG. 4 illustrates an exemplary process flow 400 in which at least a portion of the hybrid computing is implemented, in accordance with at least some embodiments described herein. As depicted, the process flow 400 includes sub-processes performed by various components of the processor 300 included in the systems 100 and 200 hosted on the cloud-based infrastructure 105. However, the process flow 400 is not limited to such components, as obvious modifications may be made by rearranging two or more of the sub-processes described herein, removing at least one of the sub-processes, adding additional sub-processes, substituting components, or having different components take on the role of the sub-processes depending on other components in the following description. The process flow 400 may include various operations, functions, or actions as illustrated by one or more of blocks 405, 404, 410, 415, 420, 425, 430, 435, 440, 445, and / or 450. These various operations, functions, or actions may correspond to, for example, software, program code, or program instructions executable by the processor to cause a function to be performed. Processing may begin at block 405 .
[0062] At block 405 (Receive Program), the server 106 may receive the hybrid program from a user or user entity via the network 104. Processing may proceed to decision block 410.
[0063] In decision block 410 (Is it a hybrid program?), the server 106 may determine whether the received program is a hybrid program. This determination may be made based on various criteria, for example, the received program includes classical computing components or functions and / or is written in a classical computing language, and further includes quantum computing functions and / or is written in a quantum computing language. The server 106 may distinguish the classical computing components or functions from quantum circuits based on characteristics inherently related to any of the respective computing environments, such as, but not limited to, functions, languages, libraries, etc. For example, the program 107 may be written or programmed using the Python software development kit (SDK) and may include instructions to perform one or more quantum scientific calculations. Thus, the server 106 may determine that the received program 107 is a hybrid program according to examples described herein.
[0064] If the received program 107 is not a hybrid program (NO), but rather a classical computing program, i.e., if the server 106 detects that the received program 107 includes only classical computing components, processing may proceed to block 440. If the received program is a hybrid program (YES), processing may proceed to block 415.
[0065] In block 440 (run the job), the classical computing program may be executed on one or more embodiments of CPU 115, and the results may be collated in block 430.
[0066] If the received program is not a hybrid program (NO) but rather a quantum computing program, i.e., if the server 106 detects that the received program 109 contains only quantum circuits, processing may proceed to block 445.
[0067] In block 445 (Send QPU to Circuit), the quantum circuit may be sent directly to one of QPUs 120 for processing, or to one of circuit queues 235A-N to await processing, for execution in block 450. The results of such processing may be collated in block 430.
[0068] In block 415 (assign to appropriate processor), the arbiter 310 may assign execution of one or more classical components or functions to any one or more of the CPUs 115, and assign execution of one or more quantum circuits associated with the hybrid circuit to any one or more of the QPUs 120. Processing may proceed to block 420.
[0069] In block 420 (schedule processing), the scheduler 315 may schedule processing for the classical components or functions and quantum circuits associated with the hybrid circuit on the processing units assigned in block 415. The scheduling may be prioritization of processing based on any criteria that may be written into the hybrid program to optimize processing, facilitate parallelization, resource allocation, etc. between processes and / or circuits being executed. Processing may proceed to block 425.
[0070] In block 425 (begin processing), manager 320 may begin execution of classical components or functions and circuits associated with the hybrid program based on the scheduling or prioritization in block 410. Such execution may include sending the quantum circuit to one of QPUs 120 for processing or to one of circuit queues 235A-235N to await processing. Process flow 400 may proceed to block 430.
[0071] At block 430 (collate results), the manager 320 may collate the iterations and / or accumulated results of the hybrid program 112, including the results of each classical component or function and the results of the quantum circuit corresponding to the hybrid program. That is, in accordance with at least one known example of an iterative process, the initiated hybrid program includes executing classical code that generates a corresponding result to generate a quantum circuit. Multiple iterations of such a process are performed until completion. Processing may proceed to block 435.
[0072] At block 435 (manage), the manager 320 may further manage the processing of the hybrid program iteratively on the order of hundreds of thousands of times until a processing and / or time milestone is reached. Examples of such milestones may relate to a predetermined number of iterations, a time limit for iterative computing, a predetermined threshold difference between the results of successive iterations, etc. Thus, the management may further include updating or replacing the executed quantum circuit corresponding to the hybrid program based on either the iterative results of previous iterations or the cumulative results. Processing may proceed or terminate based on whether the appropriate milestone has been reached.
[0073] 5 illustrates an exemplary computing embodiment, in which any of the processes and sub-processes of quantum hybrid computing may be implemented as computer readable instructions stored on a computer readable medium. The computer readable instructions may be executed, for example, by a processor of a device having a network element and / or any other device corresponding thereto, as referenced herein, and may in particular be applied to the above-mentioned applications and / or programs corresponding to the systems 100 and 200 for quantum hybrid computing.
[0074] In a very basic configuration, a computing device 500 may typically include at least one processor 502, a system memory 504, one or more input components 506, one or more output components 508, a display component 510, a computer-readable medium 512, and a transceiver 514.
[0075] The processor 502 may refer to, for example, a microprocessor, a microcontroller, a digital signal processor, or any combination thereof.
[0076] Memory 504 may refer to, for example, volatile memory, non-volatile memory, or any combination thereof. Memory 504 may store therein operating system 205, applications, and / or program data. That is, because memory 504 may store executable instructions for implementing any of the functions or operations described above, memory 504 may also be considered a computer-readable medium.
[0077] Input component 506 may refer to an integrated or communicatively coupled keyboard, touch screen, or communication device. Alternatively, input component 506 may include a microphone configured to receive voice commands from a user of computing device 500 in cooperation with a voice recognition program that may be stored in memory 504. Additionally, if input component 506 is not integrated into computing device 500, it may be communicatively coupled via a short-range communication protocol, including but not limited to radio frequency or Bluetooth.
[0078] Output component 508 may refer to a component or module, internal to or removable from computing device 500, configured to output commands and data to an external device.
[0079] The display component 510 may refer to, for example, a solid-state display that may have touch input capabilities, i.e., the display component 510 may include functionality that may be shared with or replace the functionality of the input component 506.
[0080] The computer-readable medium 512 may refer to a separable machine-readable medium configured to store one or more programs that embody any of the functions or operations described above. That is, the computer-readable medium 512 may be received by or otherwise connected to a drive component of the computing device 500 and may store executable instructions for implementing any of the functions or operations described above. These instructions may be complementary to or otherwise independent of the instructions stored by the memory 504.
[0081] The transceiver 514 may refer to a network communication link for the computing device 500 configured as a wired network or a direct wired connection. Alternatively, the transceiver 514 may be configured as a wireless connection, such as radio frequency (RF), infrared, Bluetooth, and other wireless protocols.
[0082] From the foregoing, it will be understood that various embodiments of the present disclosure have been described herein for purposes of illustration, and that various modifications may be made without departing from the scope and spirit of the present disclosure. Accordingly, the various embodiments disclosed herein are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
Claims
1. receiving a program with a plurality of computing capabilities in a cloud-based infrastructure having a classical computing environment with one or more classical processors and a quantum computing environment with one or more quantum processors connected to the one or more classical processors by connectors; determining, based on the plurality of computing capabilities, whether the program is a classical computing program including only classical computing capabilities, a quantum computing program including only quantum computing capabilities, or a hybrid program including both classical and quantum computing capabilities; responsive to a determination that the program is a hybrid program, assigning respective classical computing functionality corresponding to the hybrid program written in a first language for execution in the classical computing environment and respective quantum computing functionality corresponding to the hybrid program written in a second language for execution in the quantum computing environment, where if the functionality is capable of being executed by multiple processors in either a classical computing environment or a quantum computing environment, the assigning step is based on heuristics and a characteristic performance profile of at least one of the one or more classical processors and at least one of the one or more quantum processors; scheduling processing of each of the classical computing functions and the quantum computing functions corresponding to the hybrid program; commencing execution of the hybrid program; transferring partial results between the one or more classical processors and the one or more quantum processors during execution of the hybrid program; collating iterative and / or cumulative results of said execution of said hybrid program; A method comprising:
2. 2. The method of claim 1, wherein the scheduling step includes prioritizing the respective computing functions for both classical and quantum information processing.
3. The method of claim 2 , wherein the scheduling step is based on data dependencies between the computing functions.
4. The method of claim 2 , wherein the initiating step is based on a result of the prioritization.
5. a receiver configured to receive a hybrid program having a plurality of computing capabilities written in a first language for execution in a classical computing environment having one or more classical processors and a second language for execution in a quantum computing environment having one or more quantum processors; an arbiter configured to assign each computing function to either the classical computing environment or the quantum computing environment based on a language in which the respective computing function is written, where if the function is capable of being executed by multiple processors in either the classical computing environment or the quantum computing environment, the arbiter is configured to assign each computing function based on heuristics and criteria including a characteristic performance profile of at least one of the one or more classical processors and at least one of the one or more quantum processors; a connector connecting the one or more classical processors to the one or more quantum processors; a scheduler configured to schedule processing of the respective computing functions on either the one or more classical processors or the one or more quantum processors assigned by the arbiter; transferring partial results of the scheduled operations between the one or more classical processors and the one or more quantum processors; Collating iterative and / or cumulative results of said processing on said one or more classical processors and said one or more quantum processors. Manager and An apparatus comprising:
6. The apparatus of claim 5 , wherein the classical computing environment includes one of a CPU process, a GPU process, or a TPU process.
7. A computer-readable medium that, when executed, causes a digital computing processor to: In a cloud-based infrastructure having a classical computing environment with one or more classical processors and a quantum computing environment with one or more quantum computing processors connected to the one or more classical processors by a connector, receiving a program with a plurality of computing capabilities; determining, based on the plurality of computing capabilities, whether the program is a classical computing program including only classical computing capabilities, a quantum computing program including only quantum computing capabilities, or a hybrid program including both classical computing capabilities written in a first language and quantum computing capabilities written in a second language; In response to a determination that the program is a hybrid program; and allocating the classical computing function written in a first language for execution in the classical computing environment including classical information processing logic, where if the function is capable of being executed by multiple processors in either a classical computing environment or a quantum computing environment, the allocating function is based on heuristics and a characteristic performance profile of at least one of the one or more classical processors and at least one of the one or more quantum processors; and allocating the quantum computing functionality written in a second language for execution in the quantum computing environment including quantum information processing logic. scheduling execution in the classical computing environment against execution in the quantum computing environment; - collating the repetitive and / or cumulative results of said scheduled executions; A computer-readable medium storing executable instructions for causing a computer to execute a program.
8. The computer-readable medium of claim 7 , wherein the first language is a digital computing language.
9. The computer-readable medium of claim 8 , wherein the classical computing environment includes one or more digital processors.
10. 10. The computer-readable medium of claim 9, wherein the allocation of the classical computing function written in the first language comprises assigning execution of the classical computing function written in the first language to a respective one of the one or more classical processors.
11. 11. The computer-readable medium of claim 10, wherein the assigned classical computing functions written in the first language are executed in parallel on multiple of the one or more classical processors.
12. The computer-readable medium of claim 7 , wherein the second language is a quantum computing language.
13. 13. The computer-readable medium of claim 12, wherein the allocation of the quantum computing functions written in the second language includes assigning execution of one or more of the quantum computing functions written in the second language to a respective one of the one or more quantum computing processors.
14. 14. The computer-readable medium of claim 13, wherein the assigned one or more quantum computing functions written in the second language are executed in parallel on multiple of the quantum computing processors.
Citation Information
Patent Citations
Quantum program conversion apparatus, its method and program, and recording medium
JP2006331249A
Quantum computer system, control method and program for quantum computer system
JP2013114366A
Method and system for increasing quantum computer processing speed using digital co-processor
US20080313430A1
Systems and methods for interacting with a quantum computing system
US20140337612A1
Methods and systems for quantum ready and quantum enabled computations
US20170357539A1