Adjustment of Communication and Synchronization of Nodes for the Operation of an Improved Quantum Circuit Employing a Hybrid Classical / Quantum System

By synchronizing quantum tasks across nodes using compiled communication instructions and a universal time interval, the system addresses inefficiencies in multi-qubit quantum program execution, enhancing performance and reducing decoherence.

JP7714047B2Active Publication Date: 2025-07-28INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2023558850
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-05-04
Filing Date
2022-04-29
Publication Date
2025-07-28
Estimated Expiration
2042-04-29

AI Technical Summary

Technical Problem

Current techniques for controlling and scheduling multi-qubit quantum programs in hybrid classical/quantum systems face inefficiencies due to high overhead, data bottlenecks, and synchronization issues, leading to reduced execution speed and quality of quantum operations.

Method used

Implementing a system that facilitates compiling communication instructions and adopting a universal time interval to synchronize the execution of quantum tasks across multiple nodes, eliminating the need for timing instruction transfer and reducing bottlenecks.

Benefits of technology

This approach enhances the performance and quality of quantum operations by enabling faster, synchronized execution and data transfer, minimizing delays and decoherence, thus improving the overall execution time and quality of quantum jobs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007714047000002
    Figure 0007714047000002
  • Figure 0007714047000003
    Figure 0007714047000003
  • Figure 0007714047000004
    Figure 0007714047000004
Patent Text Reader

Abstract

A system, computer-implemented method, or computer program product, or combination thereof, is provided for operating a quantum circuit on a set of qubits. According to an embodiment, the system can facilitate controlling data transfer between two or more nodes. The system can include a memory storing computer-executable components, and a processor executing the computer-executable components stored in the memory. The computer-executable components can include a compilation component that compiles one or more communication paths between the two or more nodes for transfer of data that has not yet been determined along the one or more compiled communication paths. Alternatively and / or additionally, the computer-executable components can include an interval boundary implementation component that can commonly set and trigger a point in time for successive iterations at two or more nodes to align execution at the two or more nodes of one or more quantum gate operations.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] One or more embodiments described herein generally relate to the control or scheduling or both of quantum programs, and more particularly to the improved control or scheduling or both of quantum programs via a hybrid classical / quantum system by employing compiled communication instructions or universal time intervals or both.

Background Art

[0002] Quantum computing is generally the use of quantum mechanical phenomena to perform computing functions and information processing functions. Quantum computing can be regarded as being in contrast to classical computing, which typically operates on binary values using transistors. That is, a classical computer can operate on bit values that are either 0 or 1, while a quantum computer operates on quantum bits (qubits) that include a superposition of both 0 and 1, can entangle multiple qubits, and can use interference. Quantum computing has the potential to solve problems that cannot be solved or can only be solved slowly on classical computers due to the complexity of the calculations.

[0003] Quantum computing can utilize special controls such as quantum circuits to operate on qubits. A quantum circuit is a transformation that can perform operations on qubits. A quantum circuit can be implemented, for example, as one or more quantum gates such as a sequence of quantum gates as part of a quantum program. A quantum gate can be implemented as one or more physical operations on a set of qubits, such as implementing a sequence of pulses. A pulse is a time-dependent tone (e.g., a wave or waveform) that can be applied to a qubit to change its state.

[0004] On a large scale, a quantum computing cloud service provider can execute millions of quantum jobs for users in a year. Each quantum job can include the execution of one or more quantum programs. If feasible, one or more quantum programs can operate on one or more of the same qubits. If qubits can only exist (or be coherent) for a limited amount of time, the goal of the operation of a quantum circuit can be to reduce the operation time, or increase the operation speed, or both. The time spent operating a quantum circuit can unnecessarily reduce the available time for operations on one or more qubits. This can be due to the coherent time of one or more qubits that can be used before the decoherence of one or more qubits. For example, in some cases, the qubit state may be lost in less than 100 to 200 microseconds. Furthermore, operations on qubits usually introduce some kind of error, such as a certain amount of decoherence or a certain amount of quantum noise or both, which further affects the availability of qubits. Quantum noise can refer to noise caused by the discrete nature or probabilistic nature or both of quantum interactions.

[0005] Also, at scale, a large number of quantum jobs may put pressure on each quantum program to execute quickly. That is, improving execution speed may be directly, indirectly, or both, related to maximizing system utilization, minimizing compilation time for compiling quantum programs, minimizing the users who need to wait for compilation to complete, or minimizing the undesirable consumption of classical computing resources, or a combination thereof. Pressure may be applied to execute these quantum jobs so that maximum performance can be extracted from systems that are prone to short-term errors, or so that the quality of compilation to the physical level of pulses (e.g., related to the accuracy, precision, or efficiency of pulse execution, or a combination thereof) can be improved, or both.

[0006] Current techniques for controlling, scheduling, or both, multi-qubit quantum programs, such as quantum programs employing seven or more qubits, can employ both classical and quantum resources, and thus can employ one or more hybrid classical / quantum systems. Classical resources (e.g., one or more control nodes such as one or more control CPUs) can be employed to control one or more active nodes. One or more active nodes, such as one or more quantum processors, can perform quantum bit operations such as measuring quantum bits, operating one or more quantum circuits, or both, by performing one or more quantum pulses.

[0007] These current control or scheduling techniques or both may utilize a large amount of overhead (e.g., energy, time, or processing power, or a combination thereof) to schedule quantum operations, pass data for quantum operations, execute quantum operations, or execute a combination thereof so as to implement a multi-qubit quantum program. To transfer data such as data related to measurements or quantum program execution instructions or both between classical resources or quantum resources or both, the techniques may rely on global shared memory. Global shared memory may create one or more central data collection points, which may become bottlenecks between one or more control nodes and one or more active nodes. The bottleneck of data may unnecessarily reduce the execution speed of the quantum program, and due to decoherence or the like, may reduce the amount of quantum operations that can be executed on the qubits employed and degrade the quality of the performance of the quantum operations.

[0008] Furthermore, classical resources (e.g., one or more control nodes) may be non-deterministic and may require variable amounts of time for analyzing data, preparing instructions, or sending instructions, or a combination thereof. Due to the variable amounts of time, synchronization between the control nodes or the active nodes or both may be lost. This loss of synchronization may interrupt multi-qubit operations that depend on such synchronization, extend the initialization of multi-qubit operations, cause the failure of the execution of multi-qubit operations, or introduce errors into the execution of multi-qubit operations, or a combination thereof. Similar to the effect of the aforementioned data bottleneck, the loss of synchronization may unnecessarily reduce the execution speed of the quantum program, or due to decoherence or quantum noise or both, may reduce the amount of quantum operations that can be executed on the qubits employed, or degrade the quality of the performance of the quantum operations, or both, or a combination thereof.

SUMMARY OF THE INVENTION

[0009] The following presents an overview to enable a basic understanding of one or more embodiments described herein. This overview is not intended to identify key or critical elements nor to precisely describe the scope of particular embodiments or the claims, or both. The sole purpose of this overview is to present concepts in a simplified form as a prelude to a more detailed description that will be presented later. In one or more embodiments described herein, a device, system, computer-implemented method, apparatus, or computer program product, or a combination thereof, can facilitate compiling communication instructions, or adopting a universal time interval, or both, to improve the operation of quantum circuits such as hybrid classical / quantum systems.

[0010] According to an embodiment, a system can include a memory storing computer-executable components and a processor executing the computer-executable components stored in the memory. The computer-executable components can include an interval boundary implementation component that commonly sets and triggers a point in time to continuously repeat at two or more nodes to align the execution of one or more quantum tasks at the two or more nodes.

[0011] According to another embodiment, a computer-implemented method can include commonly setting and triggering a point in time to continuously repeat at two or more nodes of a system to align the execution of one or more quantum tasks at the two or more nodes by a system operably coupled to a processor.

[0012] According to yet another embodiment, a computer program product for facilitating the control of quantum tasks across two or more nodes of a system can comprise a computer-readable storage medium having program instructions embodied thereon. The program instructions are executable by a processor to commonly set and trigger a time point for continuously repeating across two or more nodes of the system to align the execution of one or more quantum tasks across two or more nodes.

[0013] Advantages of such a system, computer program product, or method, or combinations thereof, can be improved (e.g., enhanced or optimized, or both) performance of such quantum operations by virtue of faster or synchronized execution, or both, of such quantum operations. This synchronization can be facilitated without transfer of timing instructions, with or without data, between two or more nodes during the execution of a quantum program including two or more quantum operations.

[0014] In one or more embodiments of the above-described system, computer program product, or method, or a combination thereof, the execution component can adopt a point in time to continuously repeat for a plurality of successive executions of one or more portions of a quantum circuit for two or more qubits. Additionally or alternatively or both, the execution component can cause quantum tasks that are simultaneously initiated for two or more qubits in two or more instances of the point in time to be continuously repeated. The advantage of such a system, computer program product, or method, or a combination thereof, can be a reduction in the overall time for performing such quantum operations. That is, when one or more quantum operations, such as those related to two or more qubits, are performed, the speed or quality or both of such quantum operations can be improved (e.g., can be enhanced or optimized or both). For example, due to a pre-implemented common point in time, one or more multi-qubit quantum operations can be scheduled with minimal delay.

[0015] Additionally or alternatively or both, in one or more embodiments of the above-described system, computer program product, or method, or a combination thereof, the compilation component can compile one or more communication paths between two or more nodes for the transfer of undetermined data along one or more compiled communication paths. The length of the common time interval between consecutive time points among the continuously repeating time points can be at least as long as the maximum data propagation time along one or more communication paths. The advantages of such a system, computer program product, or method, or a combination thereof, can be facilitated not only by such faster synchronized execution of quantum operations but also by faster transfer of data between two or more nodes, which can be improved (e.g., improved or optimized or both) performance of such quantum operations. This faster data transfer can be facilitated during the execution of a quantum program including multiple quantum operations without or by reducing bottlenecks or central data collection points or both.

Brief Description of the Drawings

[0016]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

[0017] The following detailed description is merely exemplary in nature and is not intended to limit the embodiments, the application of the embodiments, the use of the embodiments, or any combination thereof. Further, there is no intention to be constrained by any information, whether expressly, implicitly, or both, presented in the preceding "Background Art" or "Summary of the Invention" or both sections, or in this "Detailed Description of the Invention" section, or any combination thereof.

[0018] Controlling or scheduling a quantum program of multiple qubits, or both, and considering one or more of the aforementioned problems together with current techniques for doing so, it may be desirable to improve the execution time for executing a quantum job (e.g., including one or more quantum programs), or the quality of execution of the quantum job, or both. Therefore, the subject matter described can employ various techniques that can improve (e.g., enhance, optimize, or shorten, or a combination thereof) the execution time for executing a quantum job, or improve (e.g., enhance, optimize, or improve, or a combination thereof) the quality of execution of such a quantum job, or both. In one or more instances, one or more embodiments described herein can enable increased scaling of the execution of related quantum programs implementing quantum circuits.

[0019] Here, with reference to the figures, one or more of these embodiments are described, and throughout, like reference numbers are used to refer to like elements. As used herein, the terms "entity", "requesting entity", and "user entity" can refer to a machine, device, component, hardware, software, smart device, or human, or a combination thereof. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more embodiments. However, it is apparent that in one or more instances, one or more embodiments may be practiced without these specific details.

[0020] Furthermore, the embodiments shown in one or more of the figures described herein are for illustrative purposes only, and thus the architecture of the embodiments is not limited to the systems, devices, or components, or combinations thereof, shown herein, nor is it limited to any particular order, connection, or combination, or combinations thereof, of the systems, devices, or components, or combinations thereof, shown herein. For example, in one or more embodiments, the non-limiting systems 100, 100E, 900, 900E, or 1400 shown in FIGS. 1, 2, 9, 10, and 14, or combinations thereof, or these systems, or combinations thereof, may further comprise one or more computer or computing-based elements, or both, as described herein with reference to an operating environment such as the operating environment 1400 shown in FIG. 14. In a plurality of the described embodiments, the computer or computing-based elements, or both, may be used in connection with implementing one or more of the systems, devices, components, or computer-implemented operations, or combinations thereof, shown or described, or both, in FIGS. 1, 2, 9, 10, and 14 described herein, or other figures, or both.

[0021] Referring initially to FIG. 1 generally, one or more embodiments described herein can include one or more systems, computer-implemented methods, devices, or computer program products, or combinations thereof, that can facilitate compiling communication instructions. For example, FIG. 1 shows a block diagram of an exemplary non-limiting system 100 that can facilitate compiling communication instructions for improving the execution of quantum jobs. A quantum job component can obtain (e.g., download, receive, retrieve, or perform the like, or combinations thereof) a quantum job request that requires the execution of one or more quantum programs. A determination component can determine one or more quantum circuits that include one or more abstract layers for executing a quantum program. A compile component can compile one or more communication paths for transferring data that has not yet been determined along one or more communication paths for executing a quantum program. The compile component can alternatively or additionally or both compile one or more data parameters of the data that has not yet been determined to be transferred.

[0022] Typically, non-limiting system 100 can also facilitate executing the compiled communication instructions for executing a quantum job. An execution component can direct the determined data along one or more communication paths for performing the operation of a quantum circuit on two or more qubits. An output component can output one or more quantum job results in response to a quantum job request.

[0023] It will be appreciated that the following description refers to the operation of a single quantum program from a single quantum job request. However, it will also be appreciated that one or more of the processes described herein can be scalable. For example, as will be appreciated below, the quantum program implementation system 102 can implement one or more communication fabrics 140, or execute one or more quantum programs, or both, each of which is described in detail below. These various levels of scaling can enable a faster, more efficient, or less error-prone, or a combination thereof, execution of the quantum program, at least in part due to a reduced decoherence or decoherence time, or both, of one or more qubits employed to execute the quantum program.

[0024] In one or more embodiments, the non-limiting system 100 can be a hybrid system and thus can include both one or more classical systems, such as the quantum program implementation system 102, and one or more quantum systems, such as the quantum system 101. In one or more other embodiments, the quantum system 101 can be separated from the non-limiting system 100 but can function in combination with the non-limiting system 100.

[0025] A quantum system 101 (e.g., a quantum computer system, a superconducting quantum computer system, or the like, or a combination thereof) can employ a quantum algorithm or a quantum circuit or both, execute a quantum operation or a quantum function or both on input data, and include a computing component or a computing device or both for generating a result that can be output to an entity. The quantum circuit can comprise qubits (quantum bits) such as multi-bit qubits, physical circuit-level components, high-level components, or functions, or a combination thereof. The quantum circuit can be structured (e.g., arranged or designed or both) to execute a desired quantum function or quantum computation or both on data (e.g., input data or intermediate data derived from the input data or both), and can comprise physical pulses for generating one or more quantum results as output. The quantum results can be associated with the input data in response to a quantum job request and can be based at least in part on the input data, the quantum function, or the quantum computation, or a combination thereof.

[0026] In one or more embodiments, the quantum system 101 can comprise one or more quantum components, such as a quantum operation component 103 and a quantum processor 105. The quantum operation component 103 can perform one or more quantum processes, quantum computations, or quantum measurements, or combinations thereof, to operate one or more quantum circuits on one or more qubits. For example, the quantum operation component 103 can operate one or more qubit effectors, such as qubit oscillators, harmonic oscillators, pulse generators, or the like, or combinations thereof, to cause one or more pulses to stimulate, or manipulate, or both, the states of one or more qubits present in the quantum system 101. The quantum processor 105 can be any suitable processor, such as one that can control qubit generation, etc. The quantum processor 105 can generate one or more instructions for controlling one or more processes of the quantum operation component 103.

[0027] Referring to the classical part of the non-limiting system 100, the quantum program implementation system 102 can comprise any kind of component, machine, device, facility, apparatus, or instrument, or a combination thereof, that either has a processor or can effectively communicate or operably communicate or both with a wired network or a wireless network or both, or both. All such embodiments are contemplated. For example, the quantum program implementation system 102 can comprise a server device, a computing device, a general-purpose computer, a dedicated computer, a quantum computing device (e.g., a quantum computer), a tablet computing device, a handheld device, a server-class computing machine or a database or both, a laptop computer, a notebook computer, a desktop computer, a mobile phone, a smartphone, a consumer device or a consumer appliance or both, an industrial device or a commercial device or both, a digital assistant, an Internet-enabled multimedia phone, a multimedia player, or another kind of device, or a combination thereof.

[0028] In one or more embodiments, the quantum program implementation system 102 can include a processor 106 (e.g., a computer processing unit, a microprocessor, a classical processor, a quantum processor, or a similar processor, or a combination thereof). In one or more embodiments, all components associated with the quantum program implementation system 102 can include components or instructions or both that can be read by, written to, or executed by one or more computers or machines or both, or a combination thereof, as described herein with or without reference to one or more figures of one or more embodiments, and these components or instructions or both can be executed by the processor 106 to facilitate the execution of one or more processes defined by such components or instructions or both.

[0029] In one or more embodiments, the quantum program implementation system 102 can include a computer-readable memory 104 operably connected to the processor 106. The memory 104 can store computer-executable instructions that, when executed by the processor 106, cause the processor 106 or other components of the quantum program implementation system 102 (e.g., the quantum job component 108, the decision component 110, the compile component 112, the execution component 116, or the output component 118, or a combination thereof) or both to perform one or more operations. In one or more embodiments, the memory 104 can store computer-executable components (e.g., the quantum job component 108, the decision component 110, the compile component 112, the execution component 116, or the output component 118, or a combination thereof).

[0030] The quantum program implementation system 102 described in this specification, or components thereof, or both, can be communicatively, electrically, operably, optically, or otherwise, or in combination, coupled to each other via bus 124 to perform the functions of the non-limiting system 100, the quantum program implementation system 102, or any components thereof, or any components coupled thereto, or both, or combinations thereof. Bus 124 can include one or more of a memory bus, a memory controller, a peripheral bus, an external bus, a local bus, a quantum bus, or another type of bus that can employ one or more bus architectures. One or more of these examples of bus 124 can be employed to implement any one or more of the embodiments described herein.

[0031] In one or more embodiments, the quantum program implementation system 102 can be coupled to one or more external systems, sources, or devices (e.g., classical computing devices or quantum computing devices or both, communication devices, or similar devices, or combinations thereof), or combinations thereof (e.g., communicatively, electrically, operably, optically, or with similar functionality, or in combination), via a network or the like. In one or more embodiments, one or more of the components of the non-limiting system 100 can be present in the cloud, or can be present in a local computing environment (e.g., at a desired location), or both are possible.

[0032] In addition to the aforementioned processor 106 or memory 104 or both, the quantum program implementation system 102 can include one or more components or instructions or both that can be read by, written to, or executed by one or more computers or machines or both, or any combination thereof, and when executed by the processor 106, these components or instructions or both can facilitate the execution of one or more operations defined by such components or instructions or both. For example, in one or more embodiments, the quantum program implementation system 102 can include a quantum job component 108, a decision component 110, a compile component 112, an execution component 116, or an output component 118, or any combination thereof.

[0033] The quantum job component 108 can obtain a quantum job request 109 from a requesting entity by receiving, downloading, streaming, or otherwise acquiring it, or any combination thereof. The non-limiting system 100 can use the quantum program implementation system 102 and the quantum system 101 to execute one or more quantum programs requested to be implemented in the quantum job request 109. In one or more cases, the quantum job request 109 can include one or more instructions regarding one or more specific quantum circuits to be employed.

[0034] In connection with one or more required quantum programs, the determination component 110 can determine one or more quantum circuits to implement the one or more quantum programs. This determination can include searching one or more databases that are internal to, external to, or both the quantum program implementation system 102 or the non-limiting system 100 or both. In one or more cases, the determination component 110 can include a database portion for storing one or more compiled quantum circuits.

[0035] Referring now to the compile component 112, before first describing in detail one or more functions that can be performed by the compile component 112, a general overview of one or more functions that can be performed by the compile component 112 will first be presented herein.

[0036] Typically, the compile component 112 can compile communication instructions for the scheduled transfer of yet undetermined data between one or more control nodes or one or more action nodes or both, as described in detail below. This compilation can include the identification of one or more communication paths or one or more data parameters or both, as described in detail below. This compilation can include, additionally or alternatively or both, scheduling one or more data transfers along one or more identified communication paths. This scheduling can be based at least in part on one or more identified data parameters.

[0037] When one or more communication paths are identified, generated, scheduled, or any combination thereof, aspects of one or more quantum programs, such as certain instructions, measurement results, variational quantum parameters, or the like, or combinations thereof, may not yet be determined, such as not yet being computed. In fact, these aspects of the quantum programs can be determined during the execution of the quantum program. In one example, it becomes possible to analyze previous quantum measurement results, and instructions may not be established in advance until subsequent instructions or quantum parameters (e.g., variational quantum parameters) or both can be determined to continue the quantum program. That is, while the actual data bits may not be determined by the compilation component 112, information including the data transfer path (communication path), the number of data units, the total amount of data per transfer, or the schedule of the transfer, or combinations thereof, can be determined by the compilation component 112 described below.

[0038] Referring now to FIG. 2 in addition to FIG. 1, FIG. 2 includes a diagram of an enlarged non-limiting system 100E. The non-limiting system 100E can be employed in place of the non-limiting system 100 shown in FIG. 1. That is, for one or more of the descriptions provided (or to be provided) herein, the non-limiting systems 100 and 100E can be interchangeable with one another. One or both of the descriptions or disclosed aspects of the non-limiting systems 100 and 100E can apply to the other of the non-limiting systems 100 and 100E herein.

[0039] As used herein, a node (e.g., a control node or an operational node) can include one or more machines. The one or more machines can include a computing device, a general-purpose computer, a special-purpose computer, a quantum computing device (e.g., a quantum computer), a tablet computing device, a handheld device, a server-class computing machine or database or both, a laptop computer, a notebook computer, a desktop computer, a cellular phone, a smartphone, a consumer device or appliance or both, an industrial device or commercial device or both, a digital assistant, an Internet-enabled multimedia phone, or another type of device, or one or more of a combination thereof.

[0040] As shown in the figure, the quantum program implementation system 102 can be included in the classical system of the control node 204A. The control node can be a classical resource that can provide scheduling, instructions, data analysis, measurement analysis, optimization of quantum parameters, or the like, or a combination thereof. It is possible for these control nodes to be distributed relative to each other locally, non-centrally, or both, or for any two or more control nodes to be communicably connected to each other, or both. In one or more other embodiments, it will be understood that one or more control nodes can be quantum resources, or can include one or more quantum components, or both.

[0041] The classical control node 204A shown can include a central processing unit 206A, but in one or more other embodiments, the CPU 206A and the processor 106 can be the same, or can share one or more aspects of hardware or software or both, or both. The enlarged non-limiting system 100E in FIG. 2 can also include another control node 204B that includes a CPU 206B. It will be understood that any suitable number of control nodes can be included. In one or more embodiments, the quantum program implementation system 102 can be located remotely from any of the control nodes (not shown). In one or more embodiments, two or more control nodes can include the quantum program implementation system 102. In such a case, can two or more quantum program implementation systems 102 function together to compile one or more communication paths or data parameters or both, or can only one of the quantum program implementation systems 102 facilitate one or more such functions, or both?

[0042] An operation node can be a quantum resource that can perform one or more quantum tasks, such as pulse generation, waveform generation, quantum measurement, or other functions related to or including one or more qubits, or a combination thereof. These operation nodes can be distributed relative to each other locally, non-centrally, or both, or any two or more operation nodes can be communicably connected to each other, or both. In one or more other embodiments, it will be understood that one or more operation nodes can be a quantum resource, or can include one or more quantum components, or both. Additionally or alternatively or both, it will be understood that one or more operation nodes can provide one or more of the functions of the control nodes listed above, or one or more control nodes can provide one or more of the functions of the operation nodes listed above, or both.

[0043] Additionally or alternatively or both, in addition to operation nodes and control nodes, other types of nodes can be possible. For example, pass-through nodes can be employed to assist with physical distribution or connectivity or both, interface nodes can be employed between quantum systems, or for example, qubit group controllers can be employed to manage a set of imperfect qubits such as single error protected qubits, or combinations thereof.

[0044] The enlarged non-limiting system 100E shown in FIG. 2, and the non-limiting system 100 of FIG. 1 (not shown), can also include a quantum system 101 that includes three operational nodes 220A, 220B, and 220C that are locally distributed relative to each other. Each of these operational nodes 220A, 220B, and 220C can include one or more components of an operational node, such as an expander (EX), a waveform player (WP), a digital-to-analog converter (DAC) device, an analog-to-digital converter (ADC) device, or a kernel / discriminator (KD), or a combination thereof. In one or more embodiments, one or more functions of one or more components of an operational node can be performed by one or more other of the components of the operational node. In one or more embodiments, one or more of the components of the operational node can be coupled, or omitted, or both.

[0045] Each of these operational nodes 220A, 220B, and 220C can act on at least one qubit 226A, 226B, and 226C, respectively. Further, although only three qubits (qubit (0) 226A, qubit (1) 226B, and qubit (2) 226C) are shown, it will be understood that additional operational nodes can be included to act on additional qubits, such as, for example, seven or more qubits, ten or more qubits, or one hundred or more qubits, or a combination thereof.

[0046] Here, although applicable to any of operation nodes 220A, 220B, or 220C, one or more aspects of operation node 220A will be described in detail with reference to operation node 220A. Operation node 220A can include an expander (EX) 221A, a waveform reproducer (WP) 222A, a digital / analog converter (DAC) device 223A, an analog / digital converter (ADC) device 224A, and a kernel / discriminator (KD) 225A, and can act on a qubit (0) 226A. The expander 221A can convert condensed information regarding a quantum gate (e.g., exemplary information or exinfo232A) into a sequence of one or more quantum gates. At least a part of the sequence can be compiled in a database that is external or internal or both to the non-limiting system 100 / 100E. The waveform reproducer 222A can convert a sequence of two or more quantum gates into code points for utilization by the DAC device 223A. For example, the waveform reproducer 222A can refer to a library of code points representing one or more quantum gates and use this library to construct a sequence of code points. The library of code points can be stored in a database that is external or internal or both to the extended non-limiting system 100E. The DAC device 223A can convert a sequence of code points into one or more analog signals such as an analog control signal or an analog measurement signal or both. During a time window for measuring the state of a qubit such as qubit (0) 226A, the ADC device 224A can sample one or more of the analog signals to generate one or more digital codes representing voltages.

[0047] The kernel / sorter 225A can convert one or more samples of a measurement into a binary number representing the state of a qubit. In one or more other embodiments, the kernel / sorter 225A can convert one or more samples of a measurement into one or more binary states, such as when a binary sequence is employed, passed, or both are possible to represent one or more of the states (e.g., four different quantum states defined as 00, 01, 10, and 11). The kernel / sorter 225A can output qubit values such as qv(0)234A of qubit (0)226A. Further, although not particularly shown in FIG. 2, in one or more embodiments, the qubit measurement results output from the kernel / sorter can be supplied to each expander, supplied to different expanders, or broadcast to two or more nodes within each system, or a combination thereof.

[0048] In current systems, the latency of transfer of exemplary information (e.g., exinfo232A) between a control node and an operation node (e.g., from control node 204A to operation node 220A), or the latency of transfer of measured qubit values (e.g., qv(0)234A) obtained as a result between an operation node and a control node (e.g., from operation node 220A to control node 204A) can be standard. This is particularly true when many aspects of data such as exemplary information and qubit values are being passed for implementing control of multiple qubits. Bottlenecks, chokepoints, or data collection points, or combinations thereof, between nodes (e.g., between control nodes or operation nodes or both) (e.g., via software or hardware or both) can limit the speed of data transfer. That is, conventional communication and management techniques for multiple CPUs may not be able to transfer, analyze, or determine data, or combinations thereof, at a scale that takes into account standard qubit decoherence. This problem can worsen when scaling to quantum programs acting on a large number of qubits.

[0049] Taking into account one or more delays, in cases such as where adjustments between multiple operation nodes are utilized to implement a multi-qubit gate, the transfer of data regarding one or more quantum tasks operating on multiple qubits may be delayed at at least one operation node. These one or more delays may then cause further delays at an operation node that is ready to implement a multi-qubit gate but is instead delayed until all such operation nodes (e.g., affecting one or more downstream execution times) are also ready. This may further exacerbate decoherence or other errors (e.g., quantum noise) or both present in the quantum system during the execution of a quantum program. Further, it should be understood that multiple quantum tasks may be executed in sequence to execute a quantum program. This may further exacerbate the aforementioned delays, decoherence, or errors, or combinations thereof, introduced into each quantum system, classical system, or hybrid system, or combinations thereof.

[0050] To account for one or more of these issues, one or more embodiments herein can compile (e.g., by quantum program implementation system 102 or compiler component 112 or both) a communication infrastructure of communication paths 242, collectively referred to herein as compiled communication fabric 140, for scheduling data transfers between various control nodes and operation nodes of a system such as non-limiting system 100 / 100E. That is, compiler component 112 can compile one or more communication paths, including identifying and scheduling data transfers for one or more communication paths, for data transfer throughout non-limiting system 100 / 100E. With the compiled communication fabric 140, compiler component 112 can facilitate communication between control nodes 204A with each other and between control nodes 104A and 104B and one or more of operation nodes 220A, 220B, and 220C via one or more communication paths 242. This compilation (e.g., identification or scheduling or both) is described in detail below.

[0051] In one or more instances, communication fabric 140 can be specifically compiled for execution of one or more particular quantum programs. In connection with one or more other quantum programs, the same communication fabric 140 or different communication fabrics or both can be compiled.

[0052] First, typically, the compile component 112 can identify one or more communication paths, such as after the non-limiting system 100 / 100E receives each quantum job request (e.g., quantum job request 109), prior to the execution of the quantum program. Additionally or alternatively or both, after the initialization of the execution of each quantum program, but prior to the execution of a particular quantum task (for which one or more communication paths 242 are employed), one or more communication paths 242 or segments thereof or both can be identified by the compile component 112.

[0053] The compile component 112 can identify one or more communication paths, such as by searching for one or more such paths that are identified by, utilized by, or both, one or more other programs, databases, applications, or the like, or combinations thereof, communicatively coupled to the compile component 112. In one or more embodiments, the compile component 112 can trigger one or more signals, such as pings, between various control nodes or operational nodes or both of the non-limiting system 100 / 100E. Based on the one or more received signals, pings, metadata, or other results, or combinations thereof, the compile component 112 can identify the communication path or path latency or both. For example, worst-case propagation latency may be useful to the compile component 112 when planning operations between nodes. Similarly, the compile component 112 can identify communication paths that minimize, avoid, or both, data concentration points or data-intensive points or both between various control nodes or operational nodes or both. For example, in one embodiment, the compile component 112 can use a calibration program to record backend structure and worst-case propagation latency, and this recorded information can be used by the non-limiting system 100 to plan one or more gate operations between nodes.

[0054] Referring further to FIG. 2, it can be seen that a plurality of communication paths 242 of the communication fabric 140 schematically connect one or more control nodes 204A and 204B and one or more operation nodes 220A, 220B, and 220C. A particular communication path 242A is shown for communication from control node 204A to operation node 220A, and a different communication path 242B is compiled for communication from operation node 220A to control node 204A, but it will be understood that one or more communication paths 242 can be used for communication between any nodes. That is, the compile component 112 can identify one or more paths between one or more pairs of nodes (e.g., control nodes or operation nodes or both, or at least segments of communication paths 242, or combinations thereof, can be utilized for transfer between three or more nodes (e.g., control nodes or operation nodes or both)). Thus, the use of communication paths 242 can be dynamic during the execution of a quantum program. However, such dynamic use can remain scheduled by the compile component 112 prior to the execution of the quantum program.

[0055] Further, as shown in the figure, separate communication paths 242 for data transfer can be identified for each of the opposite directions (e.g., relative transmission and relative reception) between each control node and each operation node. This can facilitate avoiding duplication of data transfer along a common communication path simultaneously, or enable simultaneous data transfer in both the receive and transmit directions for a pair of nodes, or both. Considering this compile strategy facilitated by the compile component 112, at one or more instants during the execution of a quantum program, data transfer congestion can be minimized or avoided, or both.

[0056] Furthermore, it will be appreciated that the specific communication path 242 shown in FIG. 2 and the number of communication paths 242 are merely exemplary diagrams of the communication fabric 140. More or fewer communication paths 242 may be identified where appropriate.

[0057] Referring now to FIG. 3, it will also be appreciated that in one or more embodiments, the compile component 112 can identify, generate, or both, one or more aspects of one or more of the communication paths. These aspects of the paths can include one or more endpoints 352, one or more fabric port interfaces 354, or one or more routing blocks 356, or combinations thereof. Typically, the compile component 112 can identify one or more aspects of the paths prior to execution of the quantum program, such as after the non-limiting system 100 / 100E has received each quantum job request (e.g., quantum job request 109). Additionally or alternatively or both, after initialization of the execution of each quantum program, but prior to execution of a particular quantum task (of the quantum program) that employs one or more aspects of the paths or a portion of the aspects of the paths or both, one or more aspects of the paths or a portion of the aspects of the paths or both can be identified by the compile component 112.

[0058] The compile component 112 can identify one or more physical aspects, such as a server, router, cable, or physical communication link, or a combination thereof, including at least a part of the side of the path, such as any suitable hardware. For example, for quantum applications, at least a part of the side of the path can be implemented as a custom-designed interface that has a lightweight protocol, or no protocol, or both, to minimize propagation latency. Additionally or alternatively or both, the compile component 112 can identify one or more software aspects as at least a part of the side of the path, or can generate one or more software aspects, or both. In one or more embodiments, the software aspect can include or be part of a cloud network.

[0059] Thus, it will be understood that the communication fabric 140 (e.g., including one or more compiled communication instructions) compiled by the compile component 112 and provided by the non-limiting system 100 / 100E can be implemented by software, hardware, or a combination of hardware and software, or a combination thereof.

[0060] Referring to the sides of various paths, one or more endpoints 352 can be connected to the sides of each control node or operation node or both, such as the control nodes or operation nodes or both shown in FIG. 2 (regardless of whether it is software, hardware, or a combination of hardware and software, or any combination thereof), or be those sides, or both. For example, each endpoint 352 can be communicatively connected to each node, such as to the CPU of a control node or to an expander of an operation node or to each quantum processor or both. It is possible for the endpoint 352 to be identified, or generated, or both, for registering, receiving, or outputting data transfers, or a combination thereof.

[0061] One or more endpoints 352 can each be connected to at least one fabric port interface (FPI) 354. One or more FPIs 354 of the communication fabric 140 can function as an interface connection with the endpoint 352 for the hardware or software or both included in one or more communication paths 242 of the communication fabric 140. It is possible for the FPI 354 to be identified, or generated, or both, for interfacing with one or more communication paths and / or driving data transfers. For example, the FPI can be a block of registers used to hold, transmit, receive, or perform a combination thereof, data that is read, transferred, or both under software control. In another example, the FPI can be a more complex hardware controller capable of forming, injecting, receiving, or extracting data encapsulated in a transfer packet along with routing information, or performing a combination thereof.

[0062] The FPI354 can include at least one transmission data block 355 and at least one reception data block 358. The transmission data block 355 and each reception data block 358 can be either metaphorical (e.g., generated by software) blocks or literal (e.g., identified by the compilation component 112) hardware or both. In one embodiment, as shown in the figure, each transmission data block 355 and each reception data block 358 can include one or more destination blocks 360. The destination blocks 360 can be either metaphorical (e.g., generated by software) blocks or literal (e.g., identified by the compilation component 112) hardware or both. The destination blocks 360 can be concatenated to form an adjacent indexable array.

[0063] In one embodiment, each destination block 360 can be dedicated to the transfer of data to a particular FPI354. Thus, it will be understood that the number of destination blocks 360 included in the transmission data block 355 and the reception data block 358 can be different from the number shown in FIG. 3. That is, for illustrative purposes of reducing clutter, only two destination blocks 360 are shown for each of the transmission data block 355 and the reception data block 358 in FIG. 3. However, in one or more embodiments, the FPI can include a bank of registers for the destination blocks. That is, the data blocks 355 and 358 can each be a part or section of a register, and each of the data blocks 355 and 358 includes a plurality of destination blocks 360 equal to the number of the plurality of FPI354s of each communication fabric 140.

[0064] Each destination block 360 can include one or more data units 362. Each data unit 362 can encompass, include, or both, one or more adjacent bits. The data unit 362 can be a figurative (e.g., generated by software) unit or a literal (e.g., identified by the compile component 112) hardware or both. In one or more embodiments, the amount of adjacent bits that can be included in the destination block 360 can be equal to the amount of data that can be transmitted to another FPI 354, received from another FPI 354, or both, during one clock cycle, etc., while the quantum program is executing.

[0065] As used herein, "amount of data" is a concept distinct from "number of data units". That is, a single data unit can contain a first amount of data, and multiple data units can together contain a larger second amount of data. For example, a "data unit" can be a bit, a nibble, or a byte, depending on how the communication fabric 140 is implemented.

[0066] As shown in FIG. 3, one or more segments of the communication path 242 of the communication fabric 140 can generally be represented as a "cloud". It will be understood that one or more communication paths 242 can be at least partially wireless (e.g., spread over a network such as a LAN or WAN or both). That is, at least one or more segments of the communication path 242 can be intangible.

[0067] In addition to endpoints 352 and FPI 354, one or more communication paths 242 can also include one or more routing blocks 356, such as routing block 356 disposed within the "cloud" of FIG. 3. That is, one or more communication paths 242, such as each communication path 242, can extend from one endpoint 352 to another endpoint 352. One or more communication paths 242 can include a pair of FPI 354 and zero or more routing blocks 356. A routing block 356 can be a figurative (e.g., software-generated) block or a literal (e.g., identified by compile component 112) hardware or both. It is possible for a routing block 356 to be identified, or generated, or both to be performed for driving, or routing, or both data transfer between endpoints 352.

[0068] In one or more embodiments, a routing block can include a set of input and output registers, such as being interconnected by a multiplexer. Control or selection or both of the multiplexer can be managed by an array of hardware control words (e.g., a program) read from an array. This array can be configured when a quantum job request is received.

[0069] As shown in the figure, communication fabric 140 can include fewer routing blocks 356 than FPI 354 or endpoint 352 or both. That is, a single routing block 356 can serve any one or more of the FPIs 354 during the execution of a quantum program. Additionally or alternatively or both, communication path 242 can include two or more routing blocks 356. Further, any suitable number of routing blocks 356 can be included in the compiled communication fabric 140. Alternatively, one or more routing blocks 356, and in one or more cases, all routing blocks 356 can be omitted.

[0070] It will be appreciated that the number of endpoints 352, fabric port interfaces 354, or routing blocks 356, or combinations thereof, included in communication fabric 140 can be more or less than the number shown in FIG. 3 to be suitable for the execution of various quantum programs.

[0071] Furthermore, if a number or amount or both of hardware or software or both aspects are included in non-limiting system 100 / 100E, the number of any of the endpoints 352, fabric port interfaces 354, or routing blocks 356, or combinations thereof, that are present can be scalable. This scalability can take into account an increased number of control nodes (e.g., CPUs), an increased number of operation nodes (e.g., correlated with an increased number of qubits employed in a quantum program), or an increased number of data transfers scheduled by compile component 112 during any particular time interval during the execution of a quantum program (e.g., due to any of an increased number of control nodes, operation nodes, or qubits employed, or combinations thereof). It will be appreciated that this scheduling will be described in detail below.

[0072] Referring again briefly to FIGS. 1 and 2, one or more control nodes, operation nodes, quantum program implementation systems 102, or other classical systems or quantum systems or both, or combinations thereof, communicatively coupled to the non-limiting system 100 / 100E, in connection with one or more software applications, programs, or codes, or combinations thereof, can be installed, or otherwise input, or both, to facilitate the identification or generation or both of one or more software aspects of the communication fabric 140 by the compile component 112. That is, an entity can facilitate the compilation of the communication fabric 140 by providing one or more software applications, programs, or codes, or combinations thereof, employed by the compile component 112. Alternatively or additionally or both, the quantum program implementation system 102 or the compile component 112 or both can facilitate the provision of one or more software applications, programs, or codes, or combinations thereof, employed by the compile component 112.

[0073] Additionally, alternatively, or both, one or more physical hardware components, such as routers, servers, cables, routing boxes, custom hardware interfaces, or the like, or combinations thereof, are provided, installed, or both, between one or more control nodes, operation nodes, quantum program implementation systems 102, or other classical systems or quantum systems or both, or combinations thereof, that are communicatively coupled to the non-limiting system 100 / 100E to facilitate the identification or generation or both of one or more hardware aspects of the communication fabric 140 by the compilation component 112. That is, the entity can facilitate the compilation of the communication fabric 140 by providing, installing, or both, one or more hardware components employed by the compilation component 112. Additionally, alternatively, or both, the quantum program implementation system 102 or the compilation component 112 or both can facilitate the provision or installation or both of one or more hardware components employed by the compilation component 112.

[0074] Referring to FIGS. 4 and 5, the connection topologies on the sides of the aforementioned software or hardware or both paths can take various different forms. As described above, the connection topology for the compiled communication fabric can be realized as hardware or software or both. For example, the connection topology can depend on the quantum program being executed, or the hardware side or software side or both (e.g., connecting one or more control nodes and one or more operation nodes) that the control node or operation node or both can access, or a combination thereof. One or more connection topologies can be combined within a single communication fabric, or different communication fabrics can include different connection topologies, or both are possible.

[0075] As shown in FIG. 4, an exemplary connection topology 400 can include a plurality of node blocks 462 each connected to other node blocks 462 by a common connection 464. It will be understood that the connection 464 can include a plurality of communication paths therethrough. Each node block 462 (e.g., each including an endpoint 452 and an FPI 454) can include a plurality of nodes 460 each connected to a common routing block 456. Each common routing block 456 of the node blocks 462 can be a routing block of the common connection 464 and can be connected to the common connection 464. The common connection 464 can include each endpoint, FPI, and routing block.

[0076] Alternatively, as shown in FIG. 5, an exemplary connection topology 500 can include a plurality of node blocks 562 each including one or more nodes. Each node block 562 can include, be connected to, or both, each routing block 556 for the node block 562. A plurality of couplings 564 can be included in the connection topology 500. One or more couplings 564 can be connected to one or more other couplings 564, such as at each routing block. In the representation at 500 of FIG. 5, each coupling 564 is directly connected to a pair of node blocks 562 and indirectly connected to other node blocks 562 via one or more other couplings 564.

[0077] In contrast, as also shown in FIG. 5, an exemplary connection topology 580 can omit couplings. Instead, it can include a plurality of node blocks 590 each including a routing block 586. The plurality of node blocks 590 can be connected in a ring. That is, each routing block 586 can be directly connected to two adjacent routing blocks 586.

[0078] Briefly referring generally to FIGS. 2-5, the interconnected functionality of aspects of the combined architecture (e.g., endpoints, fabric port interfaces, or routing blocks, or combinations thereof) is described. Data transfers (e.g., one or more data units) can be registered upon receipt at an endpoint (e.g., as an input to or output from a CPU, an expander, or each quantum processor, or combinations thereof). The compile component 112 can verify that the timing of the registration conforms to the quantum program execution schedule, or to the clock cycles of the quantum program, or both. The quantum program implementation system 102, the execution component 118, or the quantum system 101, or combinations thereof, can drive the data transfer in the appropriate direction (e.g., to a CPU, an expander, a quantum processor, a fabric port interface, a routing block, or the like, or combinations thereof) from one endpoint to the next destination endpoint according to the quantum program execution schedule.

[0079] Referring now to FIG. 6, a quantum program execution schedule 600 can be compiled by a compile component 112. That is, in order to provide a more efficient communication fabric 140, the compile component 112 can also compile one or more data parameters of data that has not yet been determined and is to be transferred along the identified communication paths. The compiled one or more data parameters can include a specific number of data units (e.g., per data transfer), or the maximum size of the data (e.g., the total number of bits or other units included in the number of data units) transferred between pairs of nodes (e.g., control nodes or operation nodes or both), or a combination thereof. The maximum size of the data can be determined as the maximum value transferred on each communication path at any one instant during the complete execution of the quantum program, for any one clock cycle, or for any one quantum task, or a combination thereof. The compile component 112 can compile one or more data parameters related to different quantum tasks or clock cycles or both of the quantum program.

[0080] In fact, considering one or more data parameters, the number of data units does not change during the execution of the quantum program, but only the value held in the data units (e.g., contained in the bits) changes depending on what data is being transferred. For example, during the execution of the quantum program, the data value can be determined by, for example, quantum bit measurement results or decision information or both from a control node regarding the implementation of a quantum gate, etc.

[0081] The compile component 112 can also compile scheduling instructions that include the number of data units and the maximum data size (e.g., using one or more data parameters) for the destination of data that has not yet been determined. In other words, the compile component 112 can compile one or more data parameters related to data movement, including the number of data units, the maximum data size, or the destination of the data, or a combination thereof, such that these data parameters can all be static during the execution of the quantum program, while only the content of the data can change during execution. That is, before the execution of the quantum program, it can be determined what information to pass, where the information goes, and how to pass the data, but when the quantum program is being executed, the content (e.g., value) of the data (e.g., data bits) being transferred can change dynamically.

[0082] For example, a quantum program such as quantum program 602 can include a plurality of quantum tasks that are executed at a plurality of operation nodes. The quantum tasks can have a specific order in which they are executed. One or more quantum tasks may take longer than other quantum tasks. One or more quantum tasks can be executed in parallel with other quantum tasks. One or more quantum tasks may not be executable until one or more other quantum tasks have been executed first, or started, or both. This order of the quantum tasks executed at each operation node can be scheduled by the compile component 112 before the execution of the quantum program 602, such as after the non-limiting system 100 / 100E receives each quantum job request (e.g., quantum job request 109). Additionally or alternatively or both, after the initialization of the execution of each quantum program, but before the execution of one or more specific quantum tasks, one or more quantum tasks can be scheduled by the compile component 112.

[0083] It will be appreciated that scheduling one or more quantum tasks can include scheduling one or more data routes (e.g., along one or more communication paths) of data not yet determined to be employed by the one or more quantum tasks by the compile component 112. Scheduling one or more quantum tasks can also include scheduling one or more data parameters of data not yet determined to be transferred along the one or more data routes. These operations can be completed together, or simultaneously, or both. It will be appreciated that it is possible for the compile component 112 to utilize one or more data parameters to schedule one or more data routes, or vice versa, or both.

[0084] Referring to FIG. 6, for a quantum program 602, a partial representation of a schedule 600 that can be compiled by a compile component such as compile component 112 is schematically shown. Each communication fabric 640 can communicatively connect a control node 604A, an operation node 620A, and an operation node 620B. Prior to the execution of the quantum program 602, among other things, the number of data blocks, the maximum data size, the destination, and the communication path (not specifically shown) can be compiled during a plurality of clock cycles I-V. It will be appreciated that the quantum program 602 can include a plurality of quantum tasks that may each require one or more clock cycles to execute, that different operation nodes can execute different quantum tasks at different times, or that an operation node can execute one or more quantum tasks together, or a combination thereof.

[0085] For example, in clock cycle I, for the transfer of a total of eight data units 662 (e.g., similar to the data units 362 in FIG. 3), the communication path can be compiled (e.g., via the communication fabric 640). For each compilation component such as the compilation component 112, for each communication path, the maximum data size for each data transfer can be determined and compiled.

[0086] In one example, for the transfer along a common communication path (or segment of a communication path) that can extend from the control node 604A to a routing block (not shown) of the communication fabric 640 in relation to clock cycle I, the maximum data sizes of data units 662A and 662B (e.g., similar to the data units 362 in FIG. 3) can be determined. In one example, for the transfer along separate communication paths (or segments of communication paths) that can extend from a routing block (not shown) to each of the operation nodes 602A and 602B, separate maximum data sizes can be determined.

[0087] In another example, for the transfer along separate communication paths (or segments of communication paths) that can extend from the control node 604A to each of the operation nodes 602A and 602B, such as when there is no at least one routing block common to the separate communication paths in relation to clock cycle II, separate maximum data sizes of data units 662C and 662D (e.g., similar to the data units 362 in FIG. 3) can be determined.

[0088] To implement the schematic schedule 600 shown in FIG. 6 and / or another schedule, and thus, for each quantum task and / or clock cycle of a quantum program (e.g., quantum program 602), and / or for each amount of data transferred between them, each compile component (e.g., compile component 112) can compile a data transfer list. The data transfer list can include a list of destination blocks (e.g., destination block 360 in FIG. 3) that includes representative data of a fabric number (FN), a length (LEN) of the transfer in terms of the number of data units (data unit 362 in FIG. 3), a source identifier (SID) and a source offset (SOFF) to the FPI transmit data block array of each communication fabric, and a destination identifier (DID) and a destination offset (DOFF) to the FPI receive data block array of each communication fabric.

[0089] As used herein, a transmit data block array can include all transmit data blocks of all FPIs of each communication fabric. Similarly, as used herein, a receive data block array can include all receive data blocks of all FPIs of each communication fabric. In one or more other embodiments, a transmit data block array and / or a receive data block array can each include fewer transmit data blocks and / or receive data blocks and / or both than all transmit data blocks and / or receive data blocks and / or both of all FPIs of each communication fabric.

[0090] For a single quantum task or clock cycle or both, an exemplary data transfer list is provided in Table I below. With respect to Table I, for each pair of communication fabrics FN-0 and FN-1 compiled by each compile component (e.g., compile component 112), four data transfers are included. Each transmission FPI is individually identified by a combination of FN and SID (e.g., (FN,SID)). The fact that transmission FPI(1,12) is supplied twice means that three transmission FPIs are included. In the case of transmission FPI(1,12), since LEN and SOFF are the same, the same data can be broadcast to two different destinations. If the underlying implementation can support broadcast, these two transfers can be executed with the same operation when appropriate. Each reception FPI is also individually identified by a combination of FN and DID (e.g., (FN,DID)). Three reception FPIs (0,1), (1,0), and (1,1) are included. Although reception FPI(1,0) is targeted twice, different data can be read into different destination blocks because the LEN field and the DOFF field are different.

[0091]

Table 1

[0092] Referring again briefly to FIGS. 1 and 6, in one or more embodiments, the compile component 112 can employ a compile algorithm 113 that includes one or more instructions for compiling the one or more communication instructions described above (e.g., for compiling a communication fabric). The operations performed, directed, or instructed by the compile algorithm 113, or a combination thereof, can include compiling one or more communication paths, compiling one or more data parameters, or scheduling one or more data movements, or a combination thereof, with respect to one or more quantum tasks. It will be understood that the compile algorithm 113, or the instructions for implementing the compile algorithm 113, or both, can be stored in the compile component 112, the memory 104, or an external memory / storage, or a combination thereof, or can be accessible by the compile component 112 or the non-limiting system 100 or both via a related cloud computing environment, a WAN, a LAN, or the like, or a combination thereof.

[0093] An exemplary partial compile algorithm 113A is shown in FIG. 6. In one or more embodiments of the non-limiting system 100 / 100E, the compile algorithm 113A can be employed instead of the compile algorithm 113 shown in FIG. 1. That is, with respect to one or more of the descriptions provided (or to be provided) herein, the compile algorithms 113 and 113A can be interchangeable with each other. One description or disclosed aspect, or both, of the compile algorithms 113 and 113A can apply to the other of the compile algorithms 113 and 113A herein.

[0094] The compile algorithm 113A can include one or more instructions for generating, or fulfilling, or both, a route array using one or more data transfer lists that can be based on one or more data parameters. That is, based on one or more data parameters, it is possible to at least partially identify a compiled communication path 242 employed by the non-limiting system 100, or schedule a particular data transfer to occur along the compiled communication path 242, or both. As shown above, the compile component 112 can trigger one or more signals, such as a ping, between various control nodes or operational nodes or both of the non-limiting system 100 / 100E, for example, to discover which paths and latencies through each communication fabric are available. Based on the one or more received signals, pings, metadata, or other results, or combinations thereof, the compile component 112 can identify a communication path that can minimize, or avoid, or both, data concentration points or data intensive points or both between various control nodes or operational nodes or both.

[0095] To satisfy the routing array (e.g., instruction sequencer or ISEQ array), the compile algorithm 113A can include one or more instructions for identifying segments of communication paths between sources (e.g., control nodes or operation nodes or both) and destinations (e.g., control nodes or operation nodes or both) for various quantum tasks that each quantum program (e.g., quantum program based on quantum job request 109 or quantum program 602 or both) is included in. The compile algorithm 113A can further include scheduling one or more routes along the identified communication paths for one or more data transfers (e.g., steps) included in the various quantum tasks. That is, the communication instructions and communication paths utilized can be compiled by the compile component 112 employing a compile algorithm (e.g., compile algorithm 113 or 113A).

[0096] In addition, to satisfy the path (ISEQ) array, compilation algorithm 113A can include one or more indicators, or one or more instructions to follow one or more indicators, or both, to schedule one or more data transfers. That is, one or more indicators can be created to inspect the scheduled output to measure how well the routing resources are utilized. One example can be to check, for each routing resource, the ratio of unused time slots to used time slots, and compare this ratio to an ideal case. Since hardware latency can cause gaps in the instruction sequence of the routing resources, "ideal" does not necessarily mean that each time slot of the routing resources is used. Rather, "ideal" can be defined as calculating the minimum time required to route one path from the group of the longest routes through the empty system, and then adding that time as many times as the number of paths within the group of the longest routes. In an ideal case, within the gaps left by the group of the longest routes, all other paths (i.e., shorter paths) can be scheduled, so no extra time is required for other paths. The ratio of unused slots in the ideal case to the actual case can be considered during the compression of each ISEQ array.

[0097] In different implementations, such as those employing a hardware packet switch, different indicators can be developed. As an example, different indicators can include a comparison of the ratio of complete routes of packets to the actual transfer of data that may include packet stalls, such as when there are conflicts at the input or output ports of the routing elements.

[0098] As noted above with respect to the metrics, for example, note that the identified longest communication path can be routed first in order to allow gaps from propagation latency to be filled, such as by routing shorter paths. In one or more embodiments, the longest routed data transfer (e.g., step) or the longest communication path or both can be employed to determine the clock cycles employed by the compile component 112, or by the non-limiting system 100, or both. That is, the communication fabric 140 can be compiled by the compile component 112 to operate with a single clock source. That is, the same frequency can be used, but different clock phases can be permitted. This can prevent the latency of asynchronous data transfer crossings. In other embodiments, asynchronous transfers between routing resources can be implemented and supported, but may increase the scheduling complexity.

[0099] The compile component 112 can further employ one or more data parameters, and one or more of the aforementioned signals, metadata, or other results received (e.g., during the identification of one or more communication paths), or combinations thereof, so as to be included in the performance of the compile algorithm 113A. The compile component 112 can further determine the transfer times of one or more different amounts of data in one or both directions along one or more communication paths by one or more instructions provided via the compile algorithm 113A.

[0100] Here, one or more additional features of the compilation component 112 will be described, which may or may not be commanded by the compilation algorithm 113 / 113A, or both. For example, in one or more cases, a broadcast function may be added to the communication fabric 140. As used herein, a broadcast can include transmitting a copy of the same source data to a plurality of destinations, such as to a plurality of nodes or to a plurality of endpoints. That is, in such cases, if the entries of each data transfer list include the same FPN, LEN, SID, and SOFF, such identical entries can be grouped together as a broadcast operation.

[0101] In one or more embodiments, if the implementation of the communication fabric supports the broadcast function, the format of each data transfer list can be extended to support representing one source and a plurality of destinations. Alternatively, the data transfer list can represent a route from a single source to a single destination, and the processing of the data transfer list can enable sets and combinations of routes that include the same source but different destinations for the broadcasted paths. If the communication fabric does not support the broadcast function, a path including one source and a plurality of destinations that appears in the data transfer list can be decomposed into routes of individual paths each including a single source and destination. That is, the broadcast function can be considered as an improvement to the data transfer list, or to the implementation of the communication fabric, or both, such as to reduce the overall propagation latency when using the communication fabric during the execution of a quantum program.

[0102] The compile component 112 can provide the compiled communication fabric 140 to the execution component 116 for the implementation of the determined quantum circuit via one or more compiled communication paths by the execution component 116. The compiled communication fabric 140 can include the aforementioned one or more communication paths, data parameters, or data movement schedules, or a combination thereof. The compile component 112 can be communicatively coupled to the execution component 116, directly or indirectly or both, to facilitate the provision of the compiled communication fabric 140.

[0103] Referring now to one or more additional components of the non-limiting system 100 / 100E, the execution component 116 can direct the initialization, instruction, or implementation, or a combination thereof, of the quantum job request 109 using the communication fabric 140 compiled in the quantum system 101.

[0104] The quantum system 101 can execute the quantum job request 109 based at least in part on the compiled communication fabric 140. That is, the quantum system 101 (e.g., one or more operation nodes) can execute the quantum job request 109 on the qubits in the quantum system 101 based on one or more compiled communication instructions of the communication fabric 140 as compiled by the non-limiting system 100 or the compile component 112 or both. The quantum system 101 can provide one or more quantum measurement results 117 to the quantum program implementation system 102, or to the classical portion of the non-limiting system 100 (e.g., one or more control nodes), or both. After the operation of the complete quantum program, the non-limiting system 100 can receive, download, stream, or otherwise obtain one or more final quantum measurement results 117 from the quantum system 101, or execute a combination thereof.

[0105] The quantum program implementation system 102 can also include an output component 118. One or more quantum job results 119 can be output from the non-limiting system 100 via the output component 118. The one or more quantum job results 119 can include one or more quantum measurement results 117, or can be at least partially based on one or more quantum measurement results 117, or both, or can respond to a quantum job request 109 from a requesting entity, or a combination thereof.

[0106] Referring now to FIGS. 7 and 8, these figures together show a flow diagram of an exemplary non-limiting computer implementation method 700 that can facilitate the operation of a quantum circuit on a set of qubits by compiling one or more communication instructions according to one or more embodiments described herein. Repetition of the description of similar elements or processes or both employed in each embodiment is omitted for brevity.

[0107] Referring first to 702 in FIG. 7, the computer implementation method 700 can include obtaining a quantum job request (e.g., quantum job request 109) by a system operably coupled to a processor (e.g., processor 106, a quantum processor, or a similar processor, or a combination thereof) (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or quantum job component 108, or a combination thereof).

[0108] At 704, computer-implemented method 700 can include determining a quantum program (e.g., quantum program 602) or a quantum circuit or both, by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or determination component 110, or a combination thereof), to at least partially implement a quantum job request (e.g., quantum job request 109).

[0109] At 706, computer-implemented method 700 can include determining a communication fabric (e.g., communication fabric 140), by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compile component 112, or a combination thereof), that includes one or more communication instructions. This compilation can include using a compilation algorithm (e.g., compilation algorithm 113 or 113A or both).

[0110] The particular processes included in this compilation are shown to occur in continuation triangle 708, which is described in more detail in FIG. 8. In one or more embodiments, all processes embodied by continuation triangle 708 (e.g., as shown in FIG. 8) can be executed. In one or more other embodiments, one or more of the processes embodied by continuation triangle 708 can be avoided, or omitted, or both.

[0111] At 710, the computer-implemented method 700 can include providing a communication fabric (e.g., communication fabric 140) by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof) for execution of a quantum program (e.g., quantum program 602) (e.g., to non-limiting system 100, 100E, quantum program implementation system 102, or execution component 116, or a combination thereof, etc.).

[0112] At 712, the computer-implemented method 700 can include executing a quantum job request (e.g., quantum job request 109) using a communication fabric (e.g., communication fabric 140) by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, execution component 116, quantum system 101, quantum operation component 103, or quantum processor 105, or a combination thereof).

[0113] In one or more embodiments, execution can include one or more of the following operations: data transfer (e.g., communication instructions, quantum measurement results, quantum gate parameters, or the like, or combinations thereof) can be received at an endpoint (e.g., endpoint 352); the endpoint (e.g., endpoint 352) can register the data transfer; the data transfer can be driven in an appropriate direction (e.g., by quantum program implementation system 102, execution component 118, or quantum system 101, or combinations thereof); one or more quantum gates can be implemented on one or more qubits, such as by manipulating one or more physical-level pulses (e.g., by quantum system 101, quantum operation component 103, or quantum processor 105, or combinations thereof); or one or more quantum measurement results (e.g., quantum measurement result 117) can be output by a quantum system (e.g., quantum system 101, quantum operation component 103, or quantum processor 105, or combinations thereof). One or more of these operations can be repeated, such as according to one or more iterations of execution of one or more portions of a quantum circuit (e.g., by quantum system 101, quantum operation component 103, or quantum processor 105, or combinations thereof).

[0114] In 714, computer-implemented method 700 can include outputting, by a system (e.g., by non-limiting systems 100, 100E, quantum program implementation system 102, or output component 118, or combinations thereof), one or more quantum job results (e.g., quantum job result 119) to an entity such as a user entity.

[0115] Referring to FIG. 8, this figure shows an extension of the computer-implemented method 700 of FIG. 7, specifically showing aspects that can occur at the continuous triangle 708 of FIG. 7. These aspects can include a specific process of compiling a communication fabric (e.g., communication fabric 140), such as including the compilation of one or more communication instructions. One or more communication instructions can include one or more communication paths (e.g., communication path 242), one or more data transfer schedules, or one or more quantum task schedules, or a combination thereof.

[0116] At 802, the computer-implemented method 700 can include compiling one or more communication paths (e.g., communication path 242) by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof) for the transfer of data that has not yet been determined. For example, as shown in FIGS. 2 and 3, the communication fabric 140 can include one or more communication paths 242, such as a plurality of communication paths 242. The compilation at 802 can include one or more operations, such as the operations provided next at blocks 804, 806, 808, and 810. Data can be not yet determined in that one or more aspects of a quantum program, such as a particular instruction, measurement result, variational quantum parameter, or the like, or a combination thereof, have not yet been calculated when one or more communication paths are identified, generated, scheduled, or a combination thereof.

[0117] At 804, computer-implemented method 700 can include identifying, generating, or both, one or more endpoints (e.g., endpoint 352) by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof). The endpoints can be implemented by hardware, software, or both.

[0118] At 806, computer-implemented method 700 can include identifying, generating, or both, one or more FPIs (e.g., FPI 354) by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof). The FPIs can be implemented by hardware, software, or both.

[0119] At 808, computer-implemented method 700 can include identifying, generating, or both, one or more routing blocks (e.g., routing block 356) by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof). The routing blocks can be implemented by hardware, software, or both.

[0120] At 810, the computer-implemented method 700 can include identifying, generating, or both performing one or more communication paths (e.g., communication path 242), such as by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof), adopting, connecting, or both performing one or more endpoints, FPIs, or routing blocks, or a combination thereof (e.g., endpoint 352, FPI 354, or routing block 356, or a combination thereof). The communication path can be implemented by hardware or software or both.

[0121] At 812, the computer-implemented method 700 can include compiling one or more data parameters of data not yet determined (e.g., one or more data parameters regarding data movement, including the number of data units, maximum data size, or data transfer destination, or a combination thereof), by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof). The data can be not yet determined in that one or more aspects of one or more quantum programs, such as certain instructions, measurement results, variational quantum parameters, or the like, or a combination thereof, are not yet calculated when one or more communication paths are identified, generated, scheduled, or a combination thereof.

[0122] At 814, the computer-implemented method 700 can include scheduling one or more quantum tasks (e.g., of a related quantum program) that include one or more data movements (e.g., for execution of a quantum program) by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof). The scheduling at 814 can include one or more operations such as the operations provided next at blocks 816 and 818.

[0123] At 816, the computer-implemented method 700 can include generating one or more data transfer lists (e.g., the data transfer lists shown in Table I) by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof).

[0124] At 818, the computer-implemented method 700 can include scheduling one or more data routes for data that have not yet been determined (e.g., along one or more communication paths or one or more segments of a communication path, or both) by a system (e.g., by non-limiting system 100, 100E, quantum program implementation system 102, or compilation component 112, or a combination thereof).

[0125] Referring now to FIGS. 1 - 8 in combination, one or more embodiments described herein can integrate the disclosed content into practical applications. In fact, as described herein, one or more embodiments, which can take the form of a system, a computer - implemented method, or a computer program product, or a combination thereof, can be regarded as computerized tools that facilitate improved operation of quantum circuits for one or more qubits. Generally, one or more embodiments described herein can reduce the time or error, or both, resulting from the execution of a quantum program employing a quantum circuit. This is a useful practical application of a computer, especially considering the impact of time and error on the decoherence of the qubits employed, and thus can facilitate improved (e.g., enhanced or optimized, or both) operation of the qubits employed. These improvements can include an increase in the accuracy of the quantum results or an increase in the availability of the qubits employed, or both. Overall, such computerized tools can constitute specific tangible technological improvements in the field of quantum computing.

[0126] Furthermore, one or more embodiments described herein can control real - world devices based on the disclosed content. For example, one or more embodiments described herein can receive a quantum job request as an input and generate, as a first output, a compiled communication fabric that includes one or more compiled communication instructions for controlling the implementation of a quantum program as one or more physical operations, such as real - world physical pulses, on one or more qubits of a quantum system. One or more embodiments described herein can generate, as a second output, one or more quantum results in response to the execution of one or more physical operations on the real - world qubits of the quantum system.

[0127] In one or more embodiments, the non-limiting system 100 / 100E employing the quantum program implementation system 102 and the compile component 112 can improve (e.g., enhance, optimize, or both) the execution of a quantum program by compiling communication instructions. Accordingly, fast data transfer during the execution of a quantum program can be facilitated. That is, the compile component 112 can minimize, prevent, or both, the complex, time-consuming, or both, problems of quantum program implementation, such as the collection and distribution of data between a single central point or global shared memory or both. In this way, the compile component 112 can facilitate a hybrid classical / quantum system for minimizing, preventing, or both, the latency that may occur with such a single central point or global shared memory or both, even in the case of duplicate or parallel data transfers. This is at least partially due to the compile component 112 compiling one or more communication paths, data parameters, or quantum task schedules, or combinations thereof, prior to the execution of the quantum program.

[0128] Accordingly, the described subject matter can cause an improvement in the execution speed of jobs by a hybrid classical / quantum non-deterministic system 100 / 100E by employing a compilation component 112. For example, if there is a high demand for the execution of an increasing number of quantum programs that employ a quantum system 101, the use of a non-deterministic system 100 / 100E (e.g., including a quantum program implementation system 102 or a compilation component 112 or both) can result in facilitating the scaled execution of quantum programs. That is, by reducing the time or errors or both that occur during the execution of one or more quantum tasks to operate a quantum circuit on one or more qubits, a slower occurrence of decoherence of one or more qubits can allow additional quantum programs to be executed on the qubits.

[0129] Furthermore, it will be appreciated that a decrease in the operating time or the errors that occur or both can facilitate an improved (e.g., improved or optimized or both) function of the quantum system 101, or an improved (e.g., improved or optimized or both) quantum result provided by the operation via a compiled communication fabric 140 on the quantum system 101, or both. In one or more instances, these one or more improvements can at least partially result from a less occurrence of decoherence of such qubits during such execution due to a decrease in the time or errors or both that occur. This can in turn lead to a related decrease in the provision of new qubits by a quantum system having one or more qubits, and as a result, can lead to an improvement in the availability of the processing power of the quantum processor of the quantum system, at least partially due to the decreased provision of new qubits.

[0130] Furthermore, for example, without interleaving and scheduling data movement between cycles involving the transfer and analysis of quantum results, quantum gate instructions, or quantum parameters, or combinations thereof, the processing speeds of both classical and quantum resources of each hybrid classical / quantum system (e.g., non-limiting systems 100 / 100E) can be further improved. Thus, a non-limiting system 100 / 100E (e.g., including a quantum program implementation system 102 or a compile component 112 or both) can thereby facilitate an improvement in performance, an improvement in efficiency, a reduction in computational cost, or a combination thereof, associated with a quantum processing unit (e.g., a quantum processor 105 of a quantum system 101) that executes one or more quantum tasks according to a compiled communication fabric (e.g., a compiled communication fabric 140).

[0131] In summary, one or more of the foregoing embodiments can provide a system comprising a memory storing computer-executable components and a processor executing the computer-executable components stored in the memory, the computer-executable components including a compile component that compiles one or more communication paths between two or more nodes for the transfer of yet-to-be-determined data along one or more compiled communication paths.

[0132] This system can include one or more of the following aspects: (a) a compilation component further compiles one or more data parameters of data yet to be determined that are transferred along a compiled communication path, and the compiled one or more data parameters include the number of data units, the maximum size of the data, or a combination thereof; (b) the compilation component further employs the compiled one or more data parameters of the data to compile one or more communication paths; (c) a computer-executable component further includes an execution component that directs determined data along one or more communication paths to execute the operation of a quantum circuit for two or more qubits; (d) the computer-executable component further includes an interval setting component that commonly sets and triggers the same consecutive repeating time intervals at two or more of a plurality of nodes so as to align the execution at two or more of the plurality of nodes of one or more quantum gate operations; (e) the compilation component further determines the maximum predicted transfer time for the transmission and subsequent reception of data along one or more communication paths, and the interval setting component employs the maximum predicted transfer time as the length of the time interval; or (f) the compilation component compiles one or more communication paths without one or more central data collection points along the communication paths, or a combination thereof.

[0133] In summary, one or more of the foregoing embodiments can provide a computer-implemented method that includes compiling one or more communication paths between two or more nodes for the transfer of data yet to be determined along one or more compiled communication paths by a system operably coupled to a processor.

[0134] This method can include one or more of the following aspects, or a combination thereof: (a) the system compiles one or more data parameters of data yet to be determined that is to be transferred along a compiled communication path, where the compiled one or more data parameters include the number of data units, the maximum size of the data, or a combination thereof; (b) the system employs the compiled one or more data parameters of the data to compile one or more communication paths; (c) the system directs the determined data along one or more communication paths to perform the operation of a quantum circuit on two or more qubits; (d) the system commonly sets and triggers the same consecutive repeating time intervals at two or more of the plurality of nodes to align the execution at two or more of the plurality of nodes among the plurality of nodes of one or more quantum gate operations; (e) the system determines the maximum predicted transfer time of the transmission and subsequent reception of data along one or more communication paths, and the system employs the maximum predicted transfer time as the length of the time interval; or (f) the system compiles one or more communication paths without one or more central data collection points along the communication paths.

[0135] In summary, one or more of the foregoing embodiments can provide a computer program product that facilitates the control of data transfer between two or more nodes. This computer program product includes a computer-readable storage medium in which program instructions are embodied. These program instructions are executable by a processor and cause the processor to compile one or more communication paths between two or more nodes for the transfer of data yet to be determined along one or more compiled communication paths.

[0136] This computer program product can comprise one or more of the following aspects: (a) the program instructions are further executable by a processor to cause the processor to compile one or more data parameters of data that have not yet been determined and are to be transferred along a compiled communication path by the processor, and the compiled one or more data parameters include the number of data units, the maximum size of the data, or a combination thereof; (b) the program instructions are further executable by a processor to cause the processor to employ one or more compiled data parameters of data for compiling one or more communication paths; (c) the program instructions are further executable by a processor to cause the processor to direct determined data along one or more communication paths for performing the operation of a quantum circuit on two or more qubits; (d) the program instructions are further executable by a processor to cause the processor to commonly set and trigger, at two or more of the plurality of nodes, the same continuous and repeating time interval among the plurality of nodes so as to align the execution at two or more of the plurality of nodes of one or more quantum gate operations; or (e) the program instructions are further executable by a processor to cause the processor to determine the maximum predicted transfer time for the transmission and subsequent reception of data along one or more communication paths and to employ the maximum predicted transfer time as the length of the time of a time interval by the processor, or a combination of one or more of these aspects.

[0137] The advantages of such a system, computer program product, method, or combination thereof can be an improvement in the speed of quantum jobs, an improvement in the execution of quantum jobs, or both, and these improvements can be directly correlated with a decrease in the operating time of one or more associated quantum circuits implemented during such quantum jobs, or a decrease in the errors that occur. That is, a decrease in operating time or a decrease in the errors that occur, or both, can facilitate an improved (e.g., improved, optimized, or both) function of the associated quantum system, or an improved (e.g., improved, optimized, or both) quantum result provided by operations on the associated quantum system, or both. In one or more instances, these improvements can at least partially result from a lesser occurrence of decoherence of qubits during such operations due to a decrease in the time that elapses or a decrease in the errors that occur, or both.

[0138] Additionally or alternatively or both, the advantages of such a system, computer program product, method, or combination thereof can be the ability to reduce, or avoid, or both, bottlenecks or central data collection points, or both, during the execution of a quantum program that includes a plurality of quantum operations being performed. That is, when data is transferred between multiple nodes and one or more iterations of operation instructions, measurements, or results, or combinations thereof, and subsequent operation instructions are executed, the execution of the plurality of quantum operations can be improved (e.g., improved, optimized, or both can be done). For example, one or more parallel transfers of data can be performed more quickly due to the absence of, or reduction of, or both, bottlenecks or central data collection points, or both.

[0139] As an addition to, alternative to, or both, the advantages of such a system, computer program product, or method, or combination thereof, can be an improved (e.g., enhanced or optimized, or both) performance of such quantum operations, facilitated not only by faster transfer of data but also by faster and synchronized execution of such quantum operations. This synchronization can be facilitated during the execution of a quantum program that includes two or more quantum operations, without transfer of timing instructions, with or without data, along one or more compiled communication paths.

[0140] Referring now to FIG. 9, another embodiment of a non-limiting system is shown at 900. Like numbers are used to refer to like elements of the non-limiting system 100 of FIG. 1, where appropriate. Repetition of the description of like elements or processes or both employed in the embodiment of the non-limiting system 100 of FIG. 1 is omitted for brevity.

[0141] Referring to FIG. 9 (and FIGS. 10 - 13 as well), one or more embodiments described herein can include one or more systems, computer-implemented methods, devices, or computer program products, or combinations thereof, that facilitate implementing a universal time interval to improve the operation of a quantum circuit on one or more qubits. For example, FIG. 9 shows a block diagram of an exemplary non-limiting system 900 that facilitates implementing a universal time interval to improve the operation of a quantum circuit on one or more qubits.

[0142] It will be understood that the following description refers to the operation of a single quantum program from a single quantum job request. However, it will also be understood that one or more of the processes described herein can be scalable. For example, as will be understood below, the quantum program implementation system 102 can implement one or more interval boundaries 942, execute one or more quantum programs, or both, each of which is described in detail below. These various levels of scaling can enable a faster, more efficient, or less error-prone, or a combination thereof, execution of a quantum program, at least in part due to a reduced decoherence or decoherence time or both of the correlation of one or more qubits employed to execute the quantum program. As used herein, an interval boundary refers to a continuously repeating universal time interval implemented at two or more nodes (e.g., a control node or an operation node or both).

[0143] In one or more embodiments, the non-limiting system 900 can be a hybrid system and thus can include one or more classical systems such as a quantum program implementation system 902, and one or more quantum systems such as a quantum system 901. In one or more other embodiments, the quantum system 901 can be separated from the non-limiting system 900 but can function in combination with the non-limiting system 900. In one or more embodiments, the quantum system 901 can comprise one or more quantum components such as a quantum operation component 903 and a quantum processor 905. The description provided above with respect to the quantum system 101 can also apply to the quantum system 901. Similarly, the descriptions provided above with respect to the quantum operation component 103 and the quantum processor 105 can also apply to the quantum operation component 903 and the quantum processor 905, respectively.

[0144] Referring to the classical portion of the non-limiting system 900, the description provided above regarding the general aspects of the quantum program implementation system 102 can also apply to the quantum program implementation system 902. In one or more embodiments, the quantum program implementation system 902 can include a processor 906, a computer-readable memory 904 operably connected to the processor 906, or both. The descriptions provided above regarding the processor 106 and the computer-readable memory 104 can also apply to the processor 906 and the computer-readable memory 904, respectively. The quantum program implementation system 902 or its components or both described herein can be communicatively, electrically, operably, optically, or otherwise, or in combination, coupled to each other via a bus 924 to perform the functions of the non-limiting system 900, the quantum program implementation system 902, or any of their components, or any components coupled thereto, or both, or a combination thereof.

[0145] Typically, the quantum program implementation system 902 can facilitate synchronization during the execution of a quantum program for two or more qubits by implementing universal interval boundaries. Typically, the quantum program implementation system 902 can also facilitate executing a quantum job request. That is, the execution component can direct the data transfer and operations of the quantum task in relation to a quantum circuit for two or more qubits according to the universal interval boundaries. The output component can output one or more quantum job results in response to the quantum job request.

[0146] Referring now to the quantum program implementation system 902 in more detail, in one or more embodiments, the quantum program implementation system 902 can include a quantum job component 908, a decision component 910, an interval boundary implementation component 914, an execution component 916, or an output component 918, or a combination thereof.

[0147] The quantum job component 908 can obtain a quantum job request 909 from a requesting entity by receiving, downloading, streaming, or otherwise acquiring it, or a combination thereof. The non-limiting system 900 can execute one or more quantum programs requested to be implemented in the quantum job request 909 using the quantum program implementation system 902 and the quantum system 901. In one or more instances, the quantum job request 909 can include one or more instructions regarding one or more specific quantum circuits to be employed.

[0148] In connection with the one or more requested quantum programs, the determination component 910 can determine one or more quantum circuits for implementing the one or more quantum programs. This determination can include searching one or more databases that are internal or external or both to the quantum program implementation system 902 or the non-limiting system 900 or both. In one or more instances, the determination component 910 can include a database portion for storing one or more compiled quantum circuits.

[0149] The quantum program implementation system 902 can further include a scheduler / compiler (not shown). The scheduler / compiler can function to schedule data transfers or quantum tasks or both, such as by performing stepwise scheduling during the execution of a quantum program.

[0150] In current systems executing quantum programs, such as hybrid classical / quantum systems, during the operation of one or more quantum circuits, multiple such data transfers or quantum tasks or both can typically be initiated, or executed, or both. These data transfers or quantum tasks or both may each require a variable amount of time or different amounts of time or both to complete. Thus, the delay of the completion of one quantum task or data transfer or both relative to the completion of one or more other quantum tasks or data transfers or both can reduce the synchronization between two or more nodes (e.g., classical nodes or operational nodes or both), or completely cause a loss of synchronization, or both. In one or more instances, the loss of synchronization may be caused by a bottleneck, choke point, or data collection point, or a combination thereof, between the nodes (e.g., via software or hardware or both), thereby limiting the speed of data transfer.

[0151] In fact, since the CPU can typically be a classical resource, data transfer can occur at various times during the execution of a quantum program using complex scheduling. Furthermore, conventional communication and management techniques for multiple CPUs may not be able to transfer, analyze, or determine data, or a combination thereof, at a scale that takes into account the decoherence of standard qubits. Additionally, when the current system schedules one or more data transfers or quantum tasks, or both, during the execution of a quantum program, it is possible for scheduling-related data or metadata, or both, to be provided along with the transfer of data or communication instructions, or both, which complicates the problem. That is, timing data or metadata, or both, may increase the data transfer size, or decrease the speed of the associated data transfer, or both. Furthermore, if synchronization is lost between nodes and the timings do not match, quantum tasks may not be properly executed, such as introducing errors or failures, or both, or completely causing the experiment to collapse, or a combination thereof. These problems may worsen when scaling to quantum programs that act on a large number of qubits.

[0152] To account for one or more of these issues, one or more embodiments herein can implement an interval boundary 942 that enables alignment of data transfers to the implemented interval boundary 942, quantum tasks, or multi-card operations (e.g., DAC measurement tones, ADC capture windows, or the like, or combinations thereof), or combinations thereof (e.g., by quantum program implementation system 902 or interval boundary implementation component 914 or both). That is, the interval boundary 942 can be employed by non-limiting system 900 (e.g., by execution component 916) to schedule data transfers or implement such data, such as implementing multi-qubit gates at two or more operation nodes, or both.

[0153] Indeed, in this way, synchronization points for control nodes or operation nodes or both (e.g., in successive repeating interval boundary iterations) can be provided without incurring overhead during execution of the relevant quantum program. Further, since the next interval boundary iteration can provide alignment, one or more inaccuracies can be tolerated in CPU execution within an interval (e.g., between a pair of interval boundary iterations). With respect to initial scheduling of quantum tasks for each program, the interval boundary iteration can provide the scheduler / compiler with a "natural" position for aligning "barrier" gates. As used herein, a "barrier" gate is a time instance at which a quantum program can involve alignment between individual quantum operations or subsequences of quantum operations such that the individual quantum operations or subsequences of quantum operations can be executed in a time-aligned manner across two or more different qubit controllers. Additionally, in one or more embodiments, an extended non-limiting system 900E (FIG. 10) can include one or more processors that include a hardware sequencer instead of a programmable CPU to control quantum gate operations.

[0154] In connection with implementing the interval boundary 942, the description herein first generally refers to the interval boundary implementation component 914. First, the interval boundary implementation component 914 can facilitate the determination of one or more periods that can elapse between the transfer or operation or both of the data of one or more quantum tasks. The interval boundary implementation component 914 can use this period information to implement a universal interval boundary 942 that continuously repeats at two or more nodes (e.g., control nodes or operation nodes or both) of the non-limiting system 900. Below, one or more functions performed by the interval boundary implementation component 914, the interval boundary 942 that can be implemented, and the control nodes or operation nodes or both at which the interval boundary 942 can be implemented will be described in detail.

[0155] During the execution of a quantum program on two or more qubits, node synchronization can be facilitated by the interval boundary implementation component 914. As used herein, a node (e.g., a control node or an operation node) can include one or more machines. The one or more machines can be a computing device, a general-purpose computer, a dedicated computer, a quantum computing device (e.g., a quantum computer), a hardware sequencer, a tablet computing device, a handheld device, a server-class computing machine or database or both, a laptop computer, a notebook computer, a desktop computer, a mobile phone, a smartphone, a consumer device or consumer appliance or both, an industrial device or commercial device or both, a digital assistant, an Internet-enabled multimedia phone, or another type of device, or one or more of a combination thereof.

[0156] In one or more embodiments, the extended non-limiting system 900E can include one or more classical resources in addition to the quantum program implementation system 902. The quantum program implementation system 902 can be embodied by such classical resources, or embody such classical resources, or both, and can be included in one or more control nodes, or separated from one or more control nodes, or both. That is, the control nodes can be classical resources that can provide scheduling, instructions, data analysis, measurement analysis, optimization of quantum parameters, or the like, or a combination thereof. These control nodes can be distributed relative to each other locally, or non-centrally, or both, or any two or more control nodes can be communicatively connected to each other, or both. In one or more other embodiments, it will be understood that one or more control nodes can be quantum resources, or can include one or more quantum components, or both.

[0157] Furthermore, in one or more embodiments, the extended non-limiting system 900E can include one or more quantum resources in addition to the quantum system 901. The quantum system 901 can include one or more operation nodes. The operation nodes can be quantum resources that can perform one or more quantum tasks, such as pulse generation, waveform generation, quantum measurement, or other functions related to or including one or more qubits, or a combination thereof. The operation nodes can be distributed relative to each other locally, non-centrally, or both, or any two or more operation nodes can be communicatively connected to each other, or both. In one or more other embodiments, it will be understood that one or more operation nodes can be quantum resources, or can include one or more quantum components, or both. Additionally or alternatively or both, it will be understood that one or more operation nodes can provide one or more of the functions of the control nodes listed above, or one or more control nodes can provide one or more of the functions of the operation nodes listed above, or both.

[0158] To implement an interval boundary (e.g., interval boundary 942), the interval boundary implementation component 914 can first determine the longest period that is likely, estimated, calculated, or a combination thereof, to be repeatedly consecutive at two or more nodes. That is, one or more decision parameters can be implemented, by default, selectively, or both, in the interval boundary implementation component 914 to determine on what criteria the longest period is based. When one or more decision parameters are implemented selectively, such selective implementation can be provided by an entity. In one embodiment, the entity can implement one or more decision parameters via a communication device or any suitable communication connection or both to the interval boundary component 914 or the quantum program implementation system 902 or both.

[0159] As shown, the longest period can have one or more different criteria. In one or more embodiments, the longest period can be based on the longest data transfer time in any direction between any two (or more) nodes (e.g., classical nodes or operational nodes or both). In one or more embodiments, the longest period can be based on the longest data transfer and return data transfer between any two (or more) nodes (e.g., classical nodes or operational nodes or both). In one or more embodiments, the longest period can be based on the longest task completion time of tasks based on a control node (e.g., scheduling, providing instructions, data analysis, measurement analysis, quantum parameter optimization, or the like, or a combination thereof). In one or more embodiments, the longest period can be based on the longest task completion time of tasks based on an operational node (e.g., pulse generation, waveform generation, quantum measurement, or other functions related to or including one or more qubits or both, or a combination thereof). In one or more embodiments, the longest period can be based on two or more of these criteria, such as based on the longest period across any combination of two or more of these criteria.

[0160] When the longest period is based on one or more of the various criteria described above, "based on" as performed by the interval boundary implementation component 914 can include calculating, or estimating, or both, one or more of an actual period, an estimated period, or a period with a provided probability of accuracy, or a combination thereof.

[0161] When determining the longest period, the interval boundary implementation component 914 can commonly set and trigger an interval boundary 942 having the determined longest period at two or more nodes (e.g., control nodes or operation nodes or both) of the non-limiting system 900 (or the extended non-limiting system 900E or both). In this way, the execution of multi-qubit quantum operations or data transfers or both at two or more nodes can be aligned.

[0162] The interval boundary implementation component 914 can employ the same clock source or execution time or both to implement the interval boundary 942. For example, the interval boundary implementation component 914 can commonly set and trigger the same interval boundary 942 at each node synchronized with each other. In one or more embodiments, the interval boundary implementation component 914 can set and trigger the interval boundary 942 at two or more nodes at the same instant. In one or more other embodiments, considering the use of a single clock source or execution time or both, the interval boundary 942 can be set or triggered or both at one or more nodes at a different instant than one or more other nodes, but the interval boundary 942 can still be implemented and synchronized in the same way. In one or more embodiments, this can apply as long as the different instants have a known repeatable relationship that does not change during execution.

[0163] Referring now to FIG. 10, the interval boundary 942 is further described in connection with an exemplary implementation. In FIG. 10, a quantum program schedule 1000 is shown in which a quantum program including a quantum circuit 1002 is implemented in connection with an enlarged version of the non-limiting system 900 (e.g., the enlarged non-limiting system 900E). The non-limiting system 900E may be employed in place of the non-limiting system 900 shown in FIG. 9. That is, for one or more of the descriptions provided (or to be provided) herein, the non-limiting systems 900 and 900E may be interchangeable with each other. One or both of the descriptions or disclosed aspects of the non-limiting systems 900 and 900E may apply to the other of the non-limiting systems 900 and 900E herein.

[0164] The enlarged non-limiting system 900E is shown to include a first control node including a first CPU 1 and a second control node including a second CPU 2. The enlarged non-limiting system 900E is also shown to include three operation nodes for directing one or more physical operations, such as pulses, to act on each qubit (e.g., Q[0], Q[1], and Q[2]), respectively. Each operation node may include an expander (EX), a waveform reproducer (WP), and a kernel / sorter (KD). As will be appreciated, the quantum program implementation system 902 may be included in (or include or both) the first control node or the second control node, or may be separate from or both of them. In one or more such embodiments, the CPU 1 or CPU 2 may be, may be included in, or both, the processor 906, or the processor 906 may be separate from the CPU 1 and CPU 2, or combinations thereof may be possible.

[0165] As shown in FIG. 10, the adopted interval boundary 942 can be implemented universally across a plurality of nodes, such as by a common trigger 1003 from an interval boundary implementation component 914. The interval boundary 942 can be implemented at each of the operating nodes and control nodes of the extended non-limiting system 900E at a plurality of continuously repeating common time points, referred to herein as iterations of the interval boundary. FIG. 10 shows iterations IB-1 through IB-8 of the interval boundary. In one or more other embodiments, additional iterations or fewer iterations may be adopted. Each adjacent pair of iterations of the interval boundary can represent the boundary of a single time interval, without one or more other waiting times, arbitration, or other periods, or combinations thereof. That is, one time interval can start when the next time interval starts (e.g., at a common interval boundary iteration or time point), and each time interval has the same length of time.

[0166] As shown above, the same length of time can be determined by the interval boundary implementation component 914 in relation to, for example, the longest period of data transfer or operation of a quantum task or both. As shown above, this longest period can be utilized as the minimum length of time between iterations of the interval boundary. If suitable for the quantum program being executed, the quantum program implementation system 902 or the interval boundary implementation component 914 or both can adopt a length of time between iterations of the interval boundary that is longer than the longest period. For example, a longer time interval can better conform to a quantum program that is executed based on the history before executing the quantum program or one or more quantum tasks or both included in the quantum program.

[0167] Referring further to FIG. 10, the quantum program schedule 1000 can include a plurality of quantum tasks such as quantum gate operations that are executed by operation nodes on qubits Q[0] and Q[1]. One or more of these quantum gate operations can be operations of multiple gates, such as the CNOT gate 1004. It will be understood that in FIG. 10, the execution of the quantum gates is shown merely as an example. For example, the X gate (inversion), H gate (Hadamard), R gate (reset),? gate (conditional reset), CNOT gate (controlled not), M gate (measurement), and Z, S, and T gates (other conditional cycles) represent an exemplary set of quantum gates that are specified from the user's test case or created to implement the user's test case. As exemplary gates, these examples are placeholders for the actual quantum gate sequence, are not shown in any particular order, and are not intended to imply the behavior of any particular qubit.

[0168] Starting from IB-1, for example, as physical pulse operations, quantum gate operations (e.g., Hadamard, X, and M gates) are performed on qubits Q[0] and Q[1]. Measured values qv[0], qv[1] (included in exinfo I) can be provided as data transfer to CPU1 by each of the operation nodes 1006 and 1008 (which operate on, control, or both operate on and control qubits Q[0] and Q[1]). During time interval II, CPU calculation A is executed by CPU1 and transferred to the operation nodes 1006 and 1008 as additional exemplary information I (exinfo I) for directing the execution of the combination of R gates on each of qubits Q[0] and Q[1]. That is, between the qubits involved in using the interval boundary 942, multi-qubit gates or gates executed together or both can be precisely synchronized. The operation nodes 1006 and 1008 can use the interval boundary 942 to align the execution of the combination of R gates at the next available interval boundary iteration, which is IB-3.

[0169] More generally, the interval boundary 942 can provide a system-wide alignment point that can be used to align the execution of such gates. Because the recurrence of the associated interval boundaries occurs / recurs regularly, the recurrence of the interval boundaries can be used by the operating nodes near the execution of multiple gates or coupled gates or both throughout the execution of the quantum program. This can apply even if the control flow path to reach the execution of multi-qubit gates meanders within the system, or includes non-deterministic elements such as CPU calculations, or both. Thus, during the execution of each quantum program, adjusted activity can be established, lost, regained again, or a combination thereof, many times.

[0170] With reference to time intervals III-VII, the advantages of implementing the interval boundary 942 to account for execution errors of one or more quantum programs are described in detail. For example, of course, since the length of the CPU execution time can vary (e.g., vary in different length instruction execution pipelines or code branches selected based on qubit measurement results), if the CPU execution ends between time intervals scheduled by a scheduler / compiler, etc., and different time intervals, the synchronization of the nodes may be affected. However, the interval boundary implementation component 914 can at least partially account for such problems by implementing interval boundaries such as the interval boundary 942. In fact, the use of the interval boundary 942 can account for quantum program execution errors caused by variations between CPU execution or data transfer or both, and enable the continuous operation of one or more quantum tasks or data transfer or both in the next iteration of the interval boundary. This is because the recurrence of the interval boundary can indicate the boundary of the non-deterministic function of the CPU. This boundary can enable the synchronized execution of multiple quantum nodes to be accurately re-established by predicting, or communicating, or both, by a scheduler / compiler, etc., which subsequent recurrence of the interval boundary to use as the next resynchronization point.

[0171] If the interval boundary 942 is not used, instead, a quantum program execution error may introduce unnecessary errors into the execution of the quantum task, or may cause a complete failure or a partial failure or both of the execution of the related quantum program, or both possibilities, which will be understood.

[0172] In one or more embodiments, to account for such errors, a non-limiting system 900E (e.g., a quantum program implementation system 902, an execution component 916, or a quantum system 901, or a combination thereof) can perform one or more checks to determine one or more errors before, during, or both before and during the execution of a quantum program. That is, the aforementioned bounded uncertainty can be error-checked by predicting which interval boundary iteration(s) should resume, or resume, or both, and by verifying the prediction in hardware. For example, for CPU calculation B, a hardware check can be performed before the execution of the related quantum program. If the execution takes too long and extends into the next interval boundary iteration (e.g., error I in FIG. 10), or if the execution ends too soon when it is expected to span additional time intervals (e.g., error II in FIG. 10), a quantum program execution error can be detected. Note that the error check can be performed in parallel with, after, or both after and in parallel with, the transfer of the CPU's results / calculations. For example, deviations from the expected time window can be logged and reported along with the experimental results so that, for example, the quantum program can recognize a failure in execution and respond accordingly, such as by discarding bad iterations from the overall results.

[0173] Referring now to the specific example of FIG. 10, an explanation regarding error I and error II is provided.

[0174] For example, with respect to a first type of error (e.g., Error I), CPU calculation B is shown in FIG. 10, and the execution of this CPU may be non-deterministic and may have a variable completion time 1012. In one case, if CPU calculation B can end at any of the completion times 1014 before IB-4 during time interval III, then at the next interval boundary iteration IB-4, exemplary information II-a can be transferred according to, for example, a scheduler / compiler. Further, for the aligned execution of the conditional reset gate 1018 and the multi-qubit CNOT gate 1004 at IB-5, in response to CPU calculation B, exemplary information II-a can be utilized by operation nodes 1006 and 1008. For example, the exemplary information II-a can include one or more instructions or quantum parameters or both.

[0175] Also, in an alternative case shown in FIG. 10, CPU calculation B may end at completion time 1020 after IB-4. That is, even if the length of the time interval can be calculated with respect to interval boundary 942 based on one or more execution periods provided by a scheduler / compiler, one or more estimated CPU calculation times may be unknown until the actual execution time or the actual CPU calculation time or both can change. As shown above, if the variable execution time of CPU calculation B is estimated to go outside the time interval of interval boundary 942 by a scheduler / compiler, such error checking may cause experimental errors.

[0176] Nevertheless, after implementation, due to the regular occurrence of interval boundaries, the CPU execution can span over two or more time intervals (e.g., spanning time intervals III and IV in FIG. 10). As shown in the figure, the transfer of exemplary information related to CPU calculation B (e.g., exinfo II-b) can be moved to time interval V. Similarly, the execution of conditional reset gate 1018 and multi-qubit CNOT gate 1004 can be moved to IB-6. These adjustments can be made due to the availability of the repeated interval boundaries that are continuously repeated. In fact, the use of interval boundary 942 can account for error I and enable the continuous operation of such gates 1018 and 1004 at the next interval boundary repetition (e.g., IB-6). If interval boundary 942 is not used, instead, error I may introduce unnecessary errors into the execution of the quantum task, or may cause a complete failure or a partial failure or both of the execution of the related quantum program, or both possibilities, which will be understood.

[0177] Additionally or alternatively or both, as shown above, if the CPU execution completion time naturally falls near (e.g., immediately before) the repetition of the interval boundary along time scale 1022, a quantum program execution error may be detected. In such cases, idle code or no-operation (no-op) code or both can be added to the execution of the quantum program by the related scheduler / compiler etc. to move the entire range of variability of the affected CPU execution to the next interval, such as when the check can be reliably executed.

[0178] For example, referring here to the CPU computation C in time intervals V - VII, this concept can be applied. If the CPU computation C completes at any completion point 1024 near IB - 7, this allows for only a minimum amount of time to perform the data transfer of the data related to the computation result. That is, the natural variability in the execution of the CPU can cause the transfer / computation to be provided at IB - 7 or delayed until IB - 8. Since this can cause variations in the application of gates that depend on the CPU results, each compilation component or compiler can handle this situation. For example, even when considering natural variability, in the CPU computation, the insertion of no - operation commands or other delay mechanisms can be employed so that the computation result exists only during one time interval. If interval boundaries are not used, precise adjustment down to the granularity of the CPU instructions can be used. However, the compiler can use interval boundaries to manage the execution plan and adopt a higher - precision window of the time intervals of the interval boundaries. For example, by moving the data transfer after the completion of the CPU computation C to the next time interval (e.g., time interval VII), error 2 can be prevented. Similar to error 1, error 2 can be detected by adopting one or more checks such as hardware checks in relation to the interval boundary 942.

[0179] Next, referring to FIG. 11, one or more additional concepts that employ the interval boundary 942 are described.

[0180] At IB - 2, when synchronization between nodes (e.g., operational nodes 1108 and 1110) is employed for multiple - gate nodes etc., one or more of such nodes can be advantageously delayed from acting on the received data until the iteration of the future (e.g., next) interval boundary occurs. For example, to enable the implementation of the combination of Hadamard gates and CNOT gates at each of Q[1] and Q[2], the Hadamard gate 1112 and CNOT gate 1114 implemented at Q[2] by the operational node 1110 can be delayed until IB - 2.

[0181] Referring to operation node 1106, an operation node that performs a sequence of quantum gates without adopting adjustments with other nodes can advantageously ignore the interval boundary 942, or function without adopting the interval boundary 942, or both. For example, the large sequence of quantum gates performed on qubit Q[0] in time intervals I-V in FIG. 11 can be performed without adopting the interval boundary 942. That is, qubit Q[0] can be operated independently of other qubits being adopted. Additionally or alternatively or both, if the execution of gates by one operation node, such as operation node 1106, can operate without inputs from other qubits (e.g., measurement results), inputs from control nodes (e.g., decision codes), or inputs from other operation nodes (e.g., synchronization with another qubit for a multi-qubit gate, etc.), or a combination thereof, this one operation node can ignore the interval boundary 942. This concept can also be applied within the execution stream in the case of bursts of gates that do not adopt external interactions, such as positions 1116 and 1118 related to the quantum circuit adopted by operation node 1108 in relation to qubit Q[1].

[0182] Briefly referring back to FIG. 9, one or more additional features of the quantum program implementation system 902 or the non-limiting system 900 / 900E or both are described in relation to one or more of their additional components, etc.

[0183] The interval boundary implementation component 914 can provide the interval boundary 942 to the execution component 916 after it is established, for implementing a determined quantum circuit in relation to one or more qubits. The interval boundary implementation component 914 can be communicatively coupled to the execution component 916, directly or indirectly or both, to facilitate the provision of the interval boundary 942. The execution component 916 can direct the initialization, instruction, or execution, or a combination thereof, of the quantum job request 909 using the interval boundary 942 in the quantum system 901 (e.g., at an operation node of the quantum system 901). That is, the execution component 916 can adopt a continuous repetition of the interval boundary (e.g., a continuous repetition point) of the interval boundary 942 for the continuous execution of quantum tasks for two or more qubits. In one or more cases, one or more of such quantum tasks can be multi-qubit quantum tasks. The execution component 916 can cause a quantum operation that starts simultaneously, such as a multi-qubit quantum task, on two or more qubits at a number of instances (e.g., two or more instances) of the continuous repetition point.

[0184] The quantum system 901 can execute the quantum job request 909 based at least in part on the interval boundary 942. That is, the quantum system 901 (e.g., one or more operation nodes) can execute the quantum job request 909 for two or more qubits in the quantum system 901. The quantum system 901 can provide one or more quantum measurement results 917 to the quantum program implementation system 902, or to the classical resources of the non-limiting system 900 / 900E (e.g., to one or more control nodes), or to both. After the operation of the quantum program, the non-limiting system 900 / 900E can receive, download, stream, or otherwise obtain one or more final quantum measurement results 917 from the quantum system 901, or execute a combination thereof.

[0185] The quantum program implementation system 902 can also include an output component 918. One or more quantum job results 919 can be output from the non-limiting system 900 / 900E via the output component 918. The one or more quantum job results 919 can include one or more quantum measurement results 917, or can be at least partially based on one or more quantum measurement results 917, or both, or can respond to a quantum job request 909 from a requesting entity, or a combination thereof.

[0186] Referring now to FIGS. 12 and 13, these figures together show a flowchart of an exemplary non-limiting computer implementation method 1200 that can facilitate the operation of a quantum circuit on a set of qubits by implementation of interval boundaries, in accordance with one or more embodiments described herein. Repetition of the description of similar elements or processes or both employed in each embodiment is omitted for brevity.

[0187] Referring initially to 1202 in FIG. 12, the computer implementation method 1200 can include obtaining a quantum job request (e.g., quantum job request 909) by a system (e.g., non-limiting system 900, 900E, quantum program implementation system 902, or quantum job request component 908, or a combination thereof) operably coupled to a processor (e.g., processor 906, a quantum processor, or a similar processor, or a combination thereof).

[0188] At 1204, the computer implementation method 1200 can include determining a quantum program or a quantum circuit or both to at least partially implement the quantum job request (e.g., quantum job request 909) by a system (e.g., non-limiting system 900, 900E, quantum program implementation system 902, or determination component 910, or a combination thereof).

[0189] At 1206, the computer-implemented method 1200 can include determining an interval boundary (e.g., interval boundary 942) by a system (e.g., by non-limiting system 900, 900E, quantum program implementation system 902, or interval boundary implementation component 914, or a combination thereof).

[0190] The specific processes included in this determination are shown to occur in the continuous triangle 1208 and are described in more detail in FIG. 13. In one or more embodiments, all processes embodied by the continuous triangle 1208 (e.g., as shown in FIG. 13) can be executed. In one or more other embodiments, one or more of the processes embodied by the continuous triangle 1208 can be avoided, or omitted, or both.

[0191] At 1210, the computer-implemented method 1200 can include providing an interval boundary (e.g., interval boundary 942) by a system (e.g., by non-limiting system 900, 900E, quantum program implementation system 902, or execution component 916, or a combination thereof) for the execution of a quantum program (e.g., to non-limiting system 900, 900E, quantum program implementation system 902, or execution component 916, or a combination thereof).

[0192] At 1212, the computer-implemented method 1200 can include commonly setting and triggering an interval boundary (e.g., interval boundary 942) by a system (e.g., by non-limiting system 900, 900E, quantum program implementation system 902, interval boundary implementation component 914, or execution component 916, or a combination thereof).

[0193] At 1214, the computer-implemented method 1200 can include executing a quantum job request (e.g., quantum job request 909) by a system (e.g., by non-limiting systems 900, 900E, quantum program implementation system 902, execution component 916, quantum system 901, quantum operation component 903, or quantum processor 905, or a combination thereof) using an interval boundary (e.g., interval boundary 942).

[0194] The specific processes included in this execution are shown to occur in the continuous triangle 1216 and are further described in detail in FIG. 13. In one or more embodiments, all processes embodied by the continuous triangle 1216 (e.g., as shown in FIG. 13) can be executed. In one or more other embodiments, one or more of the processes embodied by the continuous triangle 1216 can be avoided, or omitted, or both.

[0195] At 1218, the computer-implemented method 1200 can include outputting one or more quantum job results (e.g., quantum job result 919) to an entity such as a user entity by a system (e.g., by non-limiting systems 900, 900E, quantum program implementation system 902, or output component 918, or a combination thereof).

[0196] Referring to FIG. 13, this figure shows an extension of the computer-implemented method 1200 of FIG. 12, specifically showing aspects that can occur in the continuous triangle 1208 of FIG. 12. This aspect can include specific processes for determining an interval boundary (e.g., interval boundary 942), such as including the compilation of one or more communication instructions.

[0197] At 1302, the computer-implemented method 1200 can include determining, by a system (e.g., by non-limiting system 900, 900E, quantum program implementation system 902, or interval boundary implementation component 914, or a combination thereof), one or more periods that can elapse between (e.g., during the execution of a quantum program) the transfer and / or operation of data of one or more quantum tasks.

[0198] At 1304, the computer-implemented method 1200 can include determining, by a system (e.g., by non-limiting system 900, 900E, quantum program implementation system 902, or interval boundary implementation component 914, or a combination thereof), the longest of the one or more periods. This determination can include, by the system (e.g., by non-limiting system 900, 900E, quantum program implementation system 902, or interval boundary implementation component 914, or a combination thereof), implementing the longest period as the length of time of each of the successive repetitions of the implemented interval boundary (e.g., interval boundary 942).

[0199] At 1306, the computer-implemented method 1200 can include testing, by a system (e.g., by non-limiting system 900, 900E, quantum program implementation system 902, interval boundary implementation component 914, or quantum system 901, or a combination thereof), the length of the determined interval boundary. For example, one or more errors can be detected with respect to one or more data transfers and / or quantum tasks and / or both that are completed during the execution of a quantum program. The one or more errors can be related to the variable time of completion of the repetition of the interval boundary and / or near completion of the repetition of the interval boundary and / or both for one or more data transfers and / or quantum tasks and / or both that are completed during the execution of a quantum program.

[0200] Referring further to FIG. 13, this figure shows another extension of the computer-implemented method 1200 of FIG. 12, specifically showing aspects that can occur at the continuous triangle 1216 of FIG. 12. This aspect can include a specific process of executing a quantum job request (e.g., quantum job request 909). It will be understood that the processes embodied by blocks 1308, 1310, 1312, and 1314 can occur continuously. Additionally or alternatively or both, one or more of the processes embodied by blocks 1308, 1310, 1312, and 1314 can occur at least partially in parallel with other processes among the processes embodied by blocks 1308, 1310, 1312, and 1314.

[0201] At 1308, the computer-implemented method 1200 can include the system (e.g., by non-limiting systems 900, 900E, quantum program implementation system 902, scheduler / compiler, or execution component 916, or a combination thereof) performing one or more data transfers (e.g., communication instructions, quantum measurement results, quantum gate parameters, or the like, or a combination thereof), or (e.g., of one or more quantum tasks) scheduling, or both, aligned with the iteration of the interval boundary. For example, with the iteration of the interval boundary, one or more data transfers or scheduling or both can be received, transmitted, or operated on, or a combination thereof can be performed.

[0202] At 1310, the computer-implemented method 1200 can include the system (e.g., by non-limiting systems 900, 900E, quantum program implementation system 902, scheduler / compiler, or execution component 916, or a combination thereof) performing one or more multi-qubit gates or joint execution gates (e.g., of one or more quantum tasks), or both, aligned with the iteration of the interval boundary.

[0203] At 1312, the computer-implemented method 1200 can include resynchronizing one or more control nodes or operation nodes or both using interval boundaries (e.g., interval boundary 942) by a system (e.g., by non-limiting systems 900, 900E, quantum program implementation system 902, scheduler / compiler, or execution component 916, or a combination thereof).

[0204] At 1314, the computer-implemented method 1200 can include ignoring one or more repetitions of an implemented interval boundary (e.g., interval boundary 942) by a system (e.g., by non-limiting systems 900, 900E, quantum program implementation system 902, scheduler / compiler, or execution component 916, or a combination thereof). For example, as described with respect to FIG. 11, one or more operation nodes including a sequence of single qubit quantum gates being operated can ignore one or more repetitions of an interval boundary.

[0205] In one or more embodiments, execution at block 1216 can include outputting one or more quantum measurement results (e.g., quantum measurement result 917) by a system (e.g., by quantum system 901, quantum operation component 903, or quantum processor 905, or a combination thereof) as additional or alternative or both.

[0206] Referring now to FIGS. 9 - 13 in combination, one or more embodiments described herein can integrate the disclosed content into practical applications. In fact, as described herein, one or more embodiments, which can take the form of a system, a computer - implemented method, or a computer - program product, or a combination thereof, can be regarded as computerized tools that can facilitate the improved operation of quantum circuits for one or more qubits. Generally, one or more embodiments described herein can reduce the processing power employed or the errors incurred, or both, by the execution of a quantum program that employs quantum circuits. This is a useful practical application of a computer, especially considering the impact of errors on the decoherence of the qubits employed, and thus can facilitate the improved (e.g., improved or optimized, or both) operation of the qubits employed. These improvements can include an increase in the accuracy of the quantum results or an increase in the availability of the qubits employed, or both. Overall, such computerized tools can constitute specific tangible technological improvements in the field of quantum computing.

[0207] Furthermore, one or more embodiments described herein can control real - world devices based on the disclosed content. For example, one or more embodiments described herein can receive a quantum job request as an input and generate interval boundaries as a first output to induce the implementation of a quantum program as one or more physical operations, such as real - world physical pulses, on one or more qubits of a quantum system. One or more embodiments described herein can generate one or more quantum results as a second output in response to the execution of one or more physical operations on the real - world qubits of a quantum system.

[0208] In one or more embodiments, the non-limiting system 900 / 900E employing the quantum program implementation system 902 and the interval boundary implementation component 914 can improve (e.g., enhance, optimize, or both) the execution of a quantum program by implementing (e.g., commonly setting and triggering at a plurality of control nodes or operation nodes or both) an interval boundary 942.

[0209] As a result, synchronized data transfer or quantum tasks or both during the execution of a quantum program can be facilitated. That is, the interval boundary implementation component 914 can minimize, prevent, or both, the complex, time-consuming, or both, problems of implementing a quantum program, such as the synchronization of such data transfer or quantum tasks or both among a plurality of control nodes or operation nodes or both of each hybrid classical / quantum system executing the quantum program. In particular, the interval boundary implementation component 914 can enable the implementation of regular synchronization points across a plurality of nodes (e.g., control or operation or both) where the hybrid classical / quantum system spans a large physical distance, is connected in any configuration, or both.

[0210] Note that the transfer of extra synchronization information between nodes can be prevented. That is, in current systems, transmitting extra synchronization information (e.g., a timestamp that "operates at this future time") can be time-consuming and can extend the execution duration of a quantum program or experiment. Extending the execution duration means that additional qubit decoherence occurs, which can negatively affect the accuracy of the results. Instead, the non-limiting system 900 / 900E employing the quantum program implementation system 902 and the interval boundary implementation component 914 can prevent these problems.

[0211] As another result, due to the implementation of the interval boundary 942, continuous synchronization of multiple nodes is enabled throughout the execution of each quantum program, so that loss of synchronization can be tolerated. That is, additional processing power, software, or hardware, or a combination thereof, can be directed other than to maintain perfect synchronization by each control node or operation node or both. Instead, variable computational times or data transfers or both of classical computing can be taken into account by a common continuously repeating interval boundary employed as part of the implementation of the interval boundary. Different operation nodes can receive data such as one or more quantum parameters to operate multi-qubit gates at different times, and further, each operation node facilitating the operation of the multi-qubit gate can be resynchronized at the next iteration of the interval boundary for the common operation of the multi-qubit gate. Similarly, different control nodes can receive one or more quantum measurement results from multiple operation nodes (e.g., from multiple qubits) at varying times, and further, classical computing or data transfer or both can be adjusted (e.g., synchronized) at the next iteration of the interval boundary.

[0212] As yet another result, communication paths facilitating data transfer can be inaccurate with respect to latency. This can be an advantage in multi-qubit systems having constraints or variations or both of packages or cables or both.

[0213] The interval boundary implementation component 914 can enable a hybrid classical / quantum system to not employ, or to employ very little, overhead during the execution of a quantum program. That is, data transfer, computation time, quantum gate operation time, or associated composite latency, or a combination thereof, can be not computed, not estimated, or both, during the execution of a quantum program. That is, separate timings can be not implemented during the execution of a quantum program to facilitate coupled operations, multi-qubit operations, or both. Instead, the interval boundary 942 can be universally set and triggered at least prior to the initialization of one or more quantum tasks of each quantum program, thus implementing a plurality of consecutive repeating interval boundary iterations that are the same at each node to facilitate one or more quantum tasks.

[0214] Furthermore, the disclosed subject matter can cause a reduction in the processing capabilities employed by related classical nodes (e.g., classical control nodes) by adopting the disclosed interval boundary 942. This is because, at least in part, the calculation and implementation of such separate timings can be prevented during the execution of a quantum program. As a result, a non-limiting system 900 / 900E (e.g., including the quantum program implementation system 902 or the interval boundary implementation component 914, or both) can thereby facilitate an improvement in performance, an improvement in efficiency, a reduction in computational cost, or a combination thereof, associated with one or more classical processing units (CPUs) of the non-limiting system 900 / 900E.

[0215] Furthermore, if there is a high demand for the execution of an increasing number of quantum programs that employ the quantum system 901, the use of the non-limiting system 900 / 900E (e.g., including the quantum program implementation system 902 or the interval boundary implementation component 914 or both) can result in facilitating the scaled execution of quantum programs. That is, by reducing, or eliminating, or both, the variable latency that occurs during the execution of one or more quantum tasks for operating a quantum circuit on one or more qubits, and thus reducing errors, a slower occurrence of decoherence of one or more qubits can enable additional quantum programs to be executed on the qubits. This can then lead to a related decrease in the provision of new qubits by a quantum system having one or more qubits, and as a result, can lead to an improvement in the availability of the processing power of the quantum processor of the quantum system, at least partially due to the reduced provision of new qubits.

[0216] Referring now to FIG. 14, another embodiment of the non-limiting system is shown at 1400. Like numbers are utilized to refer to like elements, where appropriate, of the non-limiting system 100 of FIG. 1 or the non-limiting system 900 of FIG. 9 or both. Repeated description of like elements or processes or both employed in embodiments of the non-limiting system 100 of FIG. 1 or the non-limiting system 900 of FIG. 9 or both is omitted for brevity.

[0217] Referring to FIG. 14 (and also FIGS. 15 - 18), one or more embodiments described herein can facilitate compiling communication instructions to improve the execution of quantum jobs and can facilitate implementing universal time intervals to improve the execution of quantum jobs on one or more qubits, and can include one or more systems, computer - implemented methods, devices, or computer program products, or combinations thereof. For example, FIG. 14 shows a block diagram of an exemplary non - limiting system 1400 that can facilitate compiling communication instructions to improve the execution of quantum jobs and can facilitate implementing universal time intervals to improve the execution of quantum jobs on one or more qubits.

[0218] It will be understood that the following description refers to the operation of a single quantum program from a single quantum job request. However, it will also be understood that one or more of the processes described herein can be scalable. For example, as will be understood below, the quantum program implementation system 1402 can implement one or more communication fabrics 1440, can implement one or more interval boundaries 1442, or can execute one or more quantum programs, or combinations thereof, each of which is described in detail below. These various levels of scaling can enable a faster, more efficient, or less error - prone, or combination thereof, execution of the quantum program, at least in part due to a reduced decoherence or decoherence time or both, of the correlation of one or more qubits employed to execute the quantum program. As used above, an interval boundary refers to a continuously repeating universal time interval implemented at two or more nodes (e.g., control nodes or operation nodes or both).

[0219] As used herein, a node (e.g., a control node or an operational node) can include one or more machines. The one or more machines can include a computing device, a general-purpose computer, a special-purpose computer, a quantum computing device (e.g., a quantum computer), a tablet computing device, a handheld device, a server-class computing machine or database or both, a laptop computer, a notebook computer, a desktop computer, a cellular phone, a smartphone, a consumer device or appliance or both, an industrial device or commercial device or both, a digital assistant, an Internet-enabled multimedia phone, or another type of device, or one or more of a combination thereof.

[0220] In one or more embodiments, the non-limiting system 1400 can be a hybrid system and thus can include one or more classical systems such as a quantum program implementation system 1402, and one or more quantum systems such as a quantum system 1401. In one or more other embodiments, the quantum system 1401 can be separated from the non-limiting system 1400 but can function in combination with the non-limiting system 1400. In one or more embodiments, the quantum system 1401 can comprise one or more quantum components such as a quantum operation component 1403 and a quantum processor 1405. The description provided above with respect to the quantum system 101 can apply to the quantum system 1401. Similarly, the description provided above with respect to the quantum operation component 103 and the quantum processor 105 can apply to the quantum operation component 1403 and the quantum processor 1405, respectively.

[0221] Referring to the classical portion of the non-limiting system 1400, the descriptions provided above regarding the general aspects of the quantum program implementation system 102 or the quantum program implementation system 902 or both can apply to the quantum program implementation system 1402. In one or more embodiments, the quantum program implementation system 1402 can include a processor 1406 or a computer-readable memory 1404 operably connected to the processor 1406 or both. The descriptions provided above regarding the processor 106 and the computer-readable memory 104 can also apply to the processor 1406 and the computer-readable memory 1404, respectively. The quantum program implementation system 1402 or its components or both described herein can be communicatively, electrically, operably, optically, or otherwise, or in combination, coupled to each other via a bus 1424 to perform the functions of the non-limiting system 1400, the quantum program implementation system 1402, or any of their components, or any component coupled thereto, or both, or a combination thereof.

[0222] Typically, the quantum program implementation system 1402 can facilitate compiling communication instructions to improve the execution of a quantum program for a plurality of qubits, and can also facilitate synchronization during the execution of a quantum program for a plurality of qubits by implementing universal interval boundaries. Typically, the quantum program implementation system 1402 can also facilitate executing a quantum job request. That is, the execution component can direct the data transfer and operations of a quantum task in relation to a quantum circuit for two or more qubits via a compiled communication fabric according to universal interval boundaries. The output component can output one or more quantum job results in response to a quantum job request.

[0223] Referring now more particularly to quantum program implementation system 1402, in one or more embodiments, quantum program implementation system 1402 can comprise a quantum job component 1408, a determination component 1410, a compile component 1412, an interval boundary implementation component 1414, an execution component 1416, or an output component 1418, or a combination thereof.

[0224] Quantum job component 1408 can obtain, such as by receiving, downloading, streaming, or otherwise acquiring from a requesting entity, quantum job request 1409, or a combination thereof. Non-limiting system 1400 can use quantum program implementation system 1402 and quantum system 1401 to execute one or more quantum programs requested to be implemented in quantum job request 1409. In one or more instances, quantum job request 1409 can include one or more instructions regarding one or more specific quantum circuits to be employed.

[0225] In connection with the one or more requested quantum programs, determination component 1410 can determine one or more quantum circuits for implementing the one or more quantum programs. This determination can include searching one or more databases internal to, external to, or both internal and external to quantum program implementation system 1402 or non-limiting system 1400 or both. In one or more instances, determination component 1410 can include a database portion for storing one or more compiled quantum circuits.

[0226] Referring now to compile component 1412, before describing one or more functions in detail herein, first, an overview of one or more functions that can be performed by compile component 1412 will be presented.

[0227] Typically, the compile component 1412 can compile communication instructions for the scheduled transfer of undetermined data between one or more control nodes or one or more operation nodes or both, as detailed below. This compilation can include the identification of one or more communication paths or one or more data parameters or both, as detailed below. This compilation can include, additionally or alternatively or both, scheduling one or more data transfers along one or more identified communication paths. This scheduling can be based at least in part on the one or more identified data parameters.

[0228] When one or more communication paths are identified, generated, scheduled, or a combination thereof, data can be undetermined in that aspects of one or more quantum programs, such as certain instructions, measurement results, variational quantum parameters, or the like, or a combination thereof, have not yet been determined, such as not yet been computed. In fact, these aspects of the quantum programs can be determined during the execution of the quantum program. In one example, previous quantum measurement results can be analyzed and instructions can be pre - established to operate one or more physical operations, such as physical pulses on one or more qubits, until subsequent instructions or quantum parameters (e.g., variational quantum parameters) or both are determined to continue the quantum program. That is, it is not possible for the compile component 1412 to determine actual data bits, but information including data transfer paths (communication paths), the number of data units, the total amount of data per transfer, or the schedule of transfers, or a combination thereof, can be determined by the compile component 1412 as described below.

[0229] In one or more embodiments, non-limiting system 1400 can include one or more classical resources, such as control nodes 1404A and 1404B shown in FIG. 14, in addition to quantum program implementation system 1402. Quantum program implementation system 1402 is shown separated from control nodes 1404A and 1404B. In one or more alternative embodiments, quantum program implementation system 1402 can be included in one or more control nodes that are embodied by, or that embody, or both, such classical resources. A control node can be a classical resource that can provide scheduling, instructions, data analysis, measurement analysis, quantum parameter optimization, or the like, or a combination thereof. These control nodes can be distributed relative to each other locally, non-centrally, or both, or any two or more control nodes can be communicatively connected to each other, or both. In one or more other embodiments, it will be understood that one or more control nodes can be quantum resources, or can include one or more quantum components, or both.

[0230] Furthermore, in one or more embodiments, the non-limiting system 1400 can include one or more quantum resources, such as operational nodes 1420A, 1420B, and 1420C. As shown in the figure, the quantum system 1401 can include operational nodes 1420A, 1420B, and 1420C. In one or more other embodiments, the operational nodes 1420A, 1420B, and 1420C can be separated from the quantum system 1401, but can be communicatively connected to the quantum system 1401. The operational nodes can be quantum resources that can perform one or more quantum tasks, such as pulse generation, waveform generation, quantum measurement, or other functions related to or including one or more qubits, or a combination thereof. The operational nodes can be distributed relative to each other locally, non-centrally, or both, or any two or more operational nodes can be communicatively connected to each other, or both. In one or more other embodiments, it will be understood that one or more operational nodes can be quantum resources, or can include one or more quantum components, or both. Additionally or alternatively or both, it will be understood that one or more operational nodes can provide one or more of the functions of the control nodes listed above, or one or more control nodes can provide one or more of the functions of the operational nodes listed above, or both.

[0231] In the current system, the delay in the transfer of exemplary information between the control node and the operation node, or the transfer of the resulting measured qubit values from the operation node to the control node, can be standard. This is particularly true when many aspects of data, such as exemplary information and qubit values, are being passed for implementing the control of multiple qubits. Bottlenecks, chokepoints, or data collection points, or combinations thereof, between nodes (e.g., between the control node or the operation node or both) (e.g., via software or hardware or both) can limit the speed of data transfer. That is, conventional communication and management techniques for multiple CPUs may not be able to transfer, analyze, or determine data, or combinations thereof, at a scale that can account for the standard decoherence of qubits. This problem worsens when scaling to quantum programs acting on a large number of qubits.

[0232] Taking into account one or more delays, in cases such as when adjustments between multiple operation nodes are utilized to implement a multi-qubit gate, the transfer of data regarding one or more quantum tasks operating on multiple qubits can be delayed at at least one operation node. These one or more delays can then cause further delays at an operation node that is ready to implement a multi-qubit gate but is delayed until all such operation nodes (e.g., affecting one or more downstream execution times) are also ready. This can further exacerbate the decoherence or other errors (e.g., quantum noise) or both present in the quantum system 1401 during the execution of the quantum program. Further, multiple quantum tasks may be executed in sequence to execute a quantum program, and in so doing, it should be understood that the aforementioned delays, decoherence, or errors, or combinations thereof, introduced into each quantum system, classical system, or hybrid system, or combinations thereof, are further exacerbated.

[0233] To account for one or more of these issues, one or more embodiments herein can compile a communication infrastructure of communication paths, collectively referred to herein as a compiled communication fabric 1440, for scheduling data transfers between various control nodes and operation nodes of a system such as non-limiting system 1400 (e.g., by quantum program implementation system 1402 or compile component 1412 or both). That is, compile component 1412 can compile one or more communication paths, including identifying and scheduling data transfers for one or more communication paths, for data transfer throughout non-limiting system 1400. The compiled communication fabric 1440 can enable compile component 1412 to facilitate communication between control nodes with each other, or between a control node and one or more of the operation nodes, or both, via one or more communication paths. This compilation (e.g., identification or scheduling or both) is described in detail below.

[0234] The communication fabric 1440 can, in one or more instances, be specifically compiled for the execution of one or more particular quantum programs. In relation to one or more other quantum programs, the same communication fabric 1440 or different communication fabrics or both can be compiled.

[0235] First, typically, compile component 1412 can identify one or more communication paths prior to the execution of a quantum program, such as after non-limiting system 1400 receives each quantum job request (e.g., quantum job request 1409). Additionally or alternatively or both, after the initialization of the execution of each quantum program, but prior to the execution of a particular quantum task (of the quantum program) that employs one or more communication paths, compile component 1412 can identify one or more communication paths or segments thereof or both.

[0236] The compile component 1412 can identify one or more communication paths, such as by searching for one or more such paths that are identified by, utilized by, or both, one or more other programs, databases, applications, or the like, or combinations thereof, communicatively coupled to the compile component 1412. In one or more embodiments, the compile component 1412 can trigger one or more signals, such as pings, between various control nodes or operational nodes, or both, of the non-limiting system 1400. Based on the one or more received signals, pings, metadata, or other results, or combinations thereof, the compile component 1412 can identify the communication path. Similarly, the compile component 1412 can identify communication paths that minimize, avoid, or both, data collection points, such as data collection routers, between various control nodes or operational nodes, or both.

[0237] Regarding one or more communication paths of the communication fabric 1440, the description provided above regarding various functions or capabilities, or both, of the communication fabric 140 can also apply to the communication paths 1440. Thus, for the sake of brevity, one or more functions or capabilities, or both, of the communication fabric 1440 may be described below in an abbreviated manner.

[0238] In one or more embodiments, it will also be understood that the compile component 1412 can identify, or generate, or both, one or more aspects of one or more of the communication paths. These aspects of the paths can include one or more endpoints, fabric port interfaces, or routing blocks, or combinations thereof. Typically, the compile component 1412 can identify one or more aspects of the paths prior to the execution of the quantum program, such as after the non-limiting system 1400 receives each quantum job request (e.g., quantum job request 1409). Additionally or alternatively or both, after the initialization of the execution of each quantum program, but prior to the execution of a particular quantum task (of the quantum program) that employs one or more aspects of the paths or a portion of the aspects of the paths or both, one or more aspects of the paths or a portion of the aspects of the paths or both can be identified by the compile component 1412.

[0239] The compile component 1412 can identify one or more physical aspects, such as any suitable hardware including a server, router, cable, or physical communication connection, or combinations thereof, as at least part of the aspect of the path. Additionally or alternatively, the compile component 1412 can identify, or generate, or both, one or more software aspects as at least part of the aspect of the path. In one or more embodiments, the software aspect can include or be part of a cloud network. Thus, it will be understood that the communication fabric 1440 compiled by the compile component 1412 and provided to the non-limiting system 1400 can be implemented by software, hardware, or a combination of hardware and software, or combinations thereof.

[0240] One or more control nodes, operation nodes, quantum program implementation systems 1402, or other classical systems or quantum systems or both, or combinations thereof, communicatively coupled to the non-limiting system 1400, are associated with one or more software applications, programs, or codes, or combinations thereof, that can be installed, or otherwise input, or both, to facilitate the identification or generation or both of one or more software aspects of the communication fabric 1440 by the compilation component 1412. That is, an entity can facilitate the compilation of the communication fabric 1440 by providing one or more software applications, programs, or codes, or combinations thereof, employed by the compilation component 1412. Additionally or alternatively or both, the compilation component 1412 can facilitate the provision of one or more software applications, programs, or codes, or combinations thereof, employed by the compilation component 1412.

[0241] Additionally or alternatively or both, to facilitate the identification or generation or both of one or more hardware aspects of the communication fabric 1440 by the compile component 1412, one or more physical hardware components such as routers, servers, cables, routing boxes, or the like, or combinations thereof, may be disposed, provided, or installed, or both, between one or more control nodes, operation nodes, quantum program implementation systems 1402, or other classical systems or quantum systems or both, or combinations thereof, communicatively coupled to the non-limiting system 1400. That is, the entity can facilitate the compilation of the communication fabric 1440 by providing or installing or both one or more hardware components employed by the compile component 1412. Additionally or alternatively or both, the compile component 1412 can facilitate the provision or installation or both of one or more hardware components employed by the compile component 1412.

[0242] The connection topologies of the aspects of the foregoing software or hardware or both paths can take a variety of different forms. As described above, the connection topology can be implemented as hardware or software or both. For example, the connection topology can depend on the quantum program being executed, or on the hardware aspect or software aspect or both, or combinations thereof, to which a control node or operation node or both can have access (e.g., connecting one or more control nodes and one or more operation nodes). One or more connection topologies can be associated within a single communication fabric, or different communication fabrics can include different connection topologies, or both can be possible.

[0243] Regarding further details of the sides of one or more paths of the communication fabric 1440, the descriptions provided above regarding the various functions or capabilities or both of the communication fabric 140 can also apply to the communication path 1440. Therefore, for the sake of brevity, in an omitted manner, one or more functions or capabilities or both of the communication fabric 1440 may be described below.

[0244] To provide a more efficient communication fabric 1440, the compile component 1412 can also compile one or more data parameters of data that has not yet been determined and is to be transferred along the identified communication path. The one or more compiled data parameters can include a specific number of data units (e.g., per data transfer), or the maximum size of the data (e.g., the total number of bits or other units included in the number of data units) that is moved between pairs of nodes (e.g., control nodes or operation nodes or both), or a combination thereof. The maximum size of the data can be determined as the maximum value transferred on each communication path at any one instant or any one clock cycle or both during the complete execution of the quantum program, or for each quantum task, or a combination thereof. The compile component 1412 can compile one or more data parameters regarding different quantum tasks or clock cycles or both of the quantum program.

[0245] In fact, considering one or more data parameters, the number of data units does not change during the execution of the quantum program, but only the value held in the data units (e.g., included in the bits) changes depending on what data is being transferred. For example, during the execution of the quantum program, the data value can be determined by quantum bit measurement results or decision information or both from a control node regarding the implementation of quantum gates, etc.

[0246] The compilation component 1412 can also compile scheduling instructions including the number of data units and the maximum data size (e.g., using one or more data parameters) for the destination of data that has not yet been determined. In other words, the compilation component 1412 can compile one or more data parameters related to data movement, including the number of data units, the maximum data size, or the destination of the data, or a combination thereof, so that these data parameters can all be static during the execution of the quantum program, while only the content of the data can change during execution. That is, before the execution of the quantum program, it can be determined what information to pass, where the information goes, and how to pass the data, but when the quantum program is being executed, the content (e.g., value) of the data (e.g., data bits) being transferred can change dynamically.

[0247] For example, a quantum program can include multiple quantum tasks executed at multiple operation nodes. The quantum tasks can have a specific order in which they are executed. One or more quantum tasks may take longer than other quantum tasks. One or more quantum tasks can be executed in parallel with other quantum tasks. One or more quantum tasks may not be executable until one or more other quantum tasks have been executed first, or started, or both. This order of the quantum tasks executed at each operation node can be scheduled by the compilation component 1412 before the execution of the quantum program, such as after the non-limiting system 1400 receives each quantum job request (e.g., quantum job request 1409). Additionally or alternatively or both, after the initialization of the execution of each quantum program, but before the execution of one or more specific quantum tasks, one or more quantum tasks can be scheduled by the compilation component 1412.

[0248] It will be appreciated that scheduling one or more quantum tasks can include scheduling one or more data routes (e.g., along one or more communication paths) of data not yet determined to be employed by one or more quantum tasks by the compile component 1412. Scheduling one or more quantum tasks can also include scheduling one or more data parameters of data not yet determined to be transferred along one or more data routes. These operations can be completed together, or simultaneously, or both. It will be appreciated that it is possible for one or more data parameters to be utilized by the compile component 1412 to schedule one or more data routes, or vice versa, or both.

[0249] Furthermore, for each quantum task or clock cycle or both of a quantum program, for each amount of data transferred between them, to implement scheduling and thus to determine the associated transmit data block and the associated receive data block, the compile component 1412 can also compile a data transfer list. The data transfer list can include a list of destination blocks including representative data of the FPI number (FPN), the length of the transfer in number of data units (LEN), the source identifier (SID) and source offset (SOFF) to the FPI transmit data block array of each communication fabric, and the destination identifier (DID) and destination offset to the FPI receive data block array of each communication fabric.

[0250] As used herein, a transmit data block array can include all transmit data blocks of all FPIs of each communication fabric. Similarly, as used herein, a receive data block array can include all receive data blocks of all FPIs of each communication fabric. In one or more other embodiments, a transmit data block array or a receive data block array or both can each include fewer transmit data blocks or receive data blocks than all transmit data blocks or receive data blocks of all FPIs of each communication fabric. Further, it will be understood that the description provided above regarding the data transfer list in Table I can also apply to the description herein regarding the compile component 1412.

[0251] Further, in one or more instances, a broadcast function can be added to the communication fabric 1440. In such instances, if the entries of each data transfer list include the same FPN, LEN, SID, and SOFF, such identical entries can be grouped together as a broadcast operation.

[0252] Referring further to FIG. 14, the compile component 1412 can also employ a compile algorithm 1413 that includes one or more instructions for compiling one or more of the aforementioned communication instructions (e.g., for compiling a communication fabric). The operations that are performed, commanded, or directed by, or in combination with, the compile algorithm 1413 can include compiling one or more communication paths, compiling one or more data parameters, or scheduling one or more data movements, or combinations thereof, with respect to one or more quantum tasks. It will be understood that the compile algorithm 1413 or instructions for implementing the compile algorithm 1413, or both, can be stored in the compile component 1412, the memory 1404, or an external memory / storage, or combinations thereof, or can be accessible by the compile component 1412 or the non-limiting system 1400, or both, via a related cloud computing environment, WAN, LAN, or the like, or combinations thereof. Further, it will be understood that the descriptions provided above with respect to the compile algorithms 113 and 113A can also apply to the description of the compile algorithm 1413 herein.

[0253] For example, the compile algorithm 1413 can employ one or more data parameters, and one or more of the aforementioned signals, metadata, or other results received (e.g., during the identification of one or more communication paths), or combinations thereof. In this way, the compile component 1412 can determine the transfer time of one or more different amounts of data in one or both directions along one or more communication paths by one or more instructions provided via the compile algorithm 1413.

[0254] Referring now to the gap boundary implementation component 1414 and further to FIG. 14, additional features of the quantum program implementation system 1402 will be described.

[0255] In current systems that execute quantum programs, such as hybrid classical / quantum systems, during the operation of one or more quantum circuits, multiple such data transfers or quantum tasks or both may typically be initiated or executed or both. These data transfers or quantum tasks or both may each require a variable amount of time or different amounts of time or both to complete. Thus, the delay of the completion of one quantum task or data transfer or both relative to the completion of one or more other quantum tasks or data transfers or both may reduce the synchronization between two or more nodes (e.g., classical nodes or operational nodes or both) that utilize or execute or both of the quantum task or data transfer or both, or may completely cause a loss of synchronization or both. In one or more instances, the loss of synchronization may be caused by a bottleneck, choke point, or data collection point (e.g., via software or hardware or both) between nodes (e.g., control nodes or operational nodes or both), thereby limiting the speed of data transfer.

[0256] In fact, since the CPU can usually be a classical resource, data transfer may occur at various times during the execution of a quantum program using complex scheduling. Furthermore, conventional communication and management techniques for multiple CPUs may not be able to transfer, analyze, or make decisions, or a combination thereof, at a scale that can account for the decoherence of standard qubits. Additionally, when the current system schedules one or more data transfers or quantum tasks or both during the execution of a quantum program, scheduling-related data or metadata or both are provided along with the transfer of data or communication instructions or both, which complicates the problem. That is, timing data or metadata or both may increase the data transfer size, or decrease the speed of the associated data transfer, or both. Furthermore, if synchronization is lost between nodes and the timings do not match, quantum tasks may not be properly executed, such as introducing errors or failures or both, or completely causing the collapse of the experiment, or a combination thereof. These problems may worsen when scaling to quantum programs that act on a large number of qubits.

[0257] To account for one or more of these issues, one or more embodiments herein can implement an interval boundary 1442 that can enable alignment of data transfers, quantum tasks, or multi-card operations (e.g., DAC measurement tones, ADC capture windows, or the like, or combinations thereof) to the implemented interval boundary 1442 (e.g., by quantum program implementation system 1402 or interval boundary implementation component 1414 or both). That is, the interval boundary 1442 can be employed by the non-limiting system 1400 (e.g., by execution component 1416) to schedule data transfers or to implement such data, such as implementing multi-qubit gates at two or more operation nodes (e.g., operation nodes 1420A, 1420B, or 1420C, or combinations thereof), or both. In other words, node synchronization can be facilitated by the interval boundary implementation component 1414 during execution of a quantum program on two or more qubits.

[0258] In fact, in this way, there is no need to adopt overhead during the execution of related quantum programs, and synchronization points (e.g., at the repetition of consecutive interval boundaries) can be provided for control nodes 1404A and 1404B or operation nodes 1420A, 1420B, and 1420C or both. Further, since the repetition of the next interval boundary can provide alignment, one or more inaccuracies can be tolerated in the CPU execution within the interval (e.g., between pairs of repetitions of interval boundaries). Regarding the initial scheduling of the quantum tasks of each program, the repetition of the interval boundary can provide the scheduler / compiler with a "natural" position for aligning "barrier" gates. As used herein, a "barrier" gate is a time instance at which a quantum program can involve alignment between individual quantum operations or subsequences of quantum operations such that individual quantum operations or subsequences of quantum operations can be executed in a time - adjusted manner across two or more different qubit controllers. Additionally, in one or more embodiments, an extended non - limiting system 1400 (not particularly shown) can include one or more processors that include a hardware sequencer instead of a programmable CPU to control quantum gate operations.

[0259] In connection with implementing the interval boundary 1442, the description herein first generally refers to the interval boundary implementation component 1414. First, the interval boundary implementation component 1414 can facilitate the determination of one or more periods that can elapse between the transfer or operation or both of the data of one or more quantum tasks. The interval boundary implementation component 1414 uses this period information to implement a universal interval boundary 1442 that continuously repeats at two or more nodes (e.g., control node 1404A or 1404B or both, or operation nodes 1420A, 1420B, or 1420C, or a combination thereof, or both) of the non-limiting system 1400. Below, one or more functions executed by the interval boundary implementation component 1414, the interval boundary 1442 that can be implemented, and the control node or operation node or both at which the interval boundary 1442 can be implemented will be described in detail.

[0260] To implement an interval boundary (e.g., interval boundary 1442), the interval boundary implementation component 1414 can first determine the longest period that is likely, estimated, calculated, or a combination thereof for continuous repetition at two or more nodes. That is, one or more decision parameters can be implemented by the interval boundary implementation component 1414, either by default, selectively, or both, to determine on what basis the longest period is based. When one or more decision parameters are selectively implemented, such selective implementation can be provided by an entity. In one embodiment, the entity can implement one or more decision parameters via a communication device to the quantum program implementation system 1402 or any suitable communication connection or both.

[0261] As shown, the longest period can have one or more different criteria. In one or more embodiments, the longest period can be based on the longest data transfer time in any direction between any two (or more) nodes (e.g., classical nodes or operational nodes or both). In one or more embodiments, the longest period can be based on the longest data transfer and return data transfer between any two (or more) nodes (e.g., classical nodes or operational nodes or both). In one or more embodiments, the longest period can be based on the longest task completion time of tasks based on a control node (e.g., scheduling, instructions, data analysis, measurement analysis, optimization of quantum parameters, or the like, or combinations thereof). In one or more embodiments, the longest period can be based on the longest task completion time of tasks based on an operational node (e.g., pulse generation, waveform generation, quantum measurement, or other functions related to or including one or more qubits or both, or combinations thereof). In one or more embodiments, the longest period can be based on two or more of these criteria, such as based on the longest period across any combination of two or more of these criteria.

[0262] When the longest period is based on one or more of the various criteria described above, "based on" as performed by the interval boundary implementation component 1414 can include calculating, or estimating, or both, one or more of the actual period, the estimated period, or the period with one or more probabilities of accuracy, or combinations thereof.

[0263] Furthermore, in one or more embodiments, the interval boundary implementation component 1414 can determine the longest period using the compile component 1412 and / or the communication fabric 1440. For example, when determined by the compile component 1412, the worst-case propagation time through the communication fabric 1440 can be implemented as the length of the minimum interval boundary time.

[0264] That is, the longest period can be utilized as the length of the minimum time between interval boundary iterations. If suitable for the quantum program being executed, the quantum program implementation system 1402 and / or the interval boundary implementation component 1414 can adopt a length of time between interval boundary iterations that is longer than the longest period. For example, a longer time interval can better conform to the quantum program being executed, based on the history before executing the quantum program or one or more quantum tasks included in the quantum program, or both.

[0265] When determining the longest period (e.g., the worst-case propagation time through the communication fabric 1440), the interval boundary implementation component 1414 can commonly set and trigger an interval boundary 1442 having the determined longest period at two or more nodes of the non-limiting system 1400 (or an extended non-limiting system, or both), such as control nodes or operation nodes, or both. In this way, the execution of multi-qubit quantum operations and / or data transfers, or both, at two or more nodes can be aligned.

[0266] The interval boundary implementation component 1414 can employ the same clock source or execution time or both to implement the interval boundary 1442. For example, the interval boundary implementation component 1414 can universally set and trigger the same interval boundary 1442 at each node that is synchronized with each other. In one or more embodiments, the interval boundary implementation component 1414 can set and trigger the interval boundary 1442 at two or more nodes at the same instant. In one or more other embodiments, considering the use of a single clock source or execution time or both, the interval boundary 1442 can be set or triggered or both at one or more nodes at a different instant from one or more other nodes, but the interval boundary 1442 can still be implemented and synchronized in the same manner.

[0267] The interval boundary 1442 can be implemented at each of the operating nodes and control nodes of the non-limiting system 1400 at a plurality of continuously repeating common time points, referred to herein as interval boundary repetitions. Each adjacent pair of interval boundary repetitions can indicate the boundary of a single time interval without one or more other latencies, arbitrations, or other periods, or combinations thereof. That is, one time interval can start when the next time interval starts (e.g., at a common interval boundary repetition or time point), and each time interval has the same length of time.

[0268] Here, referring briefly again to FIGS. 6, 10, and 11 first, it will be understood that any of the functions or capabilities or both of the communication fabric 140 or the interval boundary 942 or both provided above can also apply to the communication fabric 1440 or the interval boundary 1442 or both, respectively. For the sake of brevity, such functions or capabilities or both are not described again herein with respect to FIG. 14.

[0269] Referring again briefly to FIG. 14, one or more additional features of the quantum program implementation system 1402 or the non-limiting system 1400 or both are described in relation to one or more of their additional components and the like.

[0270] After establishment, to implement a quantum circuit determined in relation to one or more qubits, the execution component 1416 can be provided with an interval boundary implementation component 1414 that provides an interval boundary 1442, and a compile component 1412 can provide a communication fabric 1440. The interval boundary implementation component 1414 and the compile component 1412 can be communicatively coupled to the execution component 1416, directly or indirectly or both, to facilitate the provision of the interval boundary 1442 and the communication fabric 1440. The execution component 1416 can direct the initialization, instruction, or execution, or a combination thereof, of the quantum job request 1409 using the interval boundary 1442 and the communication fabric 1440 in the quantum system 1401 (e.g., at an operation node of the quantum system 1401).

[0271] That is, it will be understood that the communication fabric 1440 and the interval boundary 1442 can function in combination with each other. For example, the execution component 1416 can employ various communication instructions compiled by the compilation component 1412 and the communication fabric 1440. The various communication instructions can include one or more communication paths, one or more data transfer schedules, or one or more quantum task schedules, or a combination thereof. Similarly, the execution component 1416 can use the continuously repeating interval boundary iterations of the interval boundary 1492 (e.g., continuously repeating time points) to align one or more data transfer schedules or one or more quantum task schedules or both provided by the compilation component 1412. In one or more cases, one or more of such quantum tasks can be multi-qubit quantum tasks. The execution component 1416 can cause simultaneously initiated quantum operations, such as multi-qubit quantum tasks, on two or more qubits at a number of instances of continuously repeating time points (e.g., two or more instances).

[0272] That is, the quantum system 1401 (e.g., one or more operation nodes) can execute a quantum bit quantum job request 1409 in the quantum system 1401 based on one or more compiled communication commands of the communication fabric 1440 as compiled by the non-limiting system 1400 or the compilation component 1412 or both, and at least partially based on the interval boundary 1442. The quantum system 1401 can provide one or more quantum measurement results 1417 to the quantum program implementation system 1402, or to the classical part of the non-limiting system 1400 (e.g., one or more control nodes), or both. After the operation of the complete quantum program, the non-limiting system 1400 can receive, download, stream, or otherwise obtain one or more final quantum measurement results 1417 from the quantum system 1401, or perform a combination thereof.

[0273] The quantum program implementation system 1402 can also include an output component 1418. One or more quantum job results 1419 can be output from the non-limiting system 1400 via the output component 1418. The one or more quantum job results 1419 can include one or more quantum measurement results 1417, or be at least partially based on one or more quantum measurement results 1417, or both, or can respond to the quantum job request 1409 from the requesting entity, or a combination thereof.

[0274] Referring now to FIGS. 15 - 17, these figures together show a flowchart of an exemplary non-limiting computer implementation method 1500 that can facilitate the operation of a quantum circuit on a set of qubits by compiling one or more communication commands according to one or more embodiments described herein. Repeated descriptions of similar elements or processes or both employed in each embodiment are omitted for brevity.

[0275] Referring initially to 1502 in FIG. 15, computer-implemented method 700 can include obtaining a quantum job request (e.g., quantum job request 1409) by a system (e.g., non-limiting system 1400, quantum program implementation system 1402, or quantum job request component 1408, or a combination thereof) operably coupled to a processor (e.g., processor 1406, quantum processor, or similar processor, or a combination thereof).

[0276] At 1504, computer-implemented method 1500 can include determining a quantum program or a quantum circuit or both by a system (e.g., non-limiting system 1400, quantum program implementation system 1402, or determination component 1410, or a combination thereof) to at least partially implement a quantum job request (e.g., quantum job request 1409).

[0277] From block 1504, the processes represented by block 1506 and continuing triangle 1505 can each continue at least partially in parallel.

[0278] In continuing triangle 1505, for clarity, a specific process related to the determination of an interval boundary (e.g., interval boundary 1492) is provided in FIG. 16. Continuing triangle 1505 leads to block 1510, avoiding (e.g., continuing at least partially in parallel with) block 1506 and continuing triangle 1508.

[0279] That is, referring briefly to FIG. 16, at 1505, computer-implemented method 1500 can include determining an interval boundary (e.g., interval boundary 1442) by a system (e.g., non-limiting system 1400, quantum program implementation system 1402, or interval boundary implementation component 1414, or a combination thereof).

[0280] As shown in blocks 1602 and 1604, it will be understood that one or more processes may be involved in determining an interval boundary (e.g., interval boundary 1492).

[0281] In 1602, computer-implemented method 1500 can include determining, by a system (e.g., non-limiting system 1400, quantum program implementation system 1402, or interval boundary implementation component 1414, or a combination thereof), one or more periods that can elapse (e.g., during the transfer or operation or both of data of one or more quantum tasks executed during the execution of a quantum program). For example, a compile component (e.g., compile component 1412) can provide a worst-case propagation time through a communication fabric (e.g., communication fabric 1440) at block 1506, etc. The system (e.g., non-limiting system 1400, quantum program implementation system 1402, or interval boundary implementation component 1414, or a combination thereof) can adopt the worst-case propagation time as the length of time for each of the successive repetitions of the implemented interval boundary (e.g., interval boundary 942).

[0282] In 1604, computer-implemented method 1500 can include testing, by a system (e.g., non-limiting system 1400, quantum program implementation system 1402, interval boundary implementation component 1414, or quantum system 1401, or a combination thereof), the length of a determined interval boundary. For example, one or more errors can be detected with respect to one or more data transfers or quantum tasks or both completed during the execution of a quantum program. The one or more errors can be related to the variable time of completion of the repetition of the interval boundary or near the completion of the repetition of the interval boundary or both, for one or more data transfers or quantum tasks or both completed during the execution of the quantum program.

[0283] Referring again to FIG. 15, at 1506, computer-implemented method 1500 can include determining a communication fabric (e.g., communication fabric 1440), such as including one or more communication instructions, by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, or compilation component 1412, or a combination thereof). This compilation can include using a compilation algorithm (e.g., compilation algorithm 1413).

[0284] The specific processes included in this compilation are shown to occur in continuous triangle 1508 and are described in FIG. 17 for clarity. Continuous triangle 1508 leads to block 1510. In one or more embodiments, all processes embodied by triangle 1508 (e.g., as shown in FIG. 17) can be executed. In one or more other embodiments, one or more of the processes embodied by continuous triangle 1508 can be avoided, or omitted, or both.

[0285] That is, referring briefly to FIG. 17, this figure shows an extension of computer-implemented method 1500 of FIG. 15. FIG. 17 shows, in particular, aspects that can occur in continuous triangle 1508 of FIG. 15, such as specific processes of compiling a communication fabric (e.g., communication fabric 1440), including compiling one or more communication instructions. One or more communication instructions can include one or more communication paths, one or more data transfer schedules, or one or more quantum task schedules, or a combination thereof.

[0286] At 1702, the computer-implemented method 1500 can include compiling one or more communication paths by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, or compilation component 1412, or a combination thereof) for the transfer of data that has not yet been determined. That is, a communication fabric (e.g., communication fabric 1440) can include one or more communication paths, such as a plurality of communication paths. The compilation at 1702 can include one or more operations, such as the operations provided next at blocks 1704, 1706, 1708, and 1710. The data can be undetermined in that one or more aspects of a quantum program, such as a particular instruction, measurement result, variational quantum parameter, or the like, or a combination thereof, have not yet been calculated, such as not yet determined, when one or more communication paths are identified, generated, scheduled, or a combination thereof.

[0287] At 1704, the computer-implemented method 1500 can include identifying, generating, or both, one or more endpoints by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, or compilation component 1412, or a combination thereof). The endpoints can be implemented by hardware or software or both.

[0288] At 1706, the computer-implemented method 1500 can include identifying, generating, or both, one or more FPIs by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, or compilation component 1412, or a combination thereof). The FPIs can be implemented by hardware or software or both.

[0289] In 1708, the computer-implemented method 1500 can include identifying, generating, or both, one or more routing blocks by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, or compilation component 1412, or a combination thereof). The routing blocks can be implemented by hardware, software, or both.

[0290] In 1710, the computer-implemented method 1500 can include identifying, generating, or both, one or more communication paths, such as by adopting, connecting, or both, one or more endpoints, FPIs, or routing blocks, or a combination thereof, by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, or compilation component 1412, or a combination thereof). The communication paths can be implemented by hardware, software, or both.

[0291] Next, in 1712, the computer-implemented method 1500 can include compiling, by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, or compilation component 1412, or a combination thereof), one or more data parameters of data that have not yet been determined (e.g., one or more data parameters related to data movement, including the number of data units, maximum data size, or data transfer destination, or a combination thereof). The data can be not yet determined in that aspects of one or more quantum programs, such as certain instructions, measurement results, variational quantum parameters, or the like, or a combination thereof, have not yet been calculated when one or more communication paths are identified, generated, scheduled, or a combination thereof.

[0292] In 1714, the computer-implemented method 1500 can include scheduling one or more quantum tasks (e.g., of a related quantum program) by a system (e.g., by the non-limiting system 1400, the quantum program implementation system 1402, or the compilation component 1412, or a combination thereof). The quantum tasks can include one or more data movements for the execution of a quantum program. The scheduling in 1714 can include one or more processes, such as the processes provided next in blocks 1716 and 1718.

[0293] In 1716, the computer-implemented method 1500 can include generating one or more data transfer lists by a system (e.g., by the non-limiting system 1400, the quantum program implementation system 1402, or the compilation component 1412, or a combination thereof).

[0294] In 1718, the computer-implemented method 1500 can include scheduling one or more data routes of data that have not yet been determined (e.g., along one or more communication paths or one or more segments of a communication path or both) by a system (e.g., by the non-limiting system 1400, the quantum program implementation system 1402, or the compilation component 1412, or a combination thereof).

[0295] In one or more embodiments, the execution in block 1714 can include, additionally or alternatively or both, outputting one or more quantum measurement results (e.g., the quantum measurement result 1417) by a system (e.g., by the quantum system 1401, the quantum operation component 1403, or the quantum processor 1405, or a combination thereof).

[0296] Referring again to FIG. 15, at 1510, the computer-implemented method 1500 can include providing a communication fabric (e.g., communication fabric 1440) by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, or compilation component 1412, or a combination thereof) for execution of a quantum program (e.g., to non-limiting system 1400, quantum program implementation system 1402, or execution component 1416, or a combination thereof). Also at 1510, the computer-implemented method 1500 can include providing an interval boundary (e.g., interval boundary 1442) by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, or interval boundary implementation component 1414, or a combination thereof) for execution of a quantum program (e.g., to non-limiting system 1400, quantum program implementation system 1402, or execution component 1416, or a combination thereof).

[0297] At 1512, the computer-implemented method 1500 can include commonly setting and triggering an interval boundary (e.g., interval boundary 1492) by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, interval boundary implementation component 1414, or execution component 1416, or a combination thereof).

[0298] At 1514, the computer-implemented method 1500 can include executing a quantum job request (e.g., quantum job request 1409) using a communication fabric (e.g., communication fabric 140) and an interval boundary (e.g., interval boundary 1442) by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, execution component 1416, quantum system 1401, quantum operation component 1403, or quantum processor 1405, or a combination thereof).

[0299] The specific processes included in this execution are shown to occur in the continuous triangle 1516, which is described in more detail in FIG. 16. The continuous triangle 1516 leads to block 1518. In one or more embodiments, all of the processes embodied by the continuous triangle 1516 (e.g., as shown in FIG. 16) can be executed. In one or more other embodiments, one or more of the processes embodied by the continuous triangle 1516 can be avoided, or omitted, or both.

[0300] Referring briefly again to FIG. 16, it will be understood that two or more of the processes embodied by blocks 1606, 1608, 1610, and 1612 can occur consecutively. Additionally or alternatively or both, one or more of the processes embodied by blocks 1606, 1608, 1610, and 1612 can occur at least partially in parallel with other processes embodied by blocks 1606, 1608, 1610, and 1612.

[0301] At 1606, the computer-implemented method 1500 can include the system (e.g., by non-limiting system 1400, quantum program implementation system 1402, compile component 1412, or execution component 1416, or a combination thereof) performing one or more data transfers (e.g., communication commands, quantum measurement results, quantum gate parameters, or the like, or a combination thereof) aligned with the iteration of the interval boundary, or (e.g., of one or more quantum tasks) scheduling, or both. For example, in the iteration of the interval boundary, one or more data transfers or scheduling or both can be received, transmitted, or manipulated, or a combination thereof can be performed.

[0302] In 1608, the computer-implemented method 1500 can include executing, by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, compilation component 1412, or execution component 1416, or a combination thereof), one or more multi-qubit gates and / or coupling execution gates (e.g., of one or more quantum tasks) aligned with iterations of interval boundaries (e.g., interval boundary 1442).

[0303] In 1610, the computer-implemented method 1500 can include resynchronizing, by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, compilation component 1412, or execution component 1416, or a combination thereof), one or more control nodes and / or operation nodes using an interval boundary (e.g., interval boundary 942).

[0304] In 1612, the computer-implemented method 1500 can include ignoring, by a system (e.g., by non-limiting system 1400, quantum program implementation system 1402, compilation component 1412, or execution component 1416, or a combination thereof), one or more iterations of an implemented interval boundary (e.g., interval boundary 942). For example, one or more operation nodes including a sequence of single-qubit quantum gates being operated can ignore one or more iterations of an interval boundary.

[0305] Referring again to FIG. 15, in 1518, the computer-implemented method 1500 can include outputting, by a system (e.g., by non-limiting system 1400, quantum program implementation system 502, or output component 1518, or a combination thereof), one or more quantum job results (e.g., quantum job result 1517) to an entity such as a user entity.

[0306] Referring now to FIG. 18, an alternative implementation of the combined execution of the compile component 1412 and the interval boundary implementation component 1414 is described with respect to the quantum program schedule 1800. For clarity, section 1801 of the quantum program schedule 1800 is enlarged.

[0307] Generally, it will be understood that the quantum program implementation system 1402 can provide and implement two or more communication fabrics or two or more interval boundaries or both that can function synchronously to execute a quantum program. In one or more embodiments, the interval boundaries 1492A and 1492B can be implemented by different interval boundary implementation components, or the communication fabrics 1440A and 1140B can be generated or implemented or both by different compile components, or a combination thereof is possible.

[0308] Furthermore, with respect to FIG. 18, it will be understood that any one or both of the functions or capabilities of the communication fabric 140 or the interval boundary 942 or both provided above can apply to the communication fabric 1440A or 1440B or both, or the interval boundary 1492A or 1492B or both, or both described with respect to FIG. 18.

[0309] Now referring to one or more specific aspects shown in the quantum program schedule 1800, FIG. 18 includes the implementation of a pair of interval boundaries 1492A (also referred to as IB A in FIG. 18) and 1492B (also referred to as IB B in FIG. 18), and a pair of communication fabrics 1440A and 1440B. Each of these aspects can be used in the execution of the quantum program schedule 1800 of a single quantum program.

[0310] As shown in FIG. 18, the adopted interval boundaries 1492A and 1492B can be universally implemented at a plurality of nodes such as operation nodes 1420A and 1420B at a plurality of common points that are continuously repeated and are referred to herein as repetitions of the interval boundary. Each adjacent pair of repetitions of the interval boundary can indicate the boundary of a single time interval without one or more other waiting times, arbitration, or other periods, or a combination thereof. That is, one time interval can start when the next time interval starts (e.g., at a repetition or point in time of a common interval boundary), and each time interval of each interval boundary has the same length of time. In one or more other embodiments, additional repetitions or fewer repetitions can be adopted. As shown in FIG. 18, interval boundary 1492A has a longer time interval than interval boundary 1492B.

[0311] In relation to the operation of data transfer or quantum tasks or both, such as the longest period, the length of time of each of the interval boundaries 1492A and 1492B can be determined by the interval boundary implementation component 1414. This longest period can be used as the minimum length of time between repetitions of the interval boundary. If suitable for the quantum program being executed, the quantum program implementation system 1402 or the interval boundary implementation component 1414 or both can adopt a length of time between repetitions of the interval boundary that is longer than the longest period. For example, a longer time interval can better conform to a quantum program that is executed based on the history before executing the quantum program or one or more quantum tasks included in the quantum program or both.

[0312] Both interval boundaries 1492A and 1492B can have a common trigger at 1802. However, in other embodiments, separate triggers can be used.

[0313] Each interval boundary can support different communication fabrics and manage different clock domains, such as DACs and ADCs. In the configuration shown, communication fabric 1440A utilizes interval boundary 1492A (also referred to as IB A in FIG. 18). For example, refer to data transfer 1804 at interval boundary iteration IB A-1 and data transfer 1806 at interval boundary iteration IB A-4. Also, in the configuration shown, communication fabric 1440B utilizes interval boundary 1492B (also referred to as IB B in FIG. 18). For example, refer to data transfers 1808 and 1810.

[0314] In the example of FIG. 18, operation node 1420A controls qubit Q[1] and operation node 1420B controls qubit Q[0]. It will be understood that either communication fabric 1440A or 1440B or both can be utilized by one or both of the shown operation nodes 1420A and 1420B. For example, data transfer 1808 from operation node 1420B utilizes communication fabric 1440B, while data transfer 1806 from the same operation node 1420B utilizes communication fabric 1440A.

[0315] Quantum program schedule 1800 includes a plurality of quantum tasks, such as quantum gate operations, that are respectively executed by operation nodes 1420A and 1420B on qubits Q[1] and Q[0]. One or more of these quantum gate operations are not specifically shown in FIG. 18 but can be multi-gate operations.

[0316] The use of multiple communication fabrics can provide the advantage of further efficient data transfer during the execution of a quantum program. For example, one communication fabric may have a larger average latency than another communication fabric. In one embodiment, one communication fabric may have a larger number of local hardware or software or both aspects thereof. Another communication fabric may have a larger number of globally located hardware or software or both aspects thereof.

[0317] Referring now to FIGS. 14 - 18 in combination, one or more embodiments described herein can integrate the disclosed content into practical applications. In fact, as described herein, one or more embodiments that can take the form of a system, a computer - implemented method, or a computer program product, or a combination thereof, can be regarded as computerized tools that can facilitate the improved operation of a quantum circuit with respect to one or more qubits. Generally, one or more embodiments described herein can reduce the processing power employed, or the time or errors or both, or a combination thereof, by the execution of a quantum program that employs a quantum circuit. This is a useful practical application of a computer, especially considering the effects of time and errors on the decoherence of the qubits employed, and thus can facilitate the improved (e.g., improved or optimized or both) operation of the qubits employed. These improvements can include an improvement in the accuracy of the quantum results or an improvement in the availability of the qubits employed or both. Overall, such computerized tools can constitute specific tangible technical improvements in the field of quantum computing.

[0318] Furthermore, one or more embodiments described herein can control real-world devices based on the disclosed content. For example, one or more embodiments described herein can receive a quantum job request as an input and generate, as a first output, a compiled communication fabric that includes one or more compiled communication instructions for controlling the implementation of a quantum program as one or more physical operations, such as real-world physical pulses, on one or more qubits of a quantum system. Further, one or more embodiments described herein can generate, as a second output, interval boundaries to induce the implementation of one or more compiled communication instructions. One or more embodiments described herein can generate, as a third output, one or more quantum results in response to the execution of one or more physical operations on real-world qubits of a quantum system.

[0319] In one or more embodiments, such as particularly in relation to a compile component, a non-limiting system 1400 employing a quantum program implementation system 1402 and a compile component 1412 can improve (e.g., enhance, optimize, or both) the execution of a quantum program by compiling communication instructions. Accordingly, fast data transfer during the execution of a quantum program can be facilitated. That is, the compile component 1412 can minimize, prevent, or both, the complex, time-consuming, or both, problems of quantum program implementation, such as the collection and distribution of data between a single central point or global shared memory or both. In this way, the compile component 1412 can facilitate a hybrid classical / quantum system to minimize, prevent, or both, the latency that may occur with such a single central point or global shared memory or both, even in the case of duplicate or parallel transfers of data. This is at least partially due to the compile component 1412 compiling one or more communication paths, data parameters, or quantum task schedules, or combinations thereof, prior to the execution of the quantum program.

[0320] Accordingly, the described subject matter can cause an improvement in the execution speed of jobs by the hybrid classical / quantum non-limited system 1400 by employing the compilation component 1412. For example, if there is a high demand for the execution of an increasing number of quantum programs employing the quantum system 1401, the use of the non-limited system 1400 (e.g., including the quantum program implementation system 1402 or the compilation component 1412 or both) can result in facilitating the scaled execution of quantum programs. That is, by reducing the time or error or both that occur during the execution of one or more quantum tasks to operate a quantum circuit on one or more qubits, a slower occurrence of decoherence of one or more qubits can allow an additional quantum program to be executed on the qubits. This can then lead to a related reduction in the provision of new qubits by a quantum system having one or more qubits, and as a result, can lead to an improvement in the availability of the processing power of the quantum processor of the quantum system, at least partially due to the reduced provision of new qubits.

[0321] Furthermore, for example, without interleaving and scheduling data movement between cycles involving the transfer and analysis of quantum results, quantum gate instructions, or quantum parameters, or combinations thereof, the processing speed of both the classical resources and the quantum resources of each hybrid classical / quantum system (e.g., the non-limited system 1400) can be further improved. Thus, the non-limited system 1400 (e.g., including the quantum program implementation system 1402 or the compilation component 1412 or both) can thereby facilitate an improvement in performance, an improvement in efficiency, a reduction in computational cost, or a combination thereof, related to a quantum processing unit (e.g., the quantum processor 1405 of the quantum system 1401) that executes one or more quantum tasks according to a compiled communication fabric (e.g., the compiled communication fabric 1440).

[0322] Furthermore, the hardware and / or software, or both, through which the communication fabric 1440 is implemented can be simplified. This can be because the problem of implementing communication between nodes can be separated and solved in a way that is separated from the even more complex problem of planning the execution of quantum tests. Configuration concepts such as FPI and data transfer lists can specify the interfaces and requirements for the implementation of the communication fabric for the execution of a particular quantum program or experiment. Thus, the implementation of the communication fabric can be a separate and independent process within the overall process of the execution of the quantum program and / or the compilation of the experiment, and in one or more cases can overlap with the compilation process of other related experiments outside of the communication fabric in order to improve the overall propagation of communication.

[0323] Furthermore, in one or more embodiments, such as particularly in relation to the interval boundary implementation component 1414, the non-limiting system 1400 employing the quantum program implementation system 1402 and the interval boundary implementation component 1414 can improve (e.g., enhance or optimize, or both) the execution of the quantum program by implementing (e.g., commonly setting and triggering at multiple control nodes and / or operation nodes, or both) the interval boundary 1442.

[0324] As a result, synchronized data transfer or quantum tasks or both during the execution of a quantum program can be facilitated. That is, the interval boundary implementation component 1414 minimizes or prevents or both the implementation problems of a quantum program that are complex or time-consuming or both, such as the synchronization of such data transfer or quantum tasks or both between multiple control nodes or operation nodes or both of each hybrid classical / quantum system executing the quantum program. In particular, the interval boundary implementation component 1414 may enable the implementation of regular synchronization points across multiple nodes (e.g., control or operation or both) where the hybrid classical / quantum system spans a large physical distance or is connected in any configuration or both. For example, data from a CPU or control node can be read and captured at an endpoint facing a register referenced by the IB clock, while transfers on the internal communication fabric can instead occur at a much higher frequency communication fabric clock.

[0325] As another result, the implementation of the interval boundary 1442 enables continuous synchronization of multiple nodes throughout the execution of each quantum program, so that loss of synchronization can be tolerated. That is, additional processing power, software, or hardware, or a combination thereof, can be directed other than to maintain perfect synchronization by each control node or operating node or both. Instead, classical variable computation times or data transfers or both can be taken into account by a common continuously repeating interval boundary employed as part of the implementation of the interval boundary. Different operating nodes can receive data such as one or more quantum parameters to operate on multi-qubit gates at different times, and further, each operating node facilitating the operation of the multi-qubit gate can be resynchronized at the next iteration of the interval boundary for the common operation of the multi-qubit gate. Similarly, different control nodes can receive one or more quantum measurement results from multiple operating nodes (e.g., from multiple qubits) at varying times, and further, classical computation or data transfer or both can be adjusted (e.g., synchronized) at the next iteration of the interval boundary.

[0326] As yet another result, a communication path facilitating data transfer can be inaccurate with respect to latency. This can be an inherent advantage in a multi-qubit system having constraints or variations or both in packages or cables or both.

[0327] The interval boundary implementation component 1414 can enable a hybrid classical / quantum system to not employ, or hardly employ, overhead in order to minimize latency during the execution of a quantum program. That is, data transfer, computation time, quantum gate operation time, or related composite latency, or a combination thereof, can be not computed, not estimated, or both, during the execution of a quantum program. That is, separate timings for performing coupling operations or multi-qubit operations or both during the execution of a quantum program can be prevented. Instead, the interval boundary 1442 is universally set and triggered prior to at least the initialization of one or more quantum tasks of each quantum program, thus implementing a plurality of consecutive repeating interval boundary iterations that are the same at each node and facilitating one or more quantum tasks.

[0328] Furthermore, the described subject matter can cause a reduction in the processing capabilities employed by related classical nodes (e.g., classical control nodes) by adopting the disclosed interval boundary 1442. This is because, at least in part, it is not possible to compute and implement such separate timings during the execution of a quantum program. Therefore, the non-limiting system 1400 (e.g., including the quantum program implementation system 1402 or the interval boundary implementation component 1414 or both) can thereby facilitate an improvement in performance, an improvement in efficiency, a reduction in computational cost, or a combination thereof, associated with one or more classical processing units (CPUs) of the non-limiting system 1400.

[0329] Furthermore, the interval boundary component 1414, like the compile component 1412, can also facilitate the scaled execution of quantum programs. For example, by employing the interval boundary component 1414, and thus reducing, or eliminating, or both, the variable latency that occurs during the execution of one or more quantum tasks to operate on one or more qubits, and thus reducing errors, a slower occurrence of decoherence of one or more qubits can enable the execution of additional quantum programs on the qubits. This can then lead to a related reduction in the provision of new qubits by a quantum system comprising one or more qubits, and as a result, can lead to an improvement in the availability of the processing power of the quantum processor of the quantum system, at least partially due to the reduced provision of new qubits.

[0330] Here, one or more embodiments described above with respect to FIGS. 1 - 18, or extensions or modifications or both of those embodiments, or combinations thereof, are described as being applicable. A system or device or both are described herein with respect to the interactions between multiple components (or further described). It should be understood that such systems and components can include one or more of those components or subcomponents specified within them, one or more of the specified components or subcomponents or both, or additional components, or combinations thereof. A subcomponent can be implemented as a component communicatively coupled to other components rather than being included within a parent component. One or more components or subcomponents or both can be coupled to a single component that provides a collective function. Components, although not specifically described herein for brevity, can interact with one or more other components known to those skilled in the art.

[0331] The computer-implemented methods provided herein are shown as, or described as, or both, a series of operations. It should be understood that the innovative technology of the subject is not limited by the shown operations, or by the order of the operations, or by both. For example, it is understood that the operations can occur in one or more orders, or simultaneously, or both, with other operations not presented or described herein. Further, not all of the shown operations need to be utilized to implement the computer-implemented method according to the disclosed subject matter. Additionally, those skilled in the art will understand that the computer-implemented method can alternatively be represented as a series of states or events related to each other via a state diagram. It should further be understood that the computer-implemented methods described below and throughout this specification can be stored in a product to facilitate transporting or transferring the computer-implemented method to a computer. As used herein, the term product is intended to include a computer program accessible from any computer-readable device or computer-readable storage medium.

[0332] It should be understood that one or more of the embodiments described herein are essentially closely related to computer technology and cannot be implemented outside of a hybrid classical / quantum computing environment. For example, one or more processes executed by one or more of the embodiments described herein can provide these data parameters more efficiently compared to current systems or technologies or both. Systems, computer-implemented methods, or computer program products, or combinations thereof, that facilitate the execution of these processes are very useful in the field of quantum computing and cannot be implemented in a similarly executable manner in a sensible way outside of a computing environment.

[0333] In one or more embodiments, one or more of the processes described herein may be performed by one or more special computers (e.g., special processing units, special classical computers, special quantum computers, special hybrid classical / quantum systems, or other types of special computers, or combinations thereof) to perform defined tasks related to one or more of the technologies described above. One or more of the embodiments described herein, or components of the embodiments, or both, may be employed to solve new problems arising from the adoption of advancements in the aforementioned technologies, quantum computing systems, cloud computing systems, computer architectures, or other technologies, or combinations thereof.

[0334] One or more of the embodiments described herein can be fully operable to perform one or more other functions (e.g., functions of being fully powered on, fully executed, or other, or combinations thereof) while also performing one or more of the operations described herein.

[0335] Next, to provide additional context for one or more of the embodiments described herein, FIGS. 19 and the following description are intended to show a brief overview of a suitable operating environment 1900 in which one or more of the embodiments described herein may be implemented. For example, one or more components of the embodiments described herein, or other aspects, or both, may be implemented within the operating environment 1900 or associated with the operating environment 1900. Further, although one or more of the embodiments have been described above in the general context of computer-executable instructions that may be executed on one or more computers, those skilled in the art will recognize that the embodiments may also be implemented in combination with other program modules, or as a combination of hardware and software, or both.

[0336] Typically, a program module can include routines, programs, components, data structures, or the like, or combinations thereof, that perform particular tasks or implement particular abstract data types, or both. Further, those skilled in the art will appreciate that the methods of the present invention can be practiced using other computer system configurations including single-processor computer systems or multi-processor computer systems, minicomputers, mainframe computers, single Internet of Things (IoT) devices, distributed computing systems, as well as personal computers, handheld computing devices, microprocessor-based consumer electronics or programmable consumer electronics, or the like, or combinations thereof, each of which can be operably coupled to one or more associated devices.

[0337] A computing device can typically include various media that can include a computer-readable storage medium, a machine-readable storage medium, or a communication medium, or combinations thereof, and as used herein, the following two terms are used differently from each other. A computer-readable storage medium or a machine-readable storage medium can be any usable storage medium accessible by a computer and includes both volatile and non-volatile media, removable and non-removable media. By way of example, a computer-readable storage medium or a machine-readable storage medium, or both, can be implemented in connection with any method or technology for storage of information such as computer-readable instructions or machine-readable instructions, or both, program modules, structured data or unstructured data, or both, but is not limited thereto.

[0338] A computer-readable storage medium can include, but is not limited to, random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technologies, compact disk read only memory (CD-ROM), digital versatile disk (DVD), Blu-ray disc (BD), or other optical disk storage, or a combination thereof, magnetic cassette, magnetic tape, magnetic disk storage, or other magnetic storage devices, or a combination thereof, semiconductor drives or other semiconductor storage devices, or other tangible media or non-transitory media or both, or a combination thereof that can be used to store desired information. In this regard, the terms "tangible" or "non-transitory" as used herein, when applied to storage, memory, or computer-readable media, are understood to exclude only transitory signals that propagate themselves as a modifier, and do not waive rights to all standard storage, memory, or computer-readable media that are not merely transitory signals that propagate themselves.

[0339] A computer-readable storage medium can be accessed by one or more local computing devices or remote computing devices via, for example, access requests, queries, or other data retrieval protocols, or a combination thereof, for various operations related to the information stored by the medium.

[0340] A communication medium typically embodies computer-readable instructions, data structures, program modules, or other structured or unstructured data in a data signal such as a modulated data signal (e.g., a carrier wave or other transport mechanism) and includes any information delivery or transport medium. The term "modulated data signal" refers to a signal having one or more of the characteristics set or changed in such a way as to encode information in one or more signals. By way of example, the communication medium can include, but is not limited to, wired media such as wired networks, direct wired connections, or wireless media such as acoustic, RF, infrared, or other wireless media, or combinations thereof, or both.

[0341] Referring again to FIG. 19, an exemplary operating environment 1900 for implementing one or more embodiments of the aspects described herein includes a computer 1902, which can include a processing unit 1906, a system memory 1904, or a system bus 1908, or combinations thereof. It will be understood that any aspect of the system memory 1904 or the processing unit 1906 can be applied respectively to the memory 104, 904, or 1404, or combinations thereof, or the processor 106, 906, or 1406, or combinations thereof, or both, of the non-limiting systems 100, 900, or 1400, or combinations thereof. It will also be understood that the system memory 1904 can be implemented in combination with, or as an alternative to, or both, the memory 104, 904, or 1404, or combinations thereof. Similarly, it will be understood that the processing unit 1906 can be implemented in combination with, or as an alternative to, or both, the processor 106, 906, or 1406, or combinations thereof.

[0342] Memory 1904 can store components or instructions or both that can be read, written, or executed by one or more computers or machines or both, or combinations thereof, and these components or instructions or both, when executed by processing unit 1906 (e.g., a classical processor, a quantum processor, or a similar processor, or combinations thereof), can facilitate the execution of operations defined by executable components or instructions or both. For example, memory 1904 can store components or instructions or both that can be read, written, or executed by a computer or machine or combinations thereof, and these components or instructions or both, when executed by processing unit 1906, can facilitate the execution of one or more functions described herein with reference to, or without reference to, one or more figures of one or more embodiments, as described herein, of non-limiting systems 100 / 100E, 900 / 900E, or 1400, or combinations thereof, or quantum program implementation systems 102, 902, or 1402, or combinations thereof, or both.

[0343] Memory 1904 can include volatile memory (e.g., random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), or the like, or combinations thereof) or non-volatile memory (e.g., read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or the like, or combinations thereof) or both, adopting one or more memory architectures.

[0344] The processing unit 1906 can include one or more types of processors or electronic circuits or both (e.g., classical processors, quantum processors, or similar processors, or combinations thereof) that can implement components or instructions or both that can be stored in the memory 1904 and can be read, written, or executed by one or more computers or machines or both, or combinations thereof. For example, the processing unit 1906 can execute one or more operations including, but not limited to, logic, control, input / output (I / O), arithmetic, or the like, or combinations thereof, that can be specified by components or instructions or both that can be read, written, or executed by one or more computers or machines or both, or combinations thereof. In one or more embodiments, the processing unit 1906 can be any one of one or more commercially available processors. In one or more embodiments, the processing unit 1906 can include one or more central processing units, multi-core processors, microprocessors, dual microprocessors, microcontrollers, system-on-a-chip (SOC), array processors, vector processors, quantum processors, or another type of processor, or combinations thereof. Examples of the processing unit 1906 can be employed to implement any one or more of the embodiments described herein.

[0345] System bus 1908 can couple system components, including but not limited to system memory 1904, to processing unit 1906. System bus 1908 can be any of several types of bus structures that can further interconnect to a memory bus (with or without a memory controller), a peripheral bus, or a local bus, or a combination thereof, using any of a variety of commercially available bus architectures. System memory 1904 can include ROM 1910 or RAM 1912 or both. The basic input / output system (BIOS) can be stored in non-volatile memory such as ROM, erasable programmable read-only memory (EPROM), or EEPROM, or a combination thereof, and the BIOS includes basic routines that help transfer information between elements within computer 1902 during startup and the like. RAM 1912 can include high-speed RAM such as static RAM for caching data.

[0346] Computer 1902 can include an internal hard disk drive (HDD) 1914 (e.g., EIDE, SATA), one or more external storage devices 1916 (e.g., magnetic floppy (R) disk drive (FDD), memory stick or flash drive reader, memory card reader, or the like, or a combination thereof), or a drive 1920 (e.g., a semiconductor drive or an optical disk drive that can read from or write to a disk 1922 such as a CD-ROM disk, DVD, BD, or the like, or a combination thereof), or a combination thereof. Additionally or alternatively or both, if a semiconductor drive is included, the disk 1922 cannot be included unless it is separate. Although the internal HDD 1914 is shown as being within the computer 1902, the internal HDD 1914 can also be configured to be used within an external suitable enclosure (not shown). Further, although not shown within the operating environment 1900, in addition to or instead of the HDD 1914, a solid state drive (SSD) can be used. The HDD 1914, external storage device 1916, and drive 1920 can each be connected to the system bus 1908 by an HDD interface 1924, an external storage interface 1926, and a drive interface 1928, respectively. The HDD interface 1924 for the implementation of an external drive can include at least one or both of Universal Serial Bus (USB) interface technology and Institute of Electrical and Electronics Engineers (IEEE) 1394 interface technology. Other external drive connection technologies are included within the contemplation of the embodiments described herein.

[0347] Drives and their associated computer-readable storage media provide non-volatile storage of data, data structures, computer-executable instructions, and the like. The drives and storage media of computer 1902 are capable of storing any data in a suitable digital format. Although the description of the computer-readable storage media above refers to various storage devices, it should be understood by those skilled in the art that other types of storage media that can be read by a computer can be used within the exemplary operating environment, whether currently existing or to be developed in the future, or that any such storage media can contain computer-executable instructions for performing the methods described herein, or both.

[0348] A plurality of program modules including operating systems 1930, one or more applications 1932, other program modules 1934, or program data 1936, or combinations thereof, can be stored in the drive and RAM 1912. All or part of the operating system, application, module, or data, or combinations thereof, can also be cached in RAM 1912. The systems or methods described herein, or both, can be implemented using one or more commercially available operating systems, or combinations of operating systems, or both.

[0349] Computer 1902 can optionally include emulation techniques. For example, a hypervisor (not shown) or other medium can emulate the hardware environment of the operating system 1930, and the emulated hardware can optionally be different from the hardware shown in FIG. 19. In related embodiments, the operating system 1930 can include one virtual machine (VM) out of a plurality of virtual machines hosted on the computer 1902. Further, the operating system 1930 can provide a runtime environment such as the JAVA(R) runtime environment or the.NET framework to the application 1932. The runtime environment is a consistent execution environment that can enable the application 1932 to be executed on any operating system that includes the runtime environment. Similarly, the operating system 1930 can support containers, the application 1932 can be in the form of a container, and the container is a lightweight stand-alone executable software package that includes, for example, code for the application, a runtime, system tools, system libraries, or settings, or a combination thereof.

[0350] Furthermore, the computer 1902 can be enabled using a security module such as a trusted processing module (TPM). For example, using the TPM, the boot components hash the next boot component in time, wait for the hash result to match the protected value, and then load the next boot component. This process can be performed at any layer within the code execution stack of the computer 1902, for example, at the application execution level, or at the operating system (OS) kernel level, or both, thereby enabling security at any level of code execution.

[0351] The entity can input, or transmit, or do both a command or information or both to the computer 1902 via one or more wired / wireless input devices (for example, a pointing device such as a keyboard 1938, a touch screen 1940, or a mouse 1942, or a combination thereof). Other input devices (not shown) can include a microphone, an infrared (IR) remote control, a radio frequency (RF) remote control, or other remote controls, or a combination thereof, a joystick, a virtual reality controller or virtual reality headset or both, a game pad, a touch pen, an image input device (for example, a camera), a gesture sensor input device, a visual movement sensor input device, an emotion or face detection device, a biometric input device (for example, a fingerprint or iris scanner or both), or the like, or a combination thereof. These and other input devices can often be connected to the processing unit 1906 via an input device interface 1944 that can be coupled to the system bus 1908, but can be connected by other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, a BLUETOOTH(R) interface, or the like, or a combination thereof.

[0352] A monitor 1946 or other type of display device can be connected to the system bus 1908 via an interface such as a video adapter 1948 as an alternative or in addition or both. In addition to the monitor 1946, the computer typically includes other peripheral output devices (not shown) such as speakers, printers, or the like, or a combination thereof.

[0353] Computer 1902 can operate within a network environment using logical connections to one or more remote computers, such as remote computer 1950, via wired communication, wireless communication, or both. Remote computer 1950 can be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other common network node, or a combination thereof, and typically includes many or all of the elements described in relation to computer 1902, but for brevity only memory / storage device 1952 is shown. Additionally or alternatively or both, computer 1902 can be coupled (e.g., communicatively, electrically, operably, optically, or the like, or a combination thereof) to one or more external systems, sources, or devices (e.g., classical or quantum or both computing devices, communication devices, or similar devices, or a combination thereof), or a combination thereof, via a data cable (e.g., high-definition multimedia interface (HDMI(R)), recommended standard (RS) 232, Ethernet(R) cable, or the like, or a combination thereof).

[0354] In one or more embodiments, the network can include one or more wired networks and / or wireless networks, including but not limited to cellular networks, wide area networks (WANs) (e.g., the Internet), or local area networks (LANs). For example, one or more embodiments described herein can include Wireless Fidelity (Wi-Fi), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX), enhanced General Packet Radio Service (enhanced GPRS), Third Generation Partnership Project (3GPP) Long Term Evolution (LTE), Third Generation Partnership Project 2 (3GPP2) Ultra Mobile Broadband (UMB), High Speed Packet Access (HSPA), Zigbee, and other 802.Use virtually any desired wired or wireless technology, including but not limited to XX wireless technology or legacy communication technology or both, BLUETOOTH(R), Session Initiation Protocol (SIP), ZIGBEE(R), RF4CE protocol, WirelessHART protocol, 6LoWPAN (IPv6 over Low power Wireless Area Networks), Z-Wave, ANT, ultra-wideband (UWB) standard protocol, or other proprietary or non-proprietary or both communication protocols, or combinations thereof, to communicate with one or more external systems, sources, or devices (e.g., computing devices), or combinations thereof (and to communicate therewith in the reverse direction). In related examples, one or more embodiments described herein include hardware (e.g., a central processing unit (CPU), transceiver, decoder, quantum hardware, quantum processor, or the like, or combinations thereof), software (e.g., a series of threads, a series of processes, running software, quantum pulse schedule, quantum circuit, quantum gate, or the like, or combinations thereof), or a combination of hardware or software or both, that facilitate the transfer of information between one or more embodiments described herein and external systems, sources, or devices (e.g., computing devices, communication devices, or the like, or combinations thereof), or combinations thereof).

[0355] The logical connections shown in the figures include wired / wireless connections to a local area network (LAN) 1954 or a larger network (e.g., wide area network (WAN) 1956) or both. LAN and WAN network environments can be common in offices and companies, facilitating enterprise-wide computer networks such as intranets, and all of them can be connected to a global communication network (e.g., the Internet).

[0356] When used within a LAN network environment, computer 1902 can be connected to local network 1954 via a wired or wireless or both communication network interface or adapter 1958. Adapter 1958 can facilitate wired or wireless or both communication with LAN 1954, and LAN 1954 can also include a wireless access point (AP) arranged to communicate with adapter 1958 in wireless mode.

[0357] When used within a WAN network environment, computer 1902 can include a modem 1960 or can be connected to a communication server on WAN 1956 by other means for establishing communication via WAN 1956 such as via the Internet, or both. Modem 1960, which can be a wired device or a wireless device or both, existing internally or externally or both, can be connected to system bus 1908 via input device interface 1944. Within the network environment, program modules shown in relation to computer 1902 or a part thereof can be stored in remote memory / storage device 1952. It will be understood that the network connections shown are merely examples and that one or more other means for establishing communication links between computers can be used.

[0358] When used either within a LAN network environment or within a WAN network environment, computer 1902 can access a cloud storage system or other network-based storage system, such as, but not limited to, a network virtual machine that provides one or more aspects of storing or processing information or both, in addition to, instead of, or both in place of external storage device 1916 as described above. Generally, the connection between computer 1902 and the cloud storage system can be established via LAN 1954 or WAN 1956, for example, by adapter 1958 or modem 1960 respectively. When connecting computer 1902 to an associated cloud storage system, external storage interface 1926 can manage the storage provided by the cloud storage system in the same manner as other types of external storage, using, for example, adapter 1958 or modem 1960 or both. For example, external storage interface 1926 can be configured to provide access to the cloud storage source as if the cloud storage source were physically connected to computer 1902.

[0359] Computer 1902 can function to communicate with any wireless device or entity (e.g., a printer, scanner, desktop computer or portable computer or both, portable data assistant, communication satellite, telephone, or any part or location of a device associated with a wirelessly detectable tag (e.g., a kiosk, newspaper stand, merchandise shelf, or the like, or combinations thereof)) that is operably disposed for wireless communication. This communication can include wireless fidelity (Wi-Fi) and BLUETOOTH(R) wireless technologies. Thus, this communication can be in a pre-defined structure like a conventional network or simply an ad-hoc communication between at least two devices.

[0360] The example embodiments described herein may be practiced within a distributed computing environment (e.g., a cloud computing environment), such as the distributed computing environment described below with respect to FIG. 20, in which certain tasks are performed by remote processing devices linked via a communication network. In a distributed computing environment, program modules may be located in local or remote or both memory storage devices.

[0361] For example, one or more embodiments or one or more components of an embodiment described herein may employ one or more computing resources of a cloud computing environment 2050 described below with reference to FIG. 20, or with reference to FIG. 21, or with reference to one or more functional abstraction layers (e.g., quantum software, or the like, or both) described below, or both, to perform one or more operations according to one or more embodiments described herein. For example, one or more of the cloud computing environment 2050, or the functional abstraction layers 2160, 2170, 2180, or 2190, or a combination thereof, or both, may be employed by one or more embodiments or components of an embodiment described herein, or both, to perform one or more operations according to one or more embodiments described herein, one or more classical computing devices (e.g., classical computers, classical processors, virtual machines, servers, or the like, or a combination thereof), quantum hardware, or quantum software, or a combination thereof (e.g., quantum computing devices, quantum computers, quantum processors, quantum circuit simulation software, superconducting circuits, or the like, or a combination thereof). For example, one or more embodiments or components of an embodiment described herein, or both, may use such one or more classical computing resources or quantum computing resources, or both, to perform one or more classical or quantum or both mathematical functions, calculations, or equations, or a combination thereof, computational scripts or processing scripts, or both, algorithms, models (e.g., artificial intelligence (AI) models, machine learning (ML) models, or the like, or a combination thereof), or other operations according to one or more embodiments described herein, or a combination thereof.

[0362] One or more embodiments described herein include detailed descriptions regarding cloud computing, but it should be understood that the implementation of the content shown herein is not limited to a cloud computing environment. Rather, one or more embodiments described herein can be implemented in combination with any other type of computing environment that is currently known or will be developed in the future.

[0363] Cloud computing is a service delivery model that enables 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), and these resources can be rapidly provisioned and released with minimal management effort or interaction with a service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0364] The characteristics are as follows.

[0365] On-demand self-service: Cloud users can automatically provision computing capabilities such as server time and network storage unilaterally without the need for human interaction with a service provider as needed.

[0366] Broad network access: Cloud capabilities are available via the network and can be accessed using standard mechanisms, facilitating use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0367] Resource Pool: The provider's computing resources are pooled and provided to multiple users using a multi-tenant model. Various physical and virtual resources are dynamically allocated and reallocated according to requests. There is a sense of location independence, and users usually neither manage nor know about the exact location of the resources provided. At a higher level of abstraction, however, a location (e.g., country, state, or data center, or a combination thereof) can be specified.

[0368] Rapid Elasticity: The cloud's capabilities can be provisioned quickly and flexibly, automatically in one or more cases, scale out rapidly, and be released quickly to scale in. The capabilities available for provisioning can appear to the user as if any amount can be purchased at any time without limit.

[0369] Measured Service: The cloud system automatically controls and optimizes the use of resources at one or more levels of abstraction suitable for the type of service (e.g., storage, processing, bandwidth, or active user accounts, or a combination thereof) by leveraging metering capabilities. The usage of resources can be monitored, controlled, and reported, providing transparency to both the provider and the user of the services utilized.

[0370] The service model is as follows.

[0371] SaaS (Software as a Service): The capabilities provided to users are the use of the provider's applications, such as applications running on cloud infrastructure. These applications can be accessed from various client devices via a thin client interface such as a web browser (e.g., web-based email). Users do not manage or control the underlying cloud infrastructure, which includes the network, servers, operating systems, storage, or individual application features, or combinations thereof, except for limited user-specific application configuration settings.

[0372] PaaS (Platform as a Service): The capabilities provided to users are to deploy the applications created or obtained by the users, which are created using programming languages and tools supported by the provider, to the cloud infrastructure. Users do not manage or control the underlying cloud infrastructure, which includes the network, servers, operating systems, or storage, or combinations thereof, but can control the deployed applications and, in some cases, the configuration of the application hosting environment.

[0373] IaaS (Infrastructure as a Service): The capabilities provided to users are the provisioning of processing, storage, network, or other basic computing resources, or combinations thereof, and users can deploy and run any software that can include operating systems and applications. Users do not manage or control the underlying cloud infrastructure, but can control the operating system, storage, deployed applications, and, in some cases, limited control over selected network components (e.g., host firewalls).

[0374] The deployment model is as follows.

[0375] Private cloud: This cloud infrastructure is operated only for an organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0376] Community cloud: This cloud infrastructure is shared by multiple organizations and supports a specific community that shares concerns (e.g., missions, security requirements, policies, or compliance considerations, or a combination thereof). It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0377] Public cloud: This cloud infrastructure is available for use by general users or large industry groups and is owned by an organization that sells cloud services.

[0378] Hybrid cloud: This cloud infrastructure is a composite of two or more clouds (private, community, or public) that are combined with each other while leaving their unique entities intact by means of standardized technologies or proprietary technologies (e.g., cloud bursting to balance the load between clouds) that enable the migration of data and applications.

[0379] The cloud computing environment is a service-oriented environment that emphasizes statelessness, loose coupling, modularity, or semantic interoperability, or a combination thereof. At the center of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0380] Furthermore, the non-limiting systems 100 / 100E, 900 / 900E, or 1400, or combinations thereof, or the exemplary operating environment 1900, or both, may be associated with or included in a data analysis system, a data processing system, a graph analysis system, a graph processing system, a big data system, a social network system, a speech recognition system, an image recognition system, a graphical modeling system, a bioinformatics system, a data compression system, an artificial intelligence system, an authentication system, a syntactic pattern recognition system, a medical system, a health monitoring system, a network system, a computer network system, a communication system, a router system, a server system, a high availability server system (e.g., a telecommunications server system), a web server system, a file server system, a data server system, a disk array system, a powered insertion board system, a cloud-based system, or the like, or combinations thereof. Accordingly, the non-limiting systems 100 / 100E, 900 / 900E, or 1400, or combinations thereof, or the exemplary operating environment 1900, or both, may be employed to solve inherently highly technical problems that are not abstract or not capable of being performed as a series of mental acts by a human, or both.

[0381] Referring now to the details of one or more aspects shown in FIG. 20, an exemplary cloud computing environment 2050 is shown. As illustrated, cloud computing environment 2050 includes one or more cloud computing nodes 2010 with which local computing devices (e.g., personal digital assistants (PDAs) or mobile phones 2054A, desktop computers 2054B, laptop computers 2054C, or automotive computer systems 2054N, or combinations thereof) used by cloud consumers can communicate. Although not shown in FIG. 20, cloud computing nodes 2010 may further include a quantum platform (e.g., a quantum computer, quantum hardware, quantum software, or the like, or combinations thereof) with which local computing devices used by cloud consumers can communicate. Cloud computing nodes 2010 can communicate with one another. Nodes 2010 may be physically or virtually grouped (not shown) in one or more networks into private clouds, community clouds, or hybrid clouds, or combinations thereof, as described hereinabove. Thereby, cloud computing environment 2050 can provide an infrastructure, platform, or SaaS, or combinations thereof, in which cloud consumers need not maintain resources on local computing devices. The types of computing devices 2054A-N shown in FIG. 20 are intended only as examples, and it is understood that cloud computing nodes 2010 and cloud computing environment 2050 can communicate with any type of computer controlled device via any type of network or network addressable connection (e.g., connection using a web browser) or both.

[0382] Referring now to the details of one or more aspects shown in FIG. 21, a set of functional abstraction layers is shown, such as a set of functional abstraction layers provided by the cloud computing environment 2050 (FIG. 20). One or more embodiments described herein may be associated with one or more functional abstraction layers (e.g., hardware and software layer 2160, virtualization layer 2170, management layer 2180, or workload layer 2190, or combinations thereof) described below with reference to FIG. 21. It should be understood in advance that the components, layers, or functions shown in FIG. 21, or combinations thereof, are intended for illustration only, and the embodiments described herein are not limited thereto. As shown in the figure, the following layers or corresponding functions or both are provided.

[0383] The hardware and software layer 2160 can include hardware components and software components. Examples of hardware components include mainframe 2161, RISC (Reduced Instruction Set Computer) architecture-based server 2162, server 2163, blade server 2164, storage device 2165, or network or network components or both 2166, or combinations thereof. In one or more embodiments, the software components can include network application server software 2167, quantum platform routing software 2168, or quantum software (not shown in FIG. 21), or combinations thereof.

[0384] The virtualization layer 2170 can include an abstract layer that can provide virtual entities such as virtual servers 2171, virtual storage 2172, a virtual network 2173 including a virtual private network, virtual applications or operating systems or both 2174, or virtual clients 2175, or combinations thereof.

[0385] For example, the management layer 2180 can provide the functions described below. Resource provisioning 2181 can perform dynamic procurement of computing resources and other resources that can be utilized to execute tasks within a cloud computing environment. Metering and pricing 2182 can perform cost tracking when resources are utilized within a cloud computing environment, or send bills or invoices or both for the utilization of those resources, or both. In one example, those resources can include one or more application software licenses. Security can perform ID verification of cloud users or tasks or both, and protect data or other resources or both. The user (or entity) portal 2183 can provide access to the cloud computing environment to users and system administrators. Service level management 2184 can perform allocation or management or both of cloud computing resources to meet the required service levels. Service level agreement (SLA) planning and execution 2185 can perform advance preparation and procurement of cloud computing resources for which future demands are expected, in accordance with the SLA.

[0386] The workload layer 2190 can show examples of functions available in a cloud computing environment. Non-limiting examples of workloads and functions that can be provided from this layer include mapping and navigation 2191, software development and life cycle management 2192, delivery of virtual classroom education 2193, data analysis processing 2194, transaction processing 2195, or application conversion software 2196, or combinations thereof.

[0387] The embodiments described herein can be directed to one or more of a system, a method, an apparatus, or a computer program product, or a combination thereof, at any possible technical detail level of integration. A computer program product can include a computer-readable storage medium including computer-readable program instructions for causing a processor to execute aspects of one or more of the embodiments described herein. The computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. The computer-readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, or a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of the computer-readable storage medium can also include a portable floppy (R) disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy (R) disk, or a mechanically encoded device such as a punch card or raised structures in grooves in which instructions are recorded, or any suitable combination thereof. As used herein, a computer-readable storage medium should not be construed to be a signal per se that is a transient signal, such as radio waves or other freely propagating electromagnetic waves or both, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses passing through an optical fiber cable) or both, or electrical signals transmitted via a wire, or a combination thereof.

[0388] 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 external storage device, either via a network (e.g., the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof), or to both. This network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. The network adapter card or network interface within each computing / processing device receives the computer-readable program instructions from the network and transfers them for storage on the computer-readable storage medium within each computing / processing device. The computer-readable program instructions for carrying out the operations of one or more embodiments described herein can be source code and / or object code described in any combination of one or more programming languages, including assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuits, and / or object-oriented programming languages such as Smalltalk(R), C++, and / or procedural programming languages such as the "C" programming language and / or similar programming languages. The computer-readable program instructions can be executed entirely on the computer, partially on the computer as a stand-alone software package, partially on the computer and / or remotely on the computer, or entirely on the remote computer or server or both, or any combination thereof.In the latter scenario, the remote computer can be connected to the computer via any type of network including a local area network (LAN) or a wide area network (WAN) or both, or the connection can be made to an external computer (e.g., via the Internet using an Internet service provider), or both. In one or more embodiments, an electronic circuit including, for example, a programmable logic circuit, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), or a combination thereof, can execute computer-readable program instructions for customizing the electronic circuit by utilizing the state information of the computer-readable program instructions for performing aspects of one or more of the embodiments described herein.

[0389] Aspects of one or more embodiments described herein are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to one or more embodiments described herein. 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. 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, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions may be stored in a computer-readable storage medium that can include a product that contains instructions enabling a computer, programmable data processing apparatus, or other device, or combinations thereof, to function in a particular manner, such that the instructions stored in the computer-readable storage medium implement the aspects of the functions / acts specified in one or more blocks of the flowchart and / or block diagram. The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, or combinations thereof, such that the instructions executed on the computer, other programmable data processing apparatus, or other device cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device, or combinations thereof, implementing the functions / acts specified in one or more blocks of the flowchart and / or block diagram.

[0390] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, or operation, or a combination thereof, of a possible implementation of a system, a computer-implementable method, or a computer program product, or a combination thereof, according to one or more embodiments described herein. In this regard, each block in the flowchart or block diagram can represent a module, segment, or portion, or a combination thereof, of one or more executable instructions for implementing the specified logical function. In one or more alternative implementations, the functions noted in the blocks can occur out of the order noted in the figures. For example, two blocks shown in succession can be executed substantially concurrently, depending on the functions involved, or in reverse order, or both, in some cases. Note also that each block of the block diagrams or flowchart diagrams, or both, or a combination of blocks in the block diagrams or flowchart diagrams, or both, can be implemented by a dedicated hardware-based system that is capable of performing the specified function or functions, or both, or by a combination of one or more computer instructions and dedicated hardware, or both.

[0391] In the foregoing, the subject matter has been described in the general context of computer-executable instructions of a computer program product, which can be executed by one or more computers or both. Those skilled in the art will recognize that one or more embodiments described herein can also be implemented in combination with one or more other program modules. Generally, program modules include routines, programs, components, data structures, or the like, or combinations thereof, that perform particular tasks or implement particular abstract data types or both. Further, those skilled in the art will understand that the computer-implemented methods of the present invention can be practiced using other computer system configurations, including single-processor computer systems or multiprocessor computer systems or both, minicomputing devices, mainframe computers, in addition to computers, handheld computing devices (e.g., PDAs, telephones), microprocessor-based or programmable consumer electronics or industrial electronic devices or both, or the like, or combinations thereof. The illustrated aspects can also be practiced in a distributed computing environment where tasks are performed by remote processing devices linked through a communications network. However, even if not all aspects of one or more of the embodiments described herein, one or more aspects can be practiced on a stand-alone computer. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.

[0392] As used in this application, the terms "component", "system", "platform", "interface", or the like, or combinations thereof, can refer to, can include, or both, a computer-related entity or an entity related to an operable machine that includes one or more specific functions. Entities described herein can be either 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 file, a thread of execution, a program, or a computer, or combinations thereof. As an example, both an application running on a server and the server can be components. One or more components can exist within a process and / or within a thread of execution, and a component can be localized on one computer or distributed between two or more computers, or both. In another example, each component can be executable from various computer-readable media storing various data structures. A component can communicate through local or remote processes, or both, in accordance with, for example, signals that include one or more data packets (e.g., data from one component that interacts with another component within a local system or a distributed system, or that interacts with another system via a network such as the Internet through signals). As another example, a component can be a device having specific functionality provided by mechanical parts operated by an electrical or electronic circuit and operated by a software application and / or a firmware application executed by a processor.In such a case, the processor can be present inside, outside, or both inside and outside the device, and can execute at least a part of a software application or a firmware application or both. As yet another example, a component can be a device that provides a particular function via electronic components that do not include mechanical parts, and those electronic components can include a processor or other means or both for executing software or firmware or both that provide at least a part of the function of the electronic components. In one aspect, a component can emulate an electronic component via a virtual machine, e.g., within a cloud computing system.

[0393] In addition, the term "or" is intended to mean an inclusive disjunction rather than an exclusive disjunction. That is, unless specifically specified otherwise, or unless otherwise apparent from the context, "X adopts A or B" is intended to mean any of the natural inclusive permutations. That is, "X adopts A or B" is satisfied in any of the foregoing instances if X adopts A, if X adopts B, or if X adopts both A and B. Further, the articles "a" and "an" used in this specification and the accompanying drawings should generally be construed to mean "one or more" unless specifically specified otherwise for the singular form or unless otherwise apparent from the context. As used in this specification, the terms "example" or "exemplary" or both are used to mean serving as an example, instance, or illustration. To avoid misunderstanding, the subject matter described in this specification is not limited by such examples. In addition, any aspect or design described in this specification as "example" or "exemplary" or both is not necessarily construed as being more preferred or advantageous than other aspects or designs, and is not intended to exclude equivalent exemplary structures and techniques known to those skilled in the art.

[0394] As used herein, the term "processor" can refer to substantially any computing processing unit or device or both, including but not limited to a single-core processor, a single processor with software multi-threading capabilities, a multi-core processor, a multi-core processor with software multi-threading capabilities, a multi-core processor with hardware multi-threading technology, a parallel platform, or a parallel platform with distributed shared memory, or a combination thereof. Further, a processor can 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, or discrete hardware components, or any combination thereof, designed to perform the functions described herein. Further, a processor can utilize nanoscale architectures such as, but not limited to, molecular and quantum dot-based transistors, switches, or gates, or a combination thereof, to optimize space utilization, improve the performance of associated devices, or both. A processor can be implemented as a combination of computing processing units.

[0395] In this specification, terms such as "store", "storage", "data store", "data storage", "database", and substantially any other information storage component related to the operation and function of a component are used to refer to an entity embodied within a "memory component", "memory", or a component having a memory. It should be understood that the memory or memory component or both described herein can be either volatile memory or non-volatile memory, or can include both volatile memory and non-volatile memory. Examples of non-volatile memory include, but are not limited to, 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 can include, for example, RAM that can function as an external cache memory. For example, RAM can be available in many forms such as, but not limited to, synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), or Rambus dynamic RAM (RDRAM), or a combination thereof. Further, the described memory components of the system or computer implemented method or both herein are intended to include memory, including but not limited to, these or any other suitable type or types of memory.

[0396] The foregoing content includes merely examples of systems and computer-implemented methods. Of course, for the purpose of describing one or more embodiments, it is impossible to describe all possible combinations of components or computer-implemented methods or both. However, those skilled in the art can recognize that many additional combinations or permutations or both of one or more embodiments are possible. Further, in the scope in which terms such as "including", "having", "possessing" are used in the forms for carrying out the invention, the claims, the appendices, and the drawings, those terms are intended to be inclusive in the same manner as the term "comprising" is construed when "comprising" is used as a provisional term in the claims.

[0397] The description of one or more embodiments is presented for purposes of illustration and is not intended to be exhaustive or limited to the embodiments described herein. Many modifications and variations will be apparent to those skilled in the art that do not depart from the scope and spirit of the described embodiments. The terms used herein are chosen in order to best describe the principles of the embodiments, practical applications, or technical improvements over technologies found in the marketplace, or a combination thereof, or to enable other skilled artisans to understand the embodiments described herein.

Claims

1. A system comprising a memory storing computer-executable components, and a processor executing the computer-executable components stored in the memory, wherein the computer-executable components include an interval boundary implementation component that commonly sets and triggers a point in time to continuously repeat at two or more nodes so as to align the execution of one or more quantum tasks at the two or more nodes.

2. The system according to claim 1, wherein the computer-executable components further include an execution component that employs the point in time to continuously repeat for the execution of one or more quantum tasks on two or more qubits.

3. The system according to claim 1, wherein the computer-executable components further include an execution component that causes quantum tasks to be simultaneously initiated on two or more qubits at two or more instances of the point in time to continuously repeat.

4. The system according to claim 1, wherein the repetition of the point in time to continuously repeat indicates a boundary of time intervals of the same length that continuously repeat.

5. The system according to claim 1, wherein the computer-executable components further include a compilation component that compiles one or more communication paths between the two or more nodes, and along the compiled one or more communication paths, data that has not yet been determined is transferred, and the length of a common time interval between consecutive points in time of the point in time to continuously repeat is at least as long as the maximum data propagation time along the one or more communication paths.

6. The system according to claim 1, wherein the computer-executable components further include a compilation component that compiles one or more instructions for executing a quantum program including the one or more quantum tasks, and the compilation component executes at least one of the one or more quantum tasks in a manner that does not coincide with the point in time to continuously repeat.

7. The system according to claim 1, wherein the computer-executable components include ​ ​ ​ ​ ​ ​ ​ ​ A compilation component that compiles one or more communication paths between the two or more nodes, further including a compilation component through which data not yet determined is transferred along the compiled one or more communication paths. The system according to claim 1, wherein the use of the data after the compiled transfer or reception is aligned with one or more iterations at the time of the continuously repeating point.

8. A computer-implemented method including commonly setting and triggering, by a system operably coupled to a processor, points in time that continuously repeat at two or more nodes of the system so as to align the execution of one or more quantum tasks at the two or more nodes.

9. The computer-implemented method according to claim 8, further including adopting, by the system, points in time that continuously repeat for the execution of one or more quantum tasks on two or more qubits.

10. The computer-implemented method according to claim 8, wherein the iteration of the points in time that continuously repeat indicates boundaries of time intervals of the same length that continuously repeat.

11. The computer-implemented method according to claim 8, further including causing, by the system, quantum tasks that are simultaneously started on two or more qubits at two or more instances of the points in time that continuously repeat.

12. The system further includes compiling, by the system, one or more communication paths between the two or more nodes. Data is transferred along the compiled one or more communication paths. The computer-implemented method according to claim 8, wherein the length of a common time interval between consecutive points in time of the continuously repeating points in time is at least as long as the maximum data propagation time along the one or more communication paths.

13. Compiling, by the system, one or more instructions for executing a quantum program including the one or more quantum tasks. The computer-implemented method according to claim 8, further including executing, by the system, at least one of the one or more quantum tasks in a manner that does not coincide with the points in time that continuously repeat.

14. The system further includes compiling, by the system, one or more communication paths between the two or more nodes. Data is transferred along the one or more compiled communication paths. The computer-implemented method according to claim 8, wherein the use of the compiled transfer or reception of the data is aligned with one or more repetitions at the continuously repeating points in time. **Claim 15** A computer program for facilitating the control of quantum tasks at two or more nodes of a system, the computer being caused to A computer program that commonly sets and triggers points in time that continuously repeat at the two or more nodes of the system so as to align the execution of one or more quantum tasks at the two or more nodes. **Claim 16** The computer is further caused to The computer program according to claim 15, further causing the computer to adopt the continuously repeating points in time for the execution of one or more quantum tasks on two or more qubits. **Claim 17** The computer is further caused to The computer program according to claim 15, further causing the computer to cause quantum tasks that start simultaneously on two or more qubits at two or more instances of the continuously repeating points in time. **Claim 18** The computer program according to claim 15, wherein the repetitions of the continuously repeating points in time indicate the boundaries of time intervals of the same length that continuously repeat. **Claim 19** The computer is further caused to further cause the computer to compile one or more communication paths between the two or more nodes, data is transferred along the one or more compiled communication paths, The computer program according to claim 15, wherein the length of the common time interval between consecutive points in time of the continuously repeating points in time is at least as long as the maximum data propagation time along the one or more communication paths. **Claim 20** The computer is further caused to compile one or more instructions for executing a quantum program including the one or more quantum tasks, and The computer program according to claim 15, further causing the computer to execute at least one of the one or more quantum tasks in a manner that does not coincide with the continuously repeating points in time.

Citation Information

Patent Citations

  • Scalable and programmable coherent waveform generator

    JP2022542860A

  • Processing Signals in a Quantum Computing System

    US20160267032A1