Centralized control of quantum program execution
The control hub system synchronizes controller devices with a central system to manage quantum program execution using small control messages and high-speed connections, addressing scalability challenges in centralized control architectures by achieving real-time control and expanding qubit capacity.
Patent Information
- Application Number
- JP2023571900
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-06-15
- Filing Date
- 2022-06-01
- Publication Date
- 2026-01-27
- Estimated Expiration
- 2042-06-01
AI Technical Summary
Centralized control architectures for quantum computers face challenges in efficiently distributing diverse program instructions to qubit devices in real time as the number of qubits increases, limiting scalability and requiring real-time data for complex circuit execution.
A control hub system that synchronizes multiple controller devices with a central system, generates small control messages with payload data for qubit devices, and uses high-speed, non-blocking point-to-point connections to manage quantum program execution, enabling real-time centralized control and scalability.
This approach allows efficient real-time control of quantum program execution, scaling quantum systems to over 10,000 qubits by reducing network bandwidth and processing time, and enabling synchronization across controller devices.
Smart Images

Figure 0007807466000001 
Figure 0007807466000002 
Figure 0007807466000003
Abstract
Description
[Technical Field]
[0001] One or more embodiments of the present disclosure relate to centralized control of quantum program execution. [Background technology]
[0002] Controlling the execution of program instructions on a quantum computer increases in complexity with the number of qubit devices that make up the quantum computer's quantum processor. Each qubit device may need to execute a different waveform to execute a desired quantum circuit. A common approach to controlling the execution of a quantum program is to have a centralized controller that issues instructions to per-qubit waveform units to instruct them which quantum instructions to execute.
[0003] However, typical centralized control approaches suffer from challenges arising from instruction issue rates and / or interconnection bandwidth. For example, typical centralized controller architectures cannot efficiently distribute a diverse set of program instructions to each qubit device in real time as the number of qubit devices in a quantum processor increases. This can make scalability in such architectures difficult to achieve. Furthermore, real-time data is desirable, if not required, to enable complex quantum circuits to be executed.
[0004] Therefore, improved techniques for centralized control of the execution of program instructions in a quantum computer may be desirable. Summary of the Invention
[0005] The following presents a summary to provide a basic understanding of one or more embodiments of the invention. This summary is not intended to identify key or critical elements, nor is it intended to delineate any scope of particular embodiments or any scope of the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description that is presented later.
[0006] In one embodiment, a system is provided. The system includes a processor executing computer-executable components stored in a memory. The computer-executable components include a synchronization component that causes multiple controller devices located remotely from the system to synchronize with each other and with the system. The computer-executable components also include an ingestion component that accesses measurement data resulting from one or more measurements on each qubit device. The computer-executable components further include a composition component that uses the measurement data to generate one or more control messages for each second controller device of the multiple controller devices. A first controller device of each second controller device controls the application of a signal to a first qubit device of each qubit device. By generating such control messages, the system has access to a small amount of information that can be provided to the controller device during runtime of a quantum program executed by the qubit device controlled by the controller device. As a result, the execution of the quantum program can be centrally and efficiently controlled in real time, which can facilitate scaling the number of qubit devices forming a quantum processor.
[0007] In addition, or in other embodiments, the computer-executable components may further include a messaging component that transmits a first of the one or more control messages to the first controller device via a high-speed, non-blocking, point-to-point connection. In further, or yet other, embodiments, the composition component generates a first message having at least one of first payload data defining an execution path for a branch instruction during execution of the quantum program at the first qubit device or second payload data defining operand data corresponding to one or more quantum operations within the execution path. Such a first message may then be provided to the controller device at runtime of the quantum program. Because the first message includes payload data for selecting an appropriate branch for the branch instruction, in stark contrast to typical approaches to centralized control, real-time centralized control of the execution of the quantum program may be efficiently achieved by embodiments of the present disclosure.
[0008] According to another embodiment, a computer-implemented method is provided. The computer-implemented method includes, by a system operatively coupled to a processor, causing multiple controller devices located remotely from the system to synchronize with each other and with the system. The computer-implemented method also includes, by the system, accessing measurement data resulting from one or more measurements on each qubit device. The computer-implemented method further includes, by the system, generating, using the measurement data, one or more control messages for each second controller device of the plurality of controller devices. A first controller device of each second controller device controls application of a signal to a first qubit device of each qubit device.
[0009] According to a further embodiment, a computer program product for controlling the execution of a quantum program is provided. The computer program product includes a computer-readable storage medium having program instructions embodied thereon, the program instructions being executable by the processor to cause multiple controller devices located remotely from the processor to synchronize with each other and with a computing system operatively coupled to the processor. The program instructions are also executable by the processor to cause the processor to access measurement data resulting from one or more measurements on each qubit device. The program instructions are also executable by the processor to cause the processor to use the measurement data to generate one or more control messages for a respective second controller device of the plurality of controller devices. A first controller device of each second controller device controls the application of a signal to a first qubit device of each qubit device.
[0010] According to one embodiment, a device is provided. The device includes a clock unit that receives a clocking signal from a computing system located remotely from the device, the clocking signal synchronizing the device with a plurality of second devices located remotely from the device. The device also includes a processor that executes computer-executable components stored in memory, where the computer-executable components include an ingestion component that receives data defining a quantum program from the computing system. The device controls application of the signal to a first qubit device of the plurality of qubit devices. The computer-executable components also include a control flow handling component that identifies quantum program measurement instructions during execution of the quantum program. The control flow handling component also directs the monitoring component to cause a measurement of at least one of a state of the first qubit device or a physical property of the first qubit device.
[0011] In addition, or in other embodiments, the computer-executable components may also include a reporting component that transmits measurement data resulting from the measurement to the computing system via a high-speed, non-blocking, point-to-point connection. In further, or still other, embodiments, the ingestion component receives, from the computing system, a control message having at least one of first payload data defining an execution path in response to a branch instruction or second payload data defining operand data corresponding to one or more quantum operations in the execution path. Such control messages may be received at runtime of the quantum program. Because the first control message includes payload data for selecting the appropriate branch for the branch instruction, in stark contrast to conventional approaches to centralized control, real-time centralized control of the execution of a quantum program may be efficiently achieved by embodiments of the present disclosure.
[0012] According to another embodiment, a computer-implemented method is provided. The computer-implemented method includes receiving, by a controller device having at least one processor, a clocking signal from a computing system located remotely relative to the controller device. The clocking signal synchronizes the device and a plurality of second devices located remotely relative to the device. The computer-implemented method also includes receiving, by the controller device, data defining a quantum program from the computing system. The controller device controls application of the signal to a first qubit device of a plurality of qubit devices executing the quantum program. The computer-implemented method further includes identifying, by the controller device, measurement instructions of the quantum program during execution of the quantum program. The computer-implemented method still further includes causing, by the controller device, a measurement of at least one of a state of the first qubit device or a physical property of the first qubit device. [Brief explanation of the drawings]
[0013] [Figure 1] FIG. 1 illustrates a non-limiting example of an operating environment for centralized control of quantum program execution, in accordance with one or more embodiments of the present disclosure. [Figure 2] FIG. 2 illustrates a non-limiting example of a schematic configuration of a control hub system, controller device, and qubit device included in the operating environment shown in FIG. 1 in accordance with one or more embodiments of the present disclosure. [Figure 3] FIG. 1 illustrates a non-limiting example of a control hub system for centralized control of quantum program execution, in accordance with one or more embodiments of the present disclosure. [Figure 4] FIG. 1 illustrates a non-limiting example of a control device for centralized control of quantum program execution, in accordance with one or more embodiments of the present disclosure. [Figure 5]1A illustrates a schematic, non-limiting example of a sequence of program instructions represented by a program control flow graph (CFG) that may be loaded onto a controller device in accordance with one or more embodiments of the present disclosure; and FIG. 1B illustrates another schematic, non-limiting example of a sequence of program instructions similarly represented by a program CFG that may be loaded onto a controller device in accordance with one or more embodiments of the present disclosure. [Figure 6] 5B is a diagram representing a non-limiting example of the program CFG shown in FIG. 5A, where nodes in the program CFG define operations involving operands that are based on measurement results in quantum hardware according to one or more embodiments of the present disclosure. [Figure 7] FIG. 1 illustrates a non-limiting example of a computing system for centralized control of quantum program execution, according to one or more embodiments described herein. [Figure 8] FIG. 1 illustrates a non-limiting example of a computing device for centralized control of quantum program execution, according to one or more embodiments described herein. [Figure 9] FIG. 1 illustrates a non-limiting example of a method for centralized control of quantum program execution, in accordance with one or more embodiments of the present disclosure. [Figure 10] FIG. 1 illustrates a non-limiting example of a method for controlled execution of a quantum program, in accordance with one or more embodiments of the present disclosure. [Figure 11] FIG. 1 is a block diagram of a non-limiting example of an operating environment in which one or more embodiments described herein may be implemented. [Figure 12] FIG. 1 is a block diagram of a non-limiting example of a cloud computing environment according to one or more embodiments described herein. [Figure 13] FIG. 1 is a block diagram of a non-limiting example of an abstraction model layer according to one or more embodiments described herein. DETAILED DESCRIPTION OF THE INVENTION
[0014] Embodiments of the present disclosure address the problem of centralized execution control of quantum programs in quantum computers. To this end, embodiments of the present disclosure can limit, in real time, the amount of data and the number of messages conveying data sent to controller devices associated with qubit devices included in a quantum processor of a quantum computer. More specifically, some embodiments of the present disclosure can include a control hub system for traditional control flow of program instructions constituting a quantum program. Prior to execution of a quantum program in a quantum computer, the control hub system can transmit the quantum program to each of multiple controller devices associated with multiple qubit devices forming the quantum processor. Thus, during execution of a quantum program, rather than transmitting a stream of data defining operations to be performed by the multiple qubit devices, the control hub system can transmit control messages with small amounts of payload data. In some cases, the size of the control messages can range from 16 bits to 64 bits. Each control message is formatted to have a header followed by a field containing the payload data. The control messages can define control information for traversing a program control flow graph (CFG) corresponding to the quantum program. That is, the control information can enable the selection of a branch instruction execution path, the execution of an operation within the selected execution path, or both. Additionally, control messages can be sent at the boundaries of the program CFG, resulting in fewer control messages being sent than in existing control platforms that send information (data or signaling) for each program instruction in a quantum program.
[0015] Different execution paths of control path execution can have different numbers of program instructions and therefore different execution times. Because quantum instructions are typically non-commutative, and because some instructions may require tight timing between sending and receiving units, embodiments of the present disclosure can enable multiple control devices to be kept synchronized with each other. To this end, the control hub system can provide a synchronization mechanism that relies on future actuation times (FATs). Here, this mechanism can cause each of the controller devices to suspend execution until they reach the same timeline point in the CFG before resuming execution.
[0016] Embodiments of the present disclosure may offer several advantages over conventional approaches to centralized control of quantum program execution. For example, by generating small control messages at runtime of a quantum program executed by a qubit device controlled by a controller device, embodiments of the present disclosure have access to small amounts of pertinent information that can be provided to the controller device at runtime. Small control messages may enable efficient use of network bandwidth and may also reduce processing time in devices receiving such messages. As a result, quantum program execution may be centrally and efficiently controlled in real time, which may enable scaling to much larger quantum systems than previously possible. For example, while existing quantum systems can scale to approximately tens of qubits, embodiments of the present disclosure may scale quantum systems to over 10,000 qubits.
[0017] Furthermore, control messages can not only be generated at runtime, but can also be provided to a controller device at runtime. Thus, in stark contrast to conventional approaches to centralized control of quantum program execution, a controller device of the present disclosure that receives such control messages can have access to the payload in order to select the appropriate branch and perform operations within the branch. Thus, real-time centralized control of quantum program execution can be efficiently achieved by embodiments of the present disclosure.
[0018] It should be noted that some embodiments of the present disclosure are described with reference to qubit devices and quantum circuits for illustrative purposes only. However, the present disclosure is not limited in that respect. Indeed, the principles of the present disclosure may be applied to quantum programs that rely on other types of representations of quantum operations, and to any type of quantum device (such as a qubit device or boson system) utilized in the physical implementation of a quantum computer.
[0019] Referring to the drawings, FIG. 1 illustrates a non-limiting example of an operating environment 100 for centralized control of the execution of a quantum program 104 in accordance with one or more embodiments of the present disclosure. The quantum program 104 may define one or several algorithms. In some cases, the quantum program 104 may include one or several quantum circuits, where the quantum circuits may include multiple sequences of operations that at least partially define a quantum algorithm. Additionally, or in other cases, the quantum program 104 may include one or several program schedules, where the program schedule may include multiple sequences of operations that at least partially define a quantum algorithm. In addition, the program schedule may define both time points and waveforms, where specific waveforms defined in the program schedule may be applied at specific time points defined in the schedule. Without intending to be bound by theory or modeling, a sequence refers to an ordered list of quantum operations that occur sequentially in a channel input to noisy quantum hardware. Thus, the quantum program 104 may include one or several sequences. A sequence, represented as a program schedule, may be configured to perform circuit operations. Conversely, circuit operations can have program-schedule definitions for operating in quantum devices.
[0020] Regardless of its particular configuration, quantum program 104 includes program instructions that can be executed sequentially. The program instructions define a quantum circuit and / or schedule, and each program instruction that makes up quantum program 104 can be referred to as a quantum operation.
[0021] The operating environment 100 includes a control hub system 110 that can hold a quantum program 104 in one or more memory devices 112 (referred to as memory 112). The control hub system 110 can control the execution of the quantum program 104. To that end, the control hub system 110 is operatively coupled to a plurality of controller devices 140 that are remotely located relative to the control hub system 110. A communications network 120 can operatively couple the control hub system 110 and the plurality of controller devices 140. The communications network 120 enables the formation of high-speed (e.g., on the order of Gbps), non-blocking, point-to-point connections between the control hub system 110 and each of the plurality of controller devices 140. That is, the communications network 120 may operatively couple the control hub system 110 to a first controller device of the plurality of controller devices 140 via a first high-speed, non-blocking, point-to-point connection, and may operatively couple the control hub system 110 to a second controller device of the plurality of controller devices 140 via a second high-speed, non-blocking, point-to-point connection. However, the present disclosure is not limited to communications network 120 having a topology providing point-to-point connections. Other network topologies may be contemplated. For example, in some embodiments, the communications network 120 may operatively couple the control hub system 110 and the controller devices 140 according to a ring network, a star network, or a similar network. Furthermore, in some cases, the scalability of the centralized control of the embodiments described herein may be improved when the communications network 120 lacks full connectivity between the control hub system 110 and the controller devices 140 in a single hop.In an exemplary embodiment, communication network 120 can functionally couple control hub system 110 and controller devices 140 according to hypercube connectivity, where each of control hub system 110 and controller devices 140 is connected to a defined number of neighbors in the hypercube, and control messages can reach the intended controller device in a small number of hops across the hypercube.
[0022] The controller devices 140 are also operatively coupled to the qubit devices 160 that comprise the quantum hardware 150. The quantum devices 160 may be arranged in a particular layout. The qubit devices included in the qubit devices 160 may be one of several types of solid-state devices. By way of example only, the qubit devices may be Josephson junction devices, semiconductor quantum dots, or defects in semiconductor materials (such as vacancies in Si and Ge). In one example, each of the qubit devices 160 may be embodied in a transmon. In another embodiment, the qubit device may include an atomic qubit assembled in an ion trap. For example, the atomic qubit may be embodied in a calcium ion, an ytterbium ion, or similar ion.
[0023] A plurality of links 170 operatively couple the plurality of controller devices 140 to the plurality of qubit devices 160. In some embodiments, the plurality of links 170 may include solid-state links, such as microwave resonator devices or microwave transmission lines, or a combination of both. At least some of the plurality of links 170 may enable transmission of signaling and / or data from the controller device to the qubit devices. Such links or other links may enable reception of signaling and / or data from the qubit devices at the controller device. In some cases, at least some of the plurality of links 170 may enable exchange of signaling and / or data between the controller device and the qubit devices. In other words, the plurality of links 170 may enable controller devices with different capabilities, e.g., transmit-only, receive-only, and transmit-receive, to interact with the quantum devices.
[0024] At least some of the plurality of controller devices 140 may control the application of signals to the plurality of qubit devices 160 using functional couplings provided by the plurality of links 170. Such signals may correspond to quantum operations defined by program instructions of the quantum program 104. That is, at least some of the controller devices 140 may execute the quantum program 104. For example, a particular signal may correspond to a particular gate (or unitary) defined to act on one or more particular qubit devices of the plurality of qubit devices 160. In some embodiments, a first controller device of the plurality of controller devices 140 may control the application of a signal to a first qubit device of the plurality of qubit devices 160, a second controller device of the plurality of controller devices 140 may control the application of a signal to a second qubit device of the plurality of qubit devices 160, and so on.
[0025] For illustrative purposes, FIG. 2 presents a schematic, non-limiting example configuration 200 of control hub system 110, multiple controller devices 140, and multiple qubit devices 160 in accordance with one or more embodiments of the present disclosure. Configuration 200 illustrates functional coupling between control hub system 110 and multiple controller devices 140, and between multiple controller devices 140 and qubit devices 160. Multiple controller devices 140 may include, for example, a first controller device 210(1), a second controller device 210(2), and other controller devices up to an Nth controller device 210(N), where N is a natural number greater than 1. Control hub system 110 may be functionally coupled to controller devices 210(K) via high-speed, non-blocking, point-to-point connections 204(K), where K=1, 2, . . . , N. In particular, control hub system 110 can be operatively coupled to controller device 210(1) via a first high-speed, non-blocking point-to-point connection 204(1), and control hub system 110 can be operatively coupled to controller device 210(2) via a second high-speed, non-blocking point-to-point connection 204(2), ...and controller hub system 110 can be operatively coupled to controller device 210(N) via a high-speed, non-blocking point-to-point connection 204(N). High-speed, non-blocking point-to-point connection 204(K) embodies the hub-controller message path.
[0026] As shown in FIG. 2 , the plurality of qubit devices 160 may include, for example, a first qubit device 220(1), a second qubit device 220(2), and other qubit devices up to an Nth qubit device 220(N). In the exemplary configuration 200, each control device 210(K) is operatively coupled to a qubit device 220(K) by a bidirectional link 215(K) (a link that can provide information upstream and downstream). Note that embodiments of the present disclosure are not limited to such one-to-one couplings and / or bidirectional links 215(1) through 215(N). In some embodiments, two or more qubit devices of qubit devices 160 may be operatively coupled to a single controller device of the plurality of controller devices 140. In still other embodiments, combinations of different types of functional couplings may be implemented, where some of controller devices 140 and some of qubit devices 160 may be arranged in a one-to-one configuration, and some other of controller devices 140 and some other of qubit devices 160 may be arranged in a one-to-many configuration. In still other embodiments, a group of several of controller devices 140 may be functionally coupled to a single qubit device of qubit devices 160. By coupling several controller devices to a single qubit device, for example, stimuli of different characteristics may be applied to the single qubit device. Such stimuli may include, in some cases, AC-coupled RF pulses and DC-coupled flux pulses.
[0027] Using the high-speed, non-blocking, point-to-point connections provided by the communications network 120, messages can be sent from the control hub system 110 to multiple controller devices 140 as part of the centralized control of the execution of the quantum program 104. As shown in Figure 1, the messages can include initialization messages 132 and control messages 134.
[0028] The control hub system 110 may send an initialization message 132 to configure the controller devices 140 in an initial control state prior to execution of the quantum program 104. In that state, each of the multiple controller devices 140 may hold a copy of the quantum program 104 in one or more memory devices 142. Additionally, the clock units 144 of each of the multiple controller devices 140 may be synchronized with each other and with the clock unit 114 of the control hub system 110. Accordingly, the control hub system 110 may send a first initialization message 132 carrying payload data defining the quantum program 104 to each of the multiple controller devices 140.
[0029] As described herein, the first initialization message 132 can be transmitted over each high-speed, non-blocking, point-to-point connection. In some cases, rather than transmitting the first initialization message 132 through each hub-controller message path, the control hub system 110 can optionally transmit the first initialization message 132 to multiple controller devices 140 over a separate, higher-bandwidth interface 124 (such as an Ethernet interface). Regardless of the type of connectivity relied upon to transmit the first initialization message 132, in some embodiments, as shown in FIG. 3, the control hub system 110 can include a compilation component 330 that can transmit the first initialization message 132 to each of the controller devices 140. Also shown in FIG. 3, the control hub system 110 can also include other components, such as one or more processors 360 and memories 112. The components, processor 360 and memory 112, can be electrically, optically, or communicatively coupled to each other, or a combination thereof. In addition, or in further embodiments, as shown in Figure 4, at least one of the controller devices 140 may include an ingestion component 410 that can receive data defining the quantum program 104. Also shown in Figure 4, a controller device 400 representing one or more of the controller devices 140 may also include, among other components, one or more processors 460 and memory 142. The components, processor 460 and memory 142 may be electrically, optically, or communicatively coupled to one another, or a combination thereof.
[0030] The control hub system 110 can also send a second initialization message 132 to each of the multiple controller devices 140 to synchronize the respective clock units 144. Each of the second initialization messages 132 can instruct the respective controller device 140 to start the clock unit 144 integrated therein (or in some cases, functionally coupled thereto). The control hub system 110 can send the second initialization message 132 upon starting the clock unit 114 of the control hub system 110. Thus, the control hub system 110 and the multiple controller devices 140 can be synchronized with each other.
[0031] To synchronize these clock units, in some embodiments, the control hub system 110 can include a synchronization component 310 ( FIG. 3 ) that can cause the multiple controller devices 140 to synchronize with each other and with the control hub system 110. In that regard, the synchronization component 310 can start the clock units 112 and instruct the multiple controller devices 140 to start their respective clock units 144. In some embodiments, the clock units 112 can be connected to each clock unit 144 by appropriate wired links and adapter interfaces integrated into each of the controller devices 140. In response to the synchronization component 310 starting the clock units 112, each clock unit 144 can receive a clocking signal that triggers the clock unit 144 to implement timing signals for each of the controller devices 140.
[0032] The control message 134 can direct the execution flow of the quantum program 104. In one aspect, the control hub system 110 can generate an initial control message for the control message 134. The initial control message can instruct the controller device 140 to begin execution of the quantum program 104 at the multiple qubit devices 160. To this end, the initial control message can include instructions to that effect. In some cases, because the clock units 144 of each of the multiple controller devices 140 are synchronized, the initial control message can also include payload data defining a specific time (such as a defined delay Δt) to begin execution of the quantum program. The control hub system 110 can then transmit the initial control message to the controller device 140. In some embodiments, as shown in FIG. 3 , the control hub system 110 can include a composition component 320 that can generate an initial control message to begin execution of the quantum program at the multiple qubit devices 160. Additionally, the control hub system 110 can also include a messaging component 340 that can transmit the initial control message to the multiple controller devices 140. In particular, the messaging component 340 may send an initial control message to a first controller device of the plurality of controller devices 140 over a first high-speed, non-blocking point-to-point connection, and may also send the initial control message to a second controller device of the plurality of controller devices 140 over another high-speed, non-blocking point-to-point connection.
[0033] In response to receiving the initial control message, each of the controller devices 140 that received the initial control message can begin executing the quantum program 104. To that end, in some embodiments, as shown in Figure 4, each of these controller devices can include one or more processors 460 that can cause a waveform generator 450 to apply one or more waveforms to the qubit device, where the waveforms applied are specified by the quantum circuit in the quantum program. The waveform generator 450 can be embodied, for example, in an arbitrary waveform generator (AWG) that outputs a voltage signal according to a defined waveform.
[0034] Because the quantum program 104 has a defined control flow structure and each controller device executes the same quantum program 104, each controller device can follow the same path through the global program CFG. In some cases, the quantum program 104 includes multiple branch instructions, where at least one of the branch instructions can have a conditional execution path (or branch). Whether a particular conditional execution path is taken, e.g., whether an instruction in that branch is executed, can depend on a runtime value. The runtime value can be generated, for example, by a qubit measurement, by a runtime regular calculation, or by a combination of both. The qubit measurement can be initially localized to a particular controller device. Upon or after the measurement is completed, the particular controller device can transmit measurement data resulting from the qubit measurement to the control hub system 110. A measurement instruction included in the quantum program 104 can cause one or several qubit measurements. A quantum program can include multiple measurement instructions.
[0035] In some embodiments, as shown in FIG. 4 , at least one of the controller devices 140 can include a monitoring component 430 that can trigger measurements of the state of a qubit device operatively coupled to the monitoring component 430. Such measurements can probe one or more observables of the qubit device. Additionally or alternatively, the monitoring component 430 can trigger measurements of temperature. The observed temperature can cause the controller device to throttle execution of new program instructions in the quantum program 104 when one or more chipsets in the cryostat containing the qubit device 160 are operating at temperatures that may stress the cooling capacity of the cryostat. In addition to temperature, in some cases, the monitoring component 430 can also trigger measurements of other physical properties of the qubit device or its operating environment. In one exemplary embodiment, the monitoring component 430 can probe voltage rails or currents or both. Measurement data resulting from the voltage rail probes can be used to maintain flux control pulses within specifications. The resulting measurement data from the probing current can be used to control heating and cooling, and perhaps throttle high-bandwidth paths within the cryostat chipset for loading test and / or unloading test case data. In addition, or in another exemplary embodiment, the monitoring component 430 can detect the transition of the quantum system from a 0-1 qubit manifold. In addition, or in yet another exemplary embodiment, the monitoring component 430 can detect the loss of a qubit (such as an ultracold atom in an optical lattice). To that extent, in such an embodiment, the monitoring component 430 can include a charge-coupled device (CCD) camera.Additionally, at least one of the controller devices 140 may include a reporting component 440 that may transmit measurement data resulting from the measurements to the control hub system 110. As shown in FIG. 3, in some embodiments, an ingestion component 350 may receive the measurement data.
[0036] More particularly, a controller device among the controller devices 140 may identify measurement instructions for a quantum program 104 at runtime. The measurement instructions may be identified by resolving instructions of the quantum program 104 within a thread of execution of the quantum program 104. To that end, in some embodiments, at least one of the controller devices 140 may include a control flow handling component 420 (FIG. 4) that resolves instructions and determines that the instructions are measurement instructions.
[0037] In response to identifying the measurement instruction, the controller device can cause a measurement of the state of a qubit device controlled by the controller device. To that end, in some embodiments, control flow handling component 420 can instruct monitoring component 430 to measure the state of the qubit device, other physical properties of the qubit device in its environment, or both. Control flow handling component 420 can send signaling to monitoring component 430 specifying the type of measurement to be performed. The controller device can then send measurement data resulting from the measurement to control hub system 110. By way of example, and referring to FIG. 2 , the controller device can be embodied in controller device 210(2). During execution of quantum program 104, controller device 210(2) can determine that an instruction fetched for execution is a measurement instruction. In response to such a determination, controller device 210(2) can cause a measurement of the state of qubit device 220(2). Controller device 210(2) can transmit measurement data 206 resulting from the measurement to control hub system 110. In some cases, a second controller device can also cause a measurement of the state of another qubit device. For example, in addition to controller device 210(2), controller device 210(N) can cause a measurement of qubit device 220(N) in response to determining that the instruction fetched for execution is a measurement instruction. Controller device 210(N) can then transmit measurement data 208 resulting from the measurement to control hub system 110.
[0038] With further reference to FIG. 1 , the control hub system 110 can use conventional computing techniques to generate new runtime values using measurement data 136 received from one of the controller devices 140 in response to a measurement instruction. In some cases, the runtime values generated using the measurement data define an execution path for a branch instruction. The control hub system 110 can generate a control message having payload data that defines the execution path. The control hub system 110 can also send a control message, for example, as one of the control messages 134, to each of the controller devices 140. As described above, the control message can be transmitted to the controller devices 140 via their respective high-speed, non-blocking, point-to-point connections. In some embodiments, the composition component 320 ( FIG. 3 ) can generate such a control message, and the messaging component 340 ( FIG. 3 ) can transmit the control message to the control device that provided the measurement data.
[0039] Passing such control messages to each of the controller devices 140 can enable the controller device 140 to determine at runtime which conditional execution path of a branch instruction will be taken. Because an instruction stream containing all possible branch instructions is loaded into the controller device 140 prior to execution, there is no need to transmit a long list of program instructions to execute. Such a long list can contain thousands of program instructions, or even millions of instructions in some cases. What is transmitted is a small control message containing information for selecting an execution path in response to a branch instruction. Thus, network bandwidth and processor cycle usage can be reduced compared to existing approaches to centralized control of quantum program execution.
[0040] Data that enables determining an execution path in response to a branch instruction can be referred to as branch selection data. Branch selection data for a branch instruction can be received prior to execution of the branch instruction. In these cases, the controller device that receives the branch selection data in the respective control messages (e.g., received in at least some of control messages 134) can retain the received branch selection data in memory 142. In other cases, because control hub system 110 can synchronize with multiple controller devices 140 and access the sequence of program instructions in quantum program 104, control hub system 110 can send a control message including branch selection data in response to fetching a branch instruction. Thus, a controller device among controller devices 140 can receive a control message including branch selection data in response to identifying a branch instruction in quantum program 104 at runtime. The controller device can identify the branch instruction by resolving instructions of quantum program 104 within the execution thread of quantum program 104. To that end, in some embodiments, control flow handling component 420 (FIG. 4) can resolve the fetched instruction and determine that the instruction is a branch instruction.
[0041] Merely by way of example, FIG. 5(A) depicts a schematic, non-limiting example of a sequence of program instructions represented by a program control flow graph (CFG) 500 that may be loaded into each of the controller devices 140 (FIG. 1) in accordance with one or more embodiments of the present disclosure. The program CFG 500 includes a plurality of nodes, each represented by a circle labeled with a number. Each node 510(J), where J=1, 2, 3, 4, 5, 6, 7, represents a selection of a quantum circuit with no control flow, except perhaps in the case of a terminal branch instruction with no associated branch. Thus, a section may be represented as a linear sub-CFG. Each of the controller devices 140 may sequentially execute a first quantum circuit represented by node 510(1) and a second quantum circuit represented by node 510(2). After executing node 510(2), a branch instruction in the sequence of program instructions can use branch selection data in a control message from control hub system 110, or in some cases, controller device memory 142, to determine whether node 510(3) or node 510(4) is to be executed next. Thus, based on the branch selection data at node 510(2), one program execution can take an execution path that includes node 510(3) and node 510(4), and another program execution can take an execution path that includes node 510(4).
[0042] In order for the execution of quantum program 104 to remain synchronized across multiple controller devices 140, it is necessary for each of the multiple controller devices 140 to synchronously continue execution of the applicable node (e.g., node 510(6)) after completing execution of the taken execution path, even if control messages from control hub system 110 containing branch selection data arrive at the controller devices 140 at different times. In that regard, to maintain synchronization in the execution of quantum program 104, embodiments of the present disclosure utilize a future operating time t FATWithout intending to be constrained by the modeling, the control hub system 110 may be configured to calculate t with a worst-case propagation delay δτ through the communication network 120 that operatively couples the control hub system 110 and the controller device 140. FAT can be determined.
[0043] In particular, t FAT may be equal to the current time t plus δτ. The clock units 144 of each of the controller devices 140 are synchronized so that the current time t is the same for each of the controller devices 140. In some embodiments, the control hub system 110 compiles t using the compilation component 330 (FIG. 3). FAT To do so, the compilation component 310 can access propagation delay data that identifies various propagation delays for communications between the control hub system 110 and the controller devices 140. The propagation delay data can be maintained, for example, in a delay table 364. The propagation delay data can be generated prior to execution of the quantum program 104. For example, the control hub system 110 can generate the propagation delay data by, for example, sending pilot messages to each of the controller devices 140 via the synchronization component 310 after these devices synchronize with each other and with the control hub system 110. The control hub system 110 can monitor, via the synchronization component, delays in receiving responses to these pilot messages from, for example, the controller devices, and can record the delay data in the delay table 364. FAT In addition to determining t FAT Payload data indicating the branch selection data may be added to the control message containing the branch selection data.
[0044] Thus, continuing with reference to the exemplary program CFG 500, after node 510(2) is executed, the control hub system 110 will determine whether each local clock unit is t FAT A delay instruction may be inserted into the instruction stream corresponding to the quantum program 104 to suspend execution at each of the controller devices 140 until the FAT matches. The delay instruction may be generically represented by "wait until current time = FAT." As the quantum program 104 executes serially at each of the controller devices 140, the control hub system 110 may insert a delay instruction by sending a control message (e.g., one of the control messages 134) that includes payload data defining the delay instruction, thereby delaying further execution until the FAT can ensure that each controller device can proceed synchronously.
[0045] Using a FAT can provide additional efficiency when execution paths through a program CFG have different execution durations, allowing for resynchronization when program CFG paths recombine. For example, in Figure 5(A), one program execution may follow the path 1-2-3-5-6-7, while another program execution may follow the path 1-2-4-6-7, depending on conditional information (e.g., measurement data) received at node 510(2). If the execution times of the respective quantum circuits for nodes 510(3) and 510(5) differ from the execution time for the quantum circuit corresponding to node 510(4), execution of quantum program 104 may reach node 510(6) at different times. For example, if each node in a branch has equal execution time, a conditional execution path that includes node 510(4) (represented as the R-branch in FIG. 5(A)) can execute faster than another conditional execution path that includes node 510(3) and node 510(5) (represented as the L-branch in FIG. 5(A)). Furthermore, it is possible for one or more of the controller devices 140 to take no local action for either branch. Such control devices can be referred to as spectator controllers. In a situation where one or more spectator controllers exist for a section of CFG 500 with branches that merge, as shown in FIG. 5(A) where the conditional execution paths merge at node 510(6), nodes 510(3), 510(4), and 510(5) can be removed from the quantum program 104 loaded into these spectator controllers and replaced with a synchronization instruction 550 immediately preceding node 510(6), as shown in FIG. 5(B).
[0046] In addition to generating runtime values that define branches to take, in some cases, control hub system 110 may calculate other runtime values that can conventionally be used as operands or other types of instruction data during the execution of quantum program 104. Such runtime values may also be generated in response to measurements received from one or more controller devices (e.g., controller device 210(2) or controller device 210(N) or both). Control hub system 110 may generate control messages that include payload data that defines operands or includes another type of instruction data. That type of control message may be included in control message 132 and may be referred to as an “instruction data message.”
[0047] Command-data messages can be used in many scenarios. In one exemplary scenario, a quantum circuit relies on data that is constructed at runtime. An example could be an iterative phase estimation quantum circuit where each iteration involves a rotation Rz(θ), where the rotation angle θ is determined at runtime by qubit measurements in the previous iteration. In such a case, sections of the quantum circuit can be represented by instructions with operands that reference data that can be received from the control hub system 110.
[0048] As an illustration of the use of command-data messages in the above example scenario, Figure 6 represents a non-limiting example of the program CFG 500 shown in Figure 5, where node 510(4) defines an operation including an operand based on the result of a qubit measurement. The operation is a rotation Rz of a defined quantity θ·n, where θ represents the angle and the coefficient n is defined by the measurement data.
[0049] As shown in FIG. 6 , the control hub system 110 can receive measurement data resulting from qubit measurements. The measurement data can include first measurement data 610(1), second measurement data 610(2), and third measurement data 610(3). Such first data, second data, and third data can be represented by M1, M2, and M3, respectively, and can indicate the respective states of the first qubit device, the second qubit device, and the third qubit device. Thus, M1 can be equal to “0” or “1,” M2 can also be equal to “0” or “1,” and M3 can also be equal to “0” or “1.” As described above, the control hub system 110 can receive the measurement data from one or more controller devices of the control device 140. As also described above, in some embodiments, the control hub system 110 can receive the measurement data via the ingestion component 350.
[0050] As part of the execution of the quantum program 104, the control hub system 110 can generate a control flow outcome using at least one of M1, M2, or M3. In the example shown in FIG. 6, the exemplary program instruction 610 specifies that if M1 has a value of zero, then a rotation Rz should be performed (branch right). When a rotation is performed, the respective values of M2 and M3 can determine the amount of rotation by determining a coefficient n. To that end, in the exemplary program instruction 610, M2 and M3 define a 2-bit binary field represented by M2M3. Thus, as shown in FIG. 6, the amount of rotation can be determined by four values: 0b00, 0b01, 0b10, and 0b11. The variable represented by "branch" can have one of two values (e.g., L or R), each of which specifies the execution path to be taken depending on the value of M1. The control hub system 110 can generate an instruction-data message 620 that can include payload data defining the "branch" variable. That is, the payload data can configure the branch variable to one of “L” or “R,” for example. The command-data message 620 can also include second payload data defining an operand specifying a coefficient n. This coefficient defines the rotation amount θ·n. The control hub system 110 can then send the command-data message 620 to the controller device 140. At node 2 in the program, the CFG 500 uses the “branch” variable information to determine whether execution path L or execution path R is to be executed next. Thus, when the command-data message 620 indicates that the branch variable is equal to R, the controller device executing node 2 can determine that execution path R, which includes node 4, is to be taken and executed next. At node 4, the controller device can then use the second payload data defining the operand to determine the degree of rotation Rz to perform.
[0051] 7 is a block diagram of a non-limiting example of a control hub system 110 for centralized control of quantum program execution according to one or more embodiments described herein. As shown in FIG. 7, the control hub system 120 may include one or more processors 710, one or more memory devices 730 (referred to as memory 730), and a clock unit 114. In some embodiments, the processor 710 may be located in a single computing device (e.g., a blade server device or another type of server device). In other embodiments, the processor 710 may be distributed across two or more computing devices (e.g., a multi-blade server device or other type of server device).
[0052] The processor 710 can be operatively coupled to the memory 730, the clock unit 114, and the I / O interface 740, for example, via one or several communication interfaces 720. The communication interface 720 can be suitable for the particular configuration (localized or distributed) of the processor 710. In some embodiments, the communication interface 720 can include one or multiple bus architectures, such as an Ethernet-based industrial bus, a Controller Area Network (CAN) bus, Modbus, or other types of fieldbus architectures. Additionally, or in other embodiments, the communication interface can include a wireless network, a wired network, or both, each with its own footprint. The I / O interface 840, individually or in certain combinations, enables the transmission of data / signaling from the control hub system 110, the reception of data / signaling at the control hub system, or both. The I / O interface 840 can include a serial port, a parallel port, a general-purpose I / O (GPIO) pin, or a combination thereof.
[0053] Memory 730 can hold or otherwise store machine-accessible components (e.g., computer-readable and / or computer-executable components) and data according to the present disclosure. Thus, in some embodiments, machine-accessible instructions (e.g., computer-readable and / or computer-executable instructions) embody or otherwise configure each of the machine-accessible components in memory 730. The machine-accessible instructions can be encoded in memory 730 and arranged to form each of the machine-accessible components. The machine-accessible instructions can be assembled (e.g., linked and compiled) and stored in computer-executable form in memory 730 or on one or more other machine-accessible non-transitory storage media. In particular, as shown in FIG. 7 , in some embodiments, the machine-accessible components include a synchronization component 310, a composition component 320, a compilation component 330, a messaging component 340, and an ingestion component 350. Memory 730 can also include data enabling various functions described herein. For example, as shown in FIG. 7, memory 830 may hold quantum program 104.
[0054] The machine-accessible components can be accessed and executed by at least one of the processors 710, individually or in certain combinations. Upon execution, each of the machine-accessible components can provide the functionality described herein in connection with centralized control of quantum program execution. Thus, execution of the computer-accessible components retained in memory 730 can cause the control hub system 110 to operate in accordance with aspects described herein. More specifically, by way of example, at least one of the processors 710 can execute machine-accessible components that cause the control hub system 110 to perform one or a combination of techniques in accordance with aspects described herein.
[0055] 7, the control hub system 120 may also include other types of computing resources that may allow or otherwise facilitate the execution of the machine-accessible components retained in memory 730. These computing resources may include, for example, a central processing unit (CPU), a graphics processing unit (GPU), a tensor processing unit (TPU), memory, disk space, incoming and / or outgoing bandwidth, interfaces (e.g., I / O interfaces), controller devices, power supplies, etc. For example, the memory 730 may also include programming interfaces (e.g., APIs), operating systems, software for configuring and / or controlling a virtualization environment, firmware, etc.
[0056] FIG. 8 is a block diagram of a non-limiting example of a controller device 800 for centralized control of quantum program execution according to one or more embodiments described herein. The controller device 800 may embody or be configured as at least one of the controller devices 140 (FIG. 1) described herein. As shown in FIG. 8, the controller device 800 may include one or several processors 810, one or several memory devices 830 (referred to as memory 830), a clock unit 144, and a waveform generator 450. In some embodiments, the processor 810 may be embodied in a microprocessing unit (MPU) having one or many processing cores. In other embodiments, the processor 810 may be embodied in a dedicated processing device having one or many processing cores.
[0057] The processor 810 can be operatively coupled to the memory 830, the clock unit 144, the waveform generator 450, the monitoring component 430, and the I / O interface 840, for example, via one or several communication interfaces 820. The communication interface 820 can be suitable for the particular configuration (localized or distributed) of the processor 810. In some embodiments, the communication interface 820 can include one or a combination of a number of bus architectures, such as low-voltage differential signaling (LVDS), JESD204b, an Ethernet-based industrial bus, a controller area network (CAN) bus, Modbus, or other types of fieldbus architectures. Additionally, or in other embodiments, the communication interface can include a wireless network and / or a wired network, each with its own footprint. The I / O interface 840, individually or in a particular combination, enables the transmission of data / signaling from the controller device 800 and / or the reception of data / signaling at the controller device 800. The I / O interfaces 840 can be individually addressed by the processor 810. The I / O interfaces 840 can include serial ports, parallel ports, general-purpose I / O (GPIO) pins, or a combination thereof.
[0058] Memory 830 can hold or otherwise store machine-accessible components (e.g., computer-readable and / or computer-executable components) and data according to the present disclosure. Thus, in some embodiments, machine-accessible instructions (e.g., computer-readable and / or computer-executable instructions) embody or otherwise configure each of the machine-accessible components in memory 830. The machine-accessible instructions can be encoded in memory 830 and arranged to form each of the machine-accessible components. The machine-accessible instructions can be assembled (e.g., linked and compiled) and stored in computer-executable form in memory 830 or on one or several other machine-accessible non-transitory storage media. In particular, as shown in FIG. 8, in some embodiments, the machine-accessible components include an ingestion component 410, a control flow handling component 420, a monitoring component 430, and a reporting component 440. Memory 830 can also include data enabling various functions described herein. For example, as shown in FIG. 8, memory 830 can hold a quantum program 104.
[0059] The machine-accessible components can be accessed and executed, individually or in certain combinations, by at least one of the processors 810. Upon execution, each of the machine-accessible components can provide the functionality described herein in connection with centralized control of quantum program execution. Thus, execution of the computer-accessible components retained in memory 830 can cause the controller device 800 to operate in accordance with aspects described herein. More specifically, by way of example, at least one of the processors 810 can execute machine-accessible components that cause the controller device 800 to perform one or a combination of techniques in accordance with aspects described herein.
[0060] 8, controller device 800 may also include other types of computing resources that may allow or otherwise facilitate the execution of the machine-accessible components, and the receipt and transmission of data and / or signaling, retained in memory 830. These computing resources may include, for example, other memory, disk space, incoming and / or outgoing bandwidth, interfaces (such as I / O interfaces), power supplies, etc. For example, memory 830 may also include programming interfaces (such as APIs), operating systems, software for configuring and / or controlling a virtualization environment, firmware, etc.
[0061] FIG. 9 illustrates an example method 900 for centralized control of quantum program execution according to one or more embodiments of the present disclosure. A computing system may implement the exemplary method 900, in whole or in part. Implementing the computer-implemented method 900 may include, for example, compiling and / or executing one or more of the blocks included in the computer-implemented method 900. The computing system may include, or be operatively coupled to, one or more processors, one or more memory devices, other types of computing resources (such as communication interfaces), combinations thereof, or other similar resources, or both. The computing system may embody or include a centralized control system. For example, the computing system may embody the control hub system 110 (FIG. 1).
[0062] In block 910, the computing system may synchronize clocks of the centralized control system and each of a plurality of controller devices located remotely to the centralized control system. As described above, a first of the plurality of controller devices may control application of a signal to a first of the plurality of qubit devices, and a second of the plurality of controller devices may control application of a signal to a second of the plurality of qubit devices. To synchronize these clocks, in some embodiments, the computing system may execute a synchronization component (e.g., synchronization component 310 (FIG. 3)) to start a clock unit of the centralized control system and to instruct the plurality of controller devices to start their respective clock units integrated therein or operatively coupled thereto.
[0063] At block 920, the computing system may transmit the quantum program to the multiple controller devices. Transmitting the quantum program may include transmitting data defining the quantum program to each of the multiple controller devices. In some embodiments, the computing system may execute a compilation component (e.g., compilation component 330 (FIG. 3)) to transmit such data to the controller devices.
[0064] Blocks 910 and 920 may collectively embody a preparation stage, whereby the control states of several controller devices may be initialized to be centrally controlled.
[0065] At block 930, the computing system may generate multiple control messages to initiate execution of the quantum program. In some cases, the clocks of each of the multiple controller devices may be synchronized so that each of the multiple control messages indicates a specific time (defined delay Δt or FAT t) to begin execution of the quantum program. FAT In some embodiments, a computing system may execute a composition component (e.g., composition component 320 (FIG. 3)) to generate multiple control messages.
[0066] At block 940, the computing system may transmit a plurality of control messages to each of a plurality of controller devices. The plurality of control messages may be transmitted over respective high-speed, non-blocking, point-to-point connections operatively coupling the plurality of controller devices to the computing system. In some embodiments, the computing system may execute a messaging component (e.g., messaging component 340 (FIG. 3)) to transmit the plurality of control messages over these connections.
[0067] At block 950, the computing system may receive measurement data resulting from one or more measurements at each qubit device. In some embodiments, the computing system may receive the measurement data via an ingestion component (e.g., ingestion component 350 (FIG. 3)). A first controller device of the plurality of controller devices may cause a measurement of the state of the first qubit device or each qubit device. Such a measurement may result in a first one of the measurement data. The first controller device may then transmit the first measurement data to the computing system.
[0068] At block 960, the computing system may use the measurement data to generate one or more control messages for each of the plurality of controller devices. In some embodiments, the computing system may execute a composition component to generate the control messages.
[0069] At block 970, the computing system may send a first one of the control messages to a first controller device of each of the plurality of controller devices. The computing system may send the first control message via the messaging component, for example, using a high-speed, non-blocking, point-to-point connection operatively coupling the first controller device and the computing system.
[0070] Blocks 930 through 970 may collectively embody a control stage. Implementation of the control stage may enable centralized control of the execution of a quantum program.
[0071] FIG. 10 illustrates an example method 1000 for controlled execution of a quantum program according to one or more embodiments of the present disclosure. A computing device may implement the exemplary method 1000, in whole or in part. Implementing the computer-implemented method 1000 may include, for example, compiling and / or executing one or more of the blocks included in the computer-implemented method 1000. The computing device may include, or be operatively coupled to, one or more processors, one or more memory devices, other types of computing resources (such as communication interfaces), combinations thereof, or other similar resources, or both. The computing device may be operatively coupled to a computing system that embodies or includes a centralized control system. In some embodiments, the computing device embodies a qubit controller device (e.g., one of controller devices 140 (FIG. 1)), and the computing system embodies control hub system 110 (FIG. 1).
[0072] At block 1010, a computing device may receive a quantum program from a centralized control system (e.g., control hub system 110 (FIG. 1)) located remotely relative to the computing device. In some embodiments, the computing device may control application of signals to a first qubit device of a plurality of qubit devices that executes the quantum program. Receiving the quantum program may include receiving data that defines the quantum program. Such data may be received via a high-speed, non-blocking, point-to-point connection between the computing device and the centralized control system. In some embodiments, the computing device may execute an ingestion component (e.g., ingestion component 410 (FIG. 4)) to receive the quantum program.
[0073] In block 1020, the computing device may receive a signal to synchronize a local clock with a reference clock in the centralized control system. The local clock may be integrated into the computing device. In other cases, the local clock may be operatively coupled to the computing device over a short-range wired or wireless link. The local clock and the reference clock may be embodied in or comprise clock unit 144 (FIG. 1) and clock unit 114 (FIG. 1), respectively.
[0074] At block 1030, the computing device may receive a plurality of control messages to initiate execution of a quantum program. The control messages may be received via a high-speed, non-blocking, point-to-point connection between the computing device and a centralized control system. In some embodiments, the computing device may execute or continue to execute an ingestion component that receives the control messages. The processor may be incorporated into or may include a processor 460, and the waveform generator may be embodied in waveform generator 450 (FIG. 4). In some cases, the processor may include at least one microprocessor or at least one dedicated processor.
[0075] At block 1040, the computing device may identify measurement instructions of the quantum program during execution of the quantum program. In some embodiments, the computing device may execute a component (e.g., control flow handling component 420 (FIG. 4)) to identify such instructions.
[0076] In block 1050, the computing device can cause a measurement of the state of the first qubit device and / or other physical properties of the first qubit device or its environment. In some embodiments, the computing device can include a monitoring component (e.g., monitoring component 430 (FIG. 4)) that causes a measurement of the state of the first qubit device and / or other physical properties. In these embodiments, the component that specifies the measurement instructions can also instruct the monitoring component to cause a measurement of the state of the first qubit device and / or other physical properties.
[0077] At block 1060, the computing device may transmit measurement data resulting from the measurements to a centralized control system. To that end, in some embodiments, the computing device may execute a reporting component (e.g., reporting component 440 (FIG. 4)).
[0078] In block 1070, the computing device may receive a control message from the centralized control system directing the selection of an execution path in response to a branch instruction in the quantum program. The branch instruction may follow the measurement instruction identified in block 1040. In some cases, the control message includes payload data defining the execution path. Additionally, or in other cases, the control message may include second payload data defining one or more operands corresponding to a quantum operation instruction in the execution path (such as node 510(4) in FIG. 5(A)). Furthermore, or in other cases, the control message may include a FAT t corresponding to an interruption in the execution of the quantum program on the computing device. FAT The interruption may be common to other computing devices running the quantum program simultaneously with the computing device as well.
[0079] To provide context for various aspects of the disclosed subject matter, FIG. 11 and the following discussion are intended to provide a general description of a suitable environment in which various aspects of the disclosed subject matter may be implemented. FIG. 11 illustrates a block diagram of an exemplary, non-limiting operating environment that can facilitate one or more embodiments described herein. Repeated descriptions of similar elements used in other embodiments described herein are omitted for brevity. A suitable operating environment 1100 for implementing various aspects of the present disclosure can include a computer 1112. The computer 1112 can also include a processing unit 1114, a system memory 1116, and a system bus 1118. The system bus 1118 can operatively couple system components, including, but not limited to, the system memory 1116, to the processing unit 1114. The processing unit 1114 can be any of a variety of available processors. Dual microprocessors and other multiprocessor architectures can also be utilized as the processing unit 1114. The system bus 1118 can be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus or external bus, and / or a local bus using any of a wide variety of available bus architectures, including, but not limited to, Industrial Standard Architecture (ISA), Micro Channel Architecture (MCA), Enhanced ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Firewire, and Small Computer System Interface (SCSI). The system memory 1116 can also include volatile memory 1120 and nonvolatile memory 1122. For example, a basic input / output system (BIOS), containing the basic routines for transferring information between elements within the computer 1112, such as during start-up, can be stored in the nonvolatile memory 1122.By way of example, and not limitation, the non-volatile memory 1122 may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, or non-volatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM). The volatile memory 1120 may also include random access memory (RAM) that acts as external cache memory. By way of example, and not limitation, RAM is available in many forms, including static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), Direct Rambus RAM (DRRAM), Direct Rambus Dynamic RAM (DRDRAM), and Rambus Dynamic RAM.
[0080] The computer 1112 may also include removable / non-removable, volatile / non-volatile computer storage media. FIG. 11 illustrates, for example, disk storage 1124. Disk storage 1124 may include devices such as, but not limited to, a magnetic disk drive, a floppy disk drive, a tape drive, a Jaz drive, a Zip drive, an LS-100 drive, a flash memory card, or a memory stick. Disk storage 1124 may also include storage media, either separately or in combination with other storage media, including, but not limited to, an optical disk drive such as a compact disc read-only memory (CD-ROM), a CD-recordable drive (CD-R drive), a CD-rewritable drive (CD-RW drive), or a digital versatile disc read-only memory (DVD-ROM). A removable or non-removable interface, such as interface 1126, may be used to facilitate connection of the disk storage 1124 to the system bus 1118. 11 also illustrates software that can act as an intermediary between users and the basic computer resources described in the suitable operating environment 1100. Such software can include, for example, an operating system 1128. The operating system 1128, which can be stored on disk storage 1124, operates to control and allocate resources of the computer 1112. System applications 1130 can take advantage of the management of resources by the operating system 1128 through, for example, program modules 1132 and program data 1134 stored either in system memory 1116 or on disk storage 1124. It should be appreciated that the present disclosure can be implemented with various operating systems or combinations of operating systems. A user enters commands or information into the computer 1112 through one or more input devices 1136.The input devices 1136 may include, but are not limited to, pointing devices such as a mouse, trackball, stylus, touchpad, keyboard, microphone, joystick, game pad, satellite dish, scanner, television tuner card, digital camera, digital video camera, web camera, etc. These and other input devices may be connected to the processing unit 1114 through the system bus 1118 via one or more interface ports 1138. The one or more interface ports 1138 may include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). The one or more output devices 1140 may use several of the same type of port as the input device(s) 1136. Thus, for example, a USB port may be used to provide input to the computer 1112 and to output information from the computer 1112 to the output device(s) 1140. Output adapter 1142 may be provided to illustrate that there are some output devices 1140 that require dedicated adapters, such as monitors, speakers, and printers, among other output devices 1140. Output adapter 1142 may include, by way of example and not limitation, video and sound cards that provide a means of connection between output device(s) 1140 and system bus 1118. It should be noted that other devices and / or systems of devices may provide both input and output capabilities, such as one or more remote computers 1144.
[0081] The computer 1112 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 1144. The remote computer 1144 can be a computer, server, router, network PC, workstation, microprocessor-based device, peer device or other common network node, etc., and typically includes many or all of the elements described relative to the computer 1112. For purposes of simplicity, only a memory storage device 1146 is shown with the remote computer 1144. The remote computer 1144 can be logically connected to the computer 1112 through a network interface 1148 and then physically connected via communication connection 1150. Furthermore, operations can be distributed across multiple (local and remote) systems. The network interface 1148 can encompass wired and / or wireless communication networks such as a local area network (LAN), a wide area network (WAN), a cellular network, etc. LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, and Token Ring. WAN technologies include, but are not limited to, point-to-point links, circuit-switched networks such as Integrated Services Digital Networks (ISDN) and variations thereof, packet-switched networks, and Digital Subscriber Lines (DSL). One or more communications connections 1150 refer to the hardware / software utilized to connect the network interface 1148 to the system bus 1118. For clarity of illustration, communications connections 1150 are shown internal to computer 1112 but could also be external to computer 1112. The hardware / software for connecting to network interface 1148 can also include, by way of example only, internal and external technologies such as regular telephone-grade modems, cable modems, modems including DSL modems, ISDN adapters, Ethernet cards, etc.
[0082] In some embodiments, the control hub system 110 described herein may be associated with a cloud computing environment. For example, the control hub system 110 may be associated with the cloud computing environment 1250 included in the operating environment 1200 shown in FIG. 12 and / or with one or more functional abstraction layers (e.g., hardware and software layer 1360, virtualization layer 1370, management layer 1380, and / or workload layer 1390) described herein with reference to FIG. 13 .
[0083] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that practice of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the present invention may be implemented in conjunction with any other type of computing environment now known or later developed.
[0084] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort and service provider interaction. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0085] The characteristics are as follows:
[0086] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed, without the need for human interaction with the service provider.
[0087] Broad Network Access: Capabilities are made available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0088] Resource Pooling: Provider computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated according to demand. Location independence is significant in that consumers typically have no control or knowledge over the exact location of the resources provided, but may be able to specify location at a higher level of abstraction (e.g., country, state, or data center).
[0089] Rapid Elasticity: Capacity can be rapidly and elastically provisioned, sometimes automatically, to instantly scale out, and rapidly released to instantly scale in. To the consumer, the capacity available for provisioning often appears unlimited and can be purchased in any quantity at any time.
[0090] Measured Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of utilized services.
[0091] The service model is as follows:
[0092] Software as a Service (SaaS): The capability offered to the consumer is the ability to use the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
[0093] Platform as a Service (PaaS): The ability offered to consumers is the ability to deploy applications they create or acquire, generated using programming languages and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the application hosting environment configuration.
[0094] Infrastructure as a Service (IaaS): The ability offered to consumers is the ability to provision processing, storage, networking, and other basic computing resources onto which they can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does exercise control over the operating systems, storage, deployed applications, and in some cases, limited control over select networking components (e.g., host firewalls).
[0095] The deployment model is as follows:
[0096] Private Cloud: The cloud infrastructure is operated exclusively for an organization. The cloud infrastructure may be managed by the organization or a third party and may be on-premise or off-premise.
[0097] Community Cloud: Cloud infrastructure is shared by several organizations to support a specific community with shared concerns (e.g., mission, security requirements, policy, and compliance considerations). The cloud infrastructure may be managed by the organizations or a third party and may reside on-premise or off-premise.
[0098] Public Cloud: Cloud infrastructure is made available to the general public or large industry organizations and is owned by an organization that sells cloud services.
[0099] Hybrid Cloud: A cloud infrastructure is a composite of two or more clouds (private, community, or public) that remain unique entities but are joined by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0100] Cloud computing environments are service-oriented, focusing on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure comprising a network of interconnected nodes.
[0101] Referring now to FIG. 12 , an exemplary cloud computing environment 1250 is shown. As shown, the cloud computing environment 1250 includes one or more cloud computing nodes 1210 with which local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or mobile phone 1254A, a desktop computer 1254B, a laptop computer 1254C, or an automotive computer system 1254N, or combinations thereof, may communicate. Although not shown in FIG. 12 , the cloud computing node 1210 may further include a quantum platform (e.g., a quantum computer, quantum hardware, quantum software, or another quantum platform, or combinations thereof) with which the local computing devices used by the cloud consumers may communicate. The nodes 1210 may communicate with each other. They may be physically or virtually grouped (not shown) in one or more networks, such as private, community, public, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 1250 to offer infrastructure, platform, and / or software as a service without the need for cloud consumers to maintain resources on their local computing devices. It is understood that the types of computing devices 125A-N shown in Figure 12 are intended to be exemplary only, and that the computing nodes 1210 and the cloud computing environment 1250 may communicate with any type of computerized device over any type of network and / or network-addressable connection (e.g., using a web browser).
[0102] Referring now to Figure 13, a set of functional abstraction layers provided by cloud computing environment 1250 (Figure 12) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 13 are intended to be merely exemplary, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0103] Hardware and software layer 1360 includes hardware and software components. Examples of hardware components include mainframe 1361, RISC (reduced instruction set computer), architecture-based servers 1362, servers 1363, blade servers 1364, storage devices 1365, and network and networking components 1366. In some embodiments, software components include network application server software 1367, database software 1368, quantum platform routing software (not shown in FIG. 13), or quantum software (not shown in FIG. 13), or a combination thereof.
[0104] The virtualization layer 1370 provides an abstraction layer at which the following examples of virtual entities may be provided: virtual servers 1371, virtual storage 1372, virtual networks including virtual private networks 1373, virtual applications and operating systems 1374, and virtual clients 1375.
[0105] In one example, management layer 1380 can provide the following functions: Resource provisioning 1381 provides dynamic procurement of computing and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing 1382 provides cost tracking as resources are utilized within the cloud computing environment and provides billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides protection for data and other resources as well as identity verification for cloud consumers and tasks. User portal 1383 provides consumers and system administrators with access to the cloud computing environment. Service level management 1384 provides cloud computing resource allocation and management to ensure requested service levels are met. Service level agreement (SLA) planning and fulfillment 1385 provides pre-provisioning and procurement of cloud computing resources in anticipation of future requirements according to SLAs.
[0106] The workload layer 1390 provides examples of functionality for which a cloud computing environment may be utilized. Non-limiting examples of workloads and functions that may be provided from this layer include mapping and navigation 1391, software development and lifecycle management 1392, virtual classroom instructional delivery 1393, data analytics processing 1394, transaction processing 1395, and vulnerability risk assessment software 1396.
[0107] Embodiments of the invention may be a system, method, apparatus, or computer program product, or combinations thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium having computer-readable program instructions for causing a processor to perform aspects of the invention.
[0108] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. A non-exhaustive list of more specific examples of computer-readable storage media may also include the following: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves with instructions recorded thereon, and any suitable combination of the above. As used herein, a computer-readable storage medium should not be construed as a transitory signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses through fiber optic cable), or electrical signals transmitted over wires.
[0109] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to a computer-readable storage medium within the respective computing / processing device for storage.
[0110] Computer-readable program instructions for carrying out operations of various aspects of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, etc., and procedural programming languages such as the “C” programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer as a stand-alone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry, including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to customize the electronic circuitry to carry out aspects of the present invention.
[0111] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0112] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may be stored on a computer-readable medium, such that the computer-readable storage medium on which the instructions are stored comprises an article of manufacture containing instructions for performing aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, and can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.
[0113] The computer-readable program instructions may be loaded into a computer, other programmable data processing apparatus, or other device to cause a series of operational operations to be performed on the computer, other programmable apparatus, or other device to create a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0114] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. It should be noted that each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may possibly be executed in the reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or a combination of dedicated hardware and computer instructions.
[0115] While the subject matter has been described above in the general context of computer-executable instructions for a computer program product executing on one or more computers, those skilled in the art will recognize that the present disclosure can also be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks and / or implement particular abstract data types. Furthermore, those skilled in the art will appreciate that the computer-implemented methods of the present invention can be practiced with other computer system configurations, including single-processor or multi-processor computer systems, minicomputer devices, mainframe computers, as well as computers, handheld computing devices (e.g., PDAs, phones), microprocessor-based or programmable consumer or industrial electronic devices, etc. The illustrated aspects may also be practiced in distributed cloud computing environments where tasks are performed by remote processing devices linked through a communications network. However, some, if not all, aspects of the present disclosure may be practiced on stand-alone computers. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
[0116] As used in this application, terms such as “component,” “system,” “platform,” “interface,” and the like can refer to and / or include computer-related or operable machine-related entities that include one or more particular functions. The entities disclosed herein can be hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, or a computer, or combinations thereof. By way of example, both an application running on a server and the server can be a component. One or more components can reside within a process and / or a thread of execution, and a component can be localized on one computer or distributed between two or more computers. In another example, each component can execute from various computer-readable media having various data structures stored thereon. Components may communicate via local and / or remote processes, such as according to signals comprising one or more data packets (e.g., data from one component interacting with another component in a local or distributed system, or interacting with other systems via signals over a network such as the Internet), or both. As another example, a component may be a device having a specific function provided by mechanical parts operated by electrical or electronic circuits, operated by a software or firmware application executed by a processor. In such cases, the processor may be internal or external to the device and may execute at least a portion of the software or firmware application.As yet another example, a component may be a device that provides a particular function through electronic components that have no mechanical parts, and these electronic components may include a processor or other means for executing software or firmware that provides at least a portion of the functionality of the electronic component. In one aspect, a component may emulate an electronic component via a virtual machine, for example, within a cloud computing system.
[0117] Additionally, the term "or" is intended to mean an inclusive or, rather than an exclusive or. That is, unless otherwise specified or clear from the context, "X uses A or B" is intended to mean any of the natural inclusive permutations. That is, if X uses A, or X uses B, or X uses both A and B, then "X uses A or B" is satisfied in any of the foregoing cases. Furthermore, as used in this specification and the accompanying drawings, the articles "a" and "an" should generally be construed to mean "one or more" unless otherwise specified or clear from the context to mean singular. As used herein, the words "example" and / or "exemplary" are utilized to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. Additionally, any aspect or design described herein as "example" and / or "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs, and is not intended to exclude equivalent exemplary structures and techniques known to those skilled in the art.
[0118] As used herein, the term "processor" may refer to virtually any computing processing unit or device, including, but not limited to, a single-core processor, a single processor with software multithreading, a multi-core processor, a multi-core processor with software multithreading, a multi-core processor with hardware multithreading, a parallel platform, and a parallel platform with distributed shared memory. Furthermore, a processor may refer to an integrated circuit, an application-specific integrated circuit (ASIC), a digital signal processor (DSP), a field-programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Furthermore, a processor may utilize nanoscale architectures, such as, but not limited to, molecular and quantum dot-based transistors, switches, and gates, to optimize space utilization or improve performance of user equipment. A processor may be implemented as a combination of computing processing units.
[0119] In this disclosure, terms such as "store," "storage," "data store," "data storage," "database," "repository," and substantially any other information storage component, relating to the operation and functionality of a component, are utilized to refer to a "memory component," an entity embodied in a "memory," or a component that includes a memory. It should be understood that the memory and / or memory components described herein can be either volatile memory or non-volatile memory, or can include both volatile and non-volatile memory. By way of example, and not limitation, non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, or non-volatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM)). Volatile memory may include RAM, which may function as external cache memory, for example. By way of example, and not limitation, RAM is available in many forms, including synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), Direct Rambus RAM (DRRAM), Direct Rambus Dynamic RAM (DRDRAM), and Rambus Dynamic RAM (RDRAM). Additionally, the memory component of the disclosed systems or computer-implemented methods herein is intended to comprise, without being limited to, these and any other suitable types of memory.
[0120] The foregoing includes merely exemplary systems, computer program products, and computer-implemented methods. Of course, for purposes of describing this disclosure, it is not possible to describe every conceivable combination of components, products, or computer-implemented methods, or combinations thereof, but one of ordinary skill in the art will recognize that many further combinations and permutations of the present disclosure are possible. Furthermore, to the extent that terms such as "including," "having," "possessing," and the like are used in the detailed description, claims, appendices, and drawings, these terms are intended to be inclusive in a similar manner to the term "comprising," as "comprises" is interpreted when used as a transitional term in a claim.
[0121] The descriptions of various embodiments have been presented for purposes of illustration and are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the spirit and scope of the described embodiments. The terminology used herein has been selected to best explain the principles of the embodiments, practical applications, or improvements of the technology over that found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. 1. A system comprising: a processor for executing computer-executable components stored in a memory, the computer-executable components comprising: A plurality of controller devices remotely located with respect to the system are connected to each other, and a synchronization component for synchronizing with said system. an ingestion component that accesses measurement data resulting from one or more measurements on each qubit device; a composition component that uses the measurement data to generate one or more control messages for a first controller device and a second controller device of the plurality of controller devices, the first controller device of the plurality of controller devices controlling application of a signal to a first qubit device of the respective qubit devices; A system comprising:
2. 10. The system of claim 1, further comprising: a messaging component that transmits a first of the one or more control messages to the first controller device over a high-speed, non-blocking, point-to-point connection.
3. 3. The system of claim 1, wherein the composition component generates a first message having at least one of first payload data defining an execution path for a branch instruction during execution of a quantum program on the first qubit device, or second payload data defining operand data corresponding to one or more quantum operations in the execution path.
4. 3. The system of claim 1 or 2, wherein the composition component generates a first message having payload data defining a future operation time corresponding to an interruption in the execution of a quantum program.
5. 3. The system of claim 1, further comprising a compilation component that transmits data defining a quantum program to the plurality of controller devices, the plurality of controller devices controlling application of respective signals to each of a plurality of qubit devices including the respective qubit device.
6. the composition component generates a plurality of second control messages to initiate execution of the quantum program on the plurality of qubit devices; 6. The system of claim 5, wherein the system transmits a first of the plurality of second control messages to a first of the plurality of controller devices over a high-speed, non-blocking, point-to-point connection.
7. 7. The system of claim 6, further comprising a communications network operatively coupling the system and a first controller device of the plurality of controller devices via a first high-speed, non-blocking, point-to-point connection, and operatively coupling the system and a second controller device of the plurality of controller devices via a second high-speed, non-blocking, point-to-point connection.
8. 1. A computer-implemented method comprising: a system operatively coupled to the processor for causing a plurality of controller devices located remotely to synchronize with each other and with the system; accessing, by the system, measurement data resulting from one or more measurements on each qubit device; generating, by the system, one or more control messages for a first controller device and a second controller device of the plurality of controller devices using the measurement data, wherein a first controller device of the plurality of controller devices controls application of a signal to a first qubit device of the respective qubit devices; 11. A computer-implemented method comprising:
9. 10. The computer-implemented method of claim 8, further comprising transmitting, by the system, a first of the one or more control messages to the first controller device over a high-speed, non-blocking, point-to-point connection.
10. 10. The computer-implemented method of claim 8 or 9, wherein generating the one or more control messages comprises generating a first message having at least one of first payload data defining an execution path for a branch instruction during execution of a quantum program on the first qubit device, or second payload data defining operand data corresponding to one or more quantum operations in the execution path.
11. 10. The computer-implemented method of claim 8 or 9, wherein generating the one or more control messages comprises generating a first message having payload data defining a future operation time corresponding to an interruption in execution of a quantum program.
12. generating a plurality of second control messages to initiate execution of a quantum program at a plurality of qubit devices, including the respective qubit devices; 10. The computer-implemented method of claim 8 or 9, further comprising transmitting, by the system, a first of the plurality of second control messages to a first controller device of the plurality of controller devices over a high-speed, non-blocking point-to-point connection, the plurality of controller devices controlling application of respective signals to each of the plurality of qubit devices.
13. A computer program for controlling the execution of a quantum program, comprising: causing a processor to synchronize a plurality of controller devices located remotely to said processor with each other and with a computing system operatively coupled to said processor; causing the processor to access measurement data resulting from one or more measurements at each qubit device; 10. The computer program product of claim 9, further comprising: a processor configured to generate, using the measurement data, one or more control messages for a first controller device and a second controller device of the plurality of controller devices, wherein a first controller device of the plurality of controller devices controls application of a signal to a first qubit device of the respective qubit devices.
14. 14. The computer program product of claim 13, further causing the processor to transmit a first of the one or more control messages to the first controller device over a high-speed, non-blocking, point-to-point connection.
15. 15. The computer program product of claim 13 or 14, wherein generating the one or more control messages comprises generating a first message having at least one of first payload data defining an execution path for a branch instruction during execution of the quantum program at the first qubit device, or second payload data defining operand data corresponding to one or more quantum operations within the execution path.
16. 15. The computer program product of claim 13 or 14, wherein generating the one or more control messages comprises generating a first message having payload data defining a future operation time corresponding to an interruption in execution of a quantum program.
17. further causing the processor to generate a plurality of second control messages to initiate execution of the quantum program on the plurality of qubit devices; 15. The computer program product of claim 13 or 14, further causing the processor to transmit a first of the second plurality of control messages to a first controller device of the plurality of controller devices over a high-speed, non-blocking point-to-point connection, the plurality of controller devices controlling application of respective signals to each of the plurality of qubit devices.
18. A device, a clock unit that receives a clocking signal from a computing system that is remotely located with respect to the device, the clocking signal synchronizing the device with a plurality of second devices that are remotely located with respect to the device; A processor executing computer-executable components stored in a memory, the computer-executable components comprising: an ingestion component that receives data defining a quantum program from the computing system, the ingestion component controlling application of a signal to a first qubit device of a plurality of qubit devices; a control flow handling component, Identifying measurement instructions of the quantum program during execution of the quantum program; the control flow handling component directing a monitoring component to cause a measurement of at least one of a state of the first qubit device or a physical property of the first qubit device; the processor, A device comprising:
19. 20. The device of claim 18, wherein the computer-executable components further include a reporting component that transmits measurement data resulting from the measurements to the computing system over a high-speed, non-blocking, point-to-point connection.
20. 20. The device of claim 18 or 19, wherein the ingestion component receives a control message from the computing system having at least one of first payload data defining an execution path in response to a branch instruction or second payload data defining operand data corresponding to one or more quantum operations in the execution path.
21. 21. The device of claim 20, wherein the control message further includes second payload data defining a future operation time corresponding to an interruption in the execution of a quantum program.
22. 1. A computer-implemented method comprising: receiving, by a controller device having at least one processor, a clocking signal from a computing system located remotely relative to said controller device, said clocking signal synchronizing said device with a plurality of second devices located remotely relative to said device; receiving, by a controller device having at least one processor, data defining a quantum program from the computing system, the controller device controlling application of signals to a first qubit device of a plurality of qubit devices that executes the quantum program; Identifying, by the controller device, measurement instructions of the quantum program during execution of the quantum program; causing the controller device to measure at least one of a state of the first qubit device or a physical property of the first qubit device; 11. A computer-implemented method comprising:
23. 23. The computer-implemented method of claim 22, further comprising transmitting, by the controller device, measurement data resulting from the measurements to the computing system over a high-speed, non-blocking, point-to-point connection.
24. 24. The computer-implemented method of claim 22 or 23, further comprising receiving, by the controller device, from the computing system, a control message having at least one of first payload data defining an execution path in response to a branch instruction, or second payload data defining operand data corresponding to one or more quantum operations in the execution path.
25. 25. The computer-implemented method of claim 24, wherein the control message further includes third payload data defining a future operation time corresponding to an interruption in the execution of a quantum program.
Citation Information
Patent Citations
Quantum computer cluster distributed queue scheduling method and system
CN111782361A
Hybrid Quantum Computing Network
US20210174237A1