Real-time system adapted for communicating with quantum devices
The messaging system with aggregator nodes addresses the challenge of synchronizing operations across multiple quantum devices by efficiently propagating status information, reducing latency and bandwidth needs, thus enhancing the performance of quantum computing systems.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- RIVERLANE LTD
- Filing Date
- 2025-12-11
- Publication Date
- 2026-06-18
Smart Images

Figure GB2025060007_18062026_PF_FP_ABST
Abstract
Description
[0001] REAL-TIME SYSTEM ADAPTED FOR COMMUNICATING WITH QUANTUM DEVICES
[0002] Field of the invention
[0003] The invention relates to real-time systems, e.g. for use in quantum computing.
[0004] Background
[0005] Quantum computers have the potential to perform computations that would be intractable on even the most powerful classical computers.
[0006] Instead of representing information using classical bits, quantum computers generally use qubits that can be in a simultaneous superposition of multiple quantum states. Qubits are prone to error, and achieving quantum advantage will require the use of quantum error correction codes to identify and correct qubit errors. Even with quantum error correction, qubits must be controlled with extraordinary precision in order to reduce error rates below threshold levels required for quantum error correction.
[0007] Existing real-time control systems are generally only capable of controlling relatively small numbers of qubits. Scaling to larger numbers of qubits requires distributed control systems with separate processing units responsible for controlling different groups of qubits.
[0008] However, difficulty arises in distributed control systems when performing simultaneous operations between qubits that are connected to different parts of the control system. This problem is particularly acute when implementing conditional branching. For example, two qubits connected to different parts of the control system may require simultaneous operations based on a readout value associated with one of them.
[0009] There is a need for distributed real-time systems to transmit data to different processing units of the control system so that operations on qubits coupled to the processing units can be performed within specific time constraints. For example, there is a need for real-time systems that support fast low-latency branching between qubits coupled to different processing units simultaneously.
[0010] Summary of the invention
[0011] According to a first aspect of the invention, there is provided a messaging system in a realtime system adapted for communicating with a plurality of quantum devices. The messaging system comprises: a plurality of real-time units, each real-time unit communicatively couplable to a respective proper subset of the plurality of quantum devices; and a communication network comprising a plurality of nodes including: one or more aggregator nodes, and the plurality of real-time units as respective leaf nodes. The plurality of nodes is communicatively coupled to notify a target node of a status of each leaf node in a subset of the leaf nodes. Each aggregator node is communicatively coupled to a corresponding one or more child nodes of the plurality of nodes and to a corresponding grandparent node of the plurality of nodes. Each aggregator node is configured to: receive respective notifications from the corresponding one or more child nodes, each notification indicating a status of one or more leaf nodes of the subset of the leaf nodes associated with the notification; responsive to receipt of the respective notifications from the corresponding one or more child nodes, generate an aggregated notification, the aggregated notification being a notification indicative of the statuses of the respective one or more leaf nodes of the subset of the leaf nodes associated with each of the notifications; and transmit the aggregated notification to the corresponding grandparent node.
[0012] The use of the one or more aggregator nodes in the communication network can allow the target node to be notified of the statuses of each of the leaf nodes (real-time units) in the subset using fewer notifications than would otherwise be needed if the one or more aggregator nodes were not configured to generate aggregated notifications. The communication network of the messaging system is therefore able to propagate information from the leaf nodes to the target node more efficiently. In particular, transmitting fewer notifications can reduce the time needed for the target node to determine that each of the leaf nodes units in the subset is in an appropriate state for receiving or processing a message, such as a message comprising event data or an instruction for the leaf node to perform an operation, e.g., an operation involving the respective proper subset of the plurality of quantum devices to which the leaf node (real-time unit) is communicatively coupled, such as a read-out operation, or a quantum gate operation. Use of one or more aggregator nodes can therefore reduce the time and / or bandwidth needed for the real-time system to perform a program sequence involving multiple operations on multiple quantum devices.
[0013] Quantum devices are devices that exploit quantum mechanical phenomena to encode information using quantum mechanical states. The quantum devices may include registers of quantum information carriers (e.g., registers of qubits, qutrits and / or qudits with more than three basis states) and other associated devices such as coupling devices (e.g. resonators etc.). The quantum devices can be configured to manipulate the quantum information carriers, such as by applying quantum gates.
[0014] A quantum computing system (also referred to herein as a quantum computer) is a computing system that exploits quantum mechanical phenomena (i.e., using quantum devices), such as entanglement and interference.
[0015] Certain quantum computing operations, such as repeat until success operations, are intrinsically non-deterministic. For example, active reset operations generally require the state of a qubit to be measured so that the qubit can be returned to a |0) state. The qubit is subsequently measured to check that it has been reset correctly, and if it is not in a |0) state, the operation is repeated. Whilst each individual quantum gate can be performed deterministically, the overall runtime of the operation is non-deterministic. This nondeterminism creates challenges when synchronising operations on different quantum devices, especially when the quantum devices are controlled by different quantum control units in a distributed quantum control system. Efficient and timely propagation of information to and from the quantum devices via the real-time units is therefore an important consideration when implementing such systems.
[0016] A real-time system is a classical processing system that can perform various processing operations efficiently within specific time constraints. In this specification, the real-time system is for use in (i.e., is adapted for) communicating with or controlling quantum devices, e.g. of a quantum computing system.
[0017] Real-time units are subsystems of the messaging system that transmit control and readout operations to the quantum devices. Each real-time unit is communicatively couplable to (i.e. adapted to be communicatively coupled to) a proper subset of the quantum devices. The real-time units may be further coupled to devices (referred to herein as peripherals) such as signal generation and readout modules for performing control and readout operations on the quantum devices. Coupled or communicatively coupled means connected using a data link / data connection (e.g. a wireless / wired connection) forthe transfer of digital information. The real-time units can perform one or more operations at respective deterministic times after each receiving a message from the messaging unit to ensure that the operation(s) are correctly synchronised. For example, the real-time units can cause quantum devices to which they are communicatively coupled to perform one or more operations at a predetermined time after receipt of the message. The one or more operations can, for example, comprise a read-out, reset or quantum gate operation.
[0018] The messaging system is a classical processing (sub)system in the real-time system that can be used to transmit information between parts of a quantum control system. For example, the messaging system can be used to maintain synchronisation between operations performed by quantum devices that are communicatively coupled to the messaging system. For example, the messaging system can be used to orchestrate events within the quantum control system and to maintain synchronisation between operations performed by the real-time units. A notification or message transmitted using the messaging system can be implemented in any suitable electronic form, e.g. as one or more data packets.
[0019] As used in this specification, a subset of a set can include one or more or all of the members of the set. A subset that comprises one or more but not all of the members of the set may be referred to as a proper subset. The messaging system of the first aspect allows a target node (which may be, for example, one of the plurality of real-time units) to be notified of the statuses of each real-time unit (leaf node) in a subset of the real-time units.
[0020] As one example, the target node can be notified that each of the real-time units in the subset is in a state for receiving event data, and the target node can then transmit the event data to each of the real-time units for processing by the real-time units. In some implementations, the communication network is configured such that the event data arrives at each of the real-time units in the subset of the real-time units synchronously. The event data can comprise information associated with the relevant event, such as an event identifier and / or data values.
[0021] The event data can be generated in response to an event trigger, which can be the occurrence of any event that affects runtime operation of the real-time units. For example, an event trigger may be a qubit measurement result from a readout operation performed by a first real-time unit (for example, a measurement result that is required for a decision at one or more other real-time units), or the event trigger may indicate that an operation (e.g. part of a quantum computation being performed on the quantum computing system, such as a quantum gate or series of quantum gates) being performed by the real-time unit is complete or nearing completion (one or more of the other real-time units may need to delay their own operations so that future operations can be synchronised with those of the first real-time unit). The event trigger is preferably defined during compilation of the quantum computation ahead of runtime.
[0022] The event data can comprise one or more data values, such as integers, fixed point numbers and / or floating point numbers, or another data type such as a character, character string, Boolean value, an array etc. As one example, an event trigger may be a measurement (or “readout”) operation on a quantum device and the event data can comprise a measurement (or “readout”) value associated with the measurement operation. The subset of the real-time units (leaf nodes) may be determined in various ways based on the event, e.g., based on the event data. For example, the subset of the leaf nodes associated with the event may be determined using an identifier that is included in the event data, e.g., using a lookup table.
[0023] In some implementations, the messaging system comprises a plurality of real-time modules, each real-time module comprising a respective proper subset of the plurality of nodes. Each real-time module can, for example, be a hardware device such as an integrated circuit, e.g., a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). As one example, the communication network can comprise: a first real-time module comprising the target node and a first proper subset of the leaf nodes; and one or more further real-time modules that each comprise a respective aggregator node and a corresponding proper subset of the leaf nodes. The one or more further real-time modules can be communicatively coupled to the first real-time module. In some examples, intramodule communication between the nodes of the same module (e.g., between the aggregator node and the leaf nodes of the same further real-time module) can have a lower latency than inter-module communication between nodes of different real-time modules (e.g., between the target node and an aggregator node of the one or more further real-time modules). For example, in some implementations, intra-module communication between the nodes of the same real-time module can have a latency of less than 10 ns, whilst intermodule communication between nodes of different real-time modules can have a latency of around 100 ns.
[0024] In some implementations, the target node is selected based on the event trigger. For example, if the event trigger is an operation performed by one of the leaf nodes then the target node can be selected from the nodes in the same real-time module as the one of the leaf nodes, such as a node in the same real-time module as the one of the leaf nodes that is communicatively coupled to a respective aggregator node of the one or more further realtime modules (e.g., by an inter-module communication link).
[0025] As another example, the target node can be notified that each of the real-time units in the subset is ready to perform a respective operation, and the target node (or another component of the real-time system) can then provide an instruction to each real-time unit in the subset to perform the respective operation. That is, after each of the real-time units in the subset has been determined to be in a state suitable for performing the respective operation, each real-time unit can be instructed to perform the respective operation, e.g., via an instruction in the form of a message transmitted to the real-time units using the communication network. In some implementations, each real-time unit is instructed to perform the respective operation synchronously with the other real-time units in the subset. For example, the messaging system can be configured to transmit respective instructions to the real-time units in the subset for concurrent receipt (and subsequent execution) by the real-time units. The process can be repeated such that each of a plurality of operations in a program sequence is executed by the real-time units. For example, after performing the respective operations, one or more (e.g., each) of the real-time units in the subset can use the messaging system to transmit a further notification to the target node (or another target node), e.g., a notification indicating that the real-time unit has completed the respective operation and is now in a state for performing the respective operation again or another respective operation. The real-time units in the subset of the real-time units (or another subset of the plurality of real-time units) can then be instructed to perform the respective operations again, or other respective operations, and so on. Reducing the number of notifications that need to be received at the target node for determining the statuses of the leaf nodes of the subset after each of the respective operations has been performed can reduce the time needed to perform the program sequence. Alternatively or additionally, reducing the number of notifications can allow the bandwidth of the communication network of the messaging system to be reduced, e.g., to reduce or avoid the need for communication links allowing separate notifications to be transmitted to the target node in parallel.
[0026] In some implementations, the target node can be configured to: (i) receive respective notifications from one or more child nodes of the target node, each notification indicating a status of the one or more leaf nodes of the subset of the leaf nodes associated with the notification; (ii) determine, based on one or more notifications received from the one or more child nodes of the target node, whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes; and (iii) in response to determining to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes, transmit the message to the one or more of the child nodes of the target node. For example, the message can comprise event data and / or an instruction for the one or more child nodes to perform an operation. In some implementations, the message comprises data, such as event data, obtained from one of the leaf nodes, e.g., one of the leaf nodes of the subset of leaf nodes. The data can be transmitted to the target node as part of a notification received from the leaf node.
[0027] In some implementations, the plurality of nodes are communicatively coupled to transmit a message from the target node to each of the leaf nodes for concurrent receipt by each of the leaf nodes. Concurrent receipt means that the respective messages are received within the same clock cycle at each of the plurality of the leaf nodes. A typical clock cycle of a realtime unit implemented using an FPGA is 2-10 ns (FPGAs typically operate at frequencies of 100-500 MHz), with the clock cycles of different distributed real-time units being synchronised to within 1 ns or closer (e.g. within 100 ps). Concurrent receipt therefore requires that the respective messages are received at each leaf node within 10 ns or less of each other. In response to receiving the respective messages, the leaf nodes of the subset can then, for example, each perform a respective operation concurrently with the other leaf nodes of the subset of the leaf nodes.
[0028] As one example, the communication network can be configured to stagger transmission of the respective messages from the target node to the leaf nodes of the subset of the leaf nodes based on respective communication latencies between the target node and the leaf nodes of the subset such that each respective message arrives concurrently at each of the leaf nodes of the subset. Staggering transmission of the respective messages advantageously allows for synchronisation between the leaf nodes of the subset of the leaf nodes even when there are different communication latencies between the target node and the leaf nodes of the subset of the leaf nodes.
[0029] Alternatively, the communication network can be configured such that the respective communication latencies between the target node and the leaf nodes of the subset of the leaf nodes are equal. Transmitting the message for concurrent receipt by the leaf nodes of the subset of the leaf nodes can then comprise transmitting the respective message to each respective leaf node of the subset of the leaf nodes simultaneously. Equal communication latencies can, for example, require latencies that are within 10 ns of each other to ensure concurrent receipt.
[0030] In some implementations, the target node can be configured to determine, based on one or more notifications received from the one or more child nodes of the target node, whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes by performing operations comprising: maintaining a count of a number of the leaf nodes of the subset of the leaf nodes that are in a state for receiving the message from the target node; and determining to transmit the message to the one or more of the leaf nodes of the subset of the leaf nodes in response to the count reaching a value equal to a pre-determined number of leaf nodes. For example, the target node can be configured to determine the predetermined number of leaf nodes from one or more notifications transmitted to the target node from one or more of the leaf nodes in the subset of the leaf nodes, e.g., a notification from one of the leaf nodes of the subset of the leaf nodes can comprise data indicative of the pre-determined number of the leaf nodes.
[0031] In some implementations, the aggregated notification indicative of the statuses of the respective one or more of the leaf nodes associated with each of the notifications can comprise a count of a number of leaf nodes that are in a state for receiving the message from the target node. The count of the aggregated notification can then be used by the target node to update (e.g., increment) the count maintained by the target node.
[0032] In some implementations, each aggregator node can be configured to: process the respective notifications received from the one or more child nodes to determine whether the a respective status for each of a pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node; and generate the aggregated notification responsive to a determination that a respective status for each of the predetermined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node. The aggregated notification can then, for example, be a notification indicative of the respective statuses of the pre-determined one or more leaf nodes.
[0033] In some implementations, respective latencies for communication (e.g., transmission of a notification) between the one or more aggregator nodes and the target node are greater than respective latencies for communication between each aggregator node and the corresponding one or more child nodes of the aggregator node.
[0034] In some implementations, the messaging system can comprise a first real-time module comprising the target node and one or more further real-time modules, each further realtime module comprising a respective aggregator node of the one or more aggregator nodes and the corresponding one or more child nodes of the aggregator node. Each module can be implemented as a separate hardware device, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC).
[0035] In some implementations, the target node can be one of the real-time units. The target node can, for example, be selected in response to an event trigger. In some implementations, each of the aggregator nodes is a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC).
[0036] According to a second aspect there is provided a real-time system comprising the messaging system of the first aspect and a plurality of quantum devices. Each of the realtime units is communicatively coupled to a respective proper subset of the plurality of quantum devices. In some implementations, the quantum devices comprise qubits and one or more of the real-time units are configured to perform an operation selected from a readout, reset or gate operation on said qubits, e.g., in response to receiving a message from the target node.
[0037] According to a third aspect there is provided a method performed by a messaging system in a real-time system adapted for communicating with a plurality of quantum devices, the messaging system comprising: a messaging unit; a plurality of real-time units, each realtime unit communicatively couplable to a respective proper subset of the plurality of quantum devices; and a communication network comprising a plurality of nodes including: one or more aggregator nodes, and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to notify a target node of a status of each leaf node in a subset of the leaf nodes; and wherein each aggregator node is communicatively coupled to a corresponding one or more child nodes of the plurality of nodes and to a corresponding grandparent node of the plurality of nodes. The method comprises, at one or more of the aggregator nodes: receiving respective notifications from the corresponding one or more child nodes, each notification indicating a status of one or more leaf nodes of the subset of the leaf nodes associated with the notification; responsive to receipt of the respective notifications from the corresponding one or more child nodes, generating an aggregated notification indicative of the statuses of the respective one or more leaf nodes associated with each of the notifications; and transmitting the aggregated notification to the corresponding grandparent node. In some implementations, the method further comprises: at the target node, receiving respective notifications from one or more child nodes of the root node, each notification indicating a status of one or more of the leaf nodes associated with the notification; at the target node, determining based on one or more received notifications whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes; and in response to the target node determining to transmit the message to one or more of the leaf nodes, transmitting the message to one or more of the child nodes of the target node.
[0038] In some implementations, the message is received concurrently by each of the leaf nodes of the subset of the leaf nodes. In some implementations, the message transmitted from the target node comprises data (e.g., event data) obtained by one of the leaf nodes, e.g., one of the leaf nodes of the subset of the leaf nodes.
[0039] In some implementations, determining based on one or more received notifications whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes comprises: maintaining a count of a number of the leaf nodes that are in a state for receiving the message from the target node; and determining to transmit the message to the one or more of the leaf nodes of the subset of the leaf nodes in response to the count reaching a pre-determined value.
[0040] As an example, the aggregated notification indicative of the statuses of the respective one or more of the leaf nodes of the subset of the leaf nodes associated with each of the plurality of notifications can comprise a count of a number of leaf nodes that are in a state for receiving the message from the target node. For example, the target node can determine the pre-determined number of leaf nodes from a notification transmitted to the target node from one of the leaf nodes of the subset of the leaf nodes.
[0041] In some implementations, the method further comprises, at each aggregator node: processing the plurality of notifications received from the one or more child nodes to determine whether the a respective status for each of a pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node; and generating the aggregated notification responsive to a determination that a respective status for each of the pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node. As one example, the aggregated notification can be a notification indicative of the respective statuses of the pre-determined one or more leaf nodes.
[0042] In some implementations, the target node is one of the real-time units. The method can further comprise selecting one of the real-time units as the target node in response to an event trigger.
[0043] In some implementations, the quantum devices comprise qubits and one or more of the real-time units are configured to perform an operation selected from a read-out, reset or gate operation on said qubits, e.g., in response to receiving a message from the target node.
[0044] In a third aspect there is provided, one or more computer storage media storing instructions that, when executed by a messaging system comprising a plurality of real-time units and a communication network, cause the messaging system to perform the method of the third aspect.
[0045] Brief description of the drawings
[0046] Examples of the present invention will now be described in detail with reference to the accompanying drawings, in which:
[0047] Fig. 1 is a schematic of a quantum computing system;
[0048] Fig. 2 is a schematic of a messaging system;
[0049] Fig. 3 is a schematic of another messaging system;
[0050] Fig. 4 is a timing diagram of a method performed by the messaging system of Fig. 2; and Fig. 5 is a flow diagram of a sub-method of the method of Fig. 4.
[0051] Detailed description
[0052] The ability to perform low-latency operations is a critical aspect of quantum computing, especially for qubits that have very short coherence times, such as superconducting qubits. Nevertheless, achieving low latencies for operations that need to be performed within specific time constraints (e.g. synchronously) across multiple quantum devices is a significant challenge. The present invention overcomes some of the drawbacks with existing real-time systems by allowing information about the statuses of real-time units that are communicatively coupled to the quantum devices to be propagated more efficiently within the real-time system.
[0053] A schematic of a quantum computing system 100 is shown in Fig. 1. The quantum computing system 100 comprises an application processing unit (APU) 102 and a messaging (sub)system 100m that comprises a messaging unit 104 and first and second real-time modules 106a, 106b. The APU 102 is connected to the messaging unit 104 and first and second real-time units 106a, 106b by a bus 114.
[0054] The APU 102 is a classical processing device responsible for tasks such as compiling and / or distributing runtime instructions to the real-time units 106a, 106b and messaging unit 104 ahead of (and potentially during) runtime, and system management such as status reporting and updating. The messaging unit 104 and real-time modules 106a, 106b are likewise classical processing devices. One or more of the APU 102, messaging unit 104 and real-time modules 106a, 106b may be provided on the same hardware device (e.g. on the same FPGA or ASIC), or one of more of these components may be distributed across different hardware devices (e.g. on separate FPGAs and / or ASICs). The bus may use any suitable communications protocol, for example the Advanced extensible Interface (AXI) protocol or an ethernet based protocol.
[0055] As described in more detail below, the messaging unit 104 is responsible for transmitting messages, e.g. runtime events or instructions, to the real-time units 106a, 106b to ensure runtime synchronicity between the real-time modules 106a, 106b. The messaging unit 104 may optionally be integrated into a real-time module such as one of the illustrated real-time units 106a, 106b. In some cases, each of the real-time modules comprises a messaging unit, such that any of the real-time modules, can be the root node of the communication network of the messaging system 100m. Alternatively, the messaging unit 104 may be integrated into a different part of the quantum computing system 100, or it may be a dedicated component. The messaging unit 104 may also be responsible for starting a quantum computation, for example by distributing synchronised start event messages to the first and second real-time modules 106a, 106b, e.g. in response to a start trigger received from the APU 102.
[0056] The first and second real-time modules 106a, 106b comprise a plurality of real-time units, such as micro sequencer devices (also referred to herein as sequencers). The first realtime module 106a is connected to the messaging unit 104 by a bidirectional channel 116a that carries messages between the messaging unit 104 and the first real-time unit 106a. The second real-time unit 106b is connected to the messaging unit 104 by a downstream channel 116b that carries messages from the messaging unit 104 to the second real-time unit 106b. In some implementations, the channels are dedicated communication links used only for event messages; this avoids contention issues and ensures deterministic communication latency between devices. The communication channels between the messaging unit 104 and the first and second real-time modules 106a, 106b (e.g. the bidirectional channel 1 16a and the downstream channel 116b) may be referred to herein as channels or communication channels.
[0057] The first and second real-time modules 106a, 106b comprise respective buffers 128a, 128b (e.g. instruction buffers). Runtime instructions are pre-compiled ahead of runtime (e.g. by the APU 102) and distributed (e.g. via the bus 114) to the first and second real-time modules 106a, 106b for storage in the buffers 128a, 128b. The runtime instructions contain information required for the first and second real-time modules 106a, 106b to distribute instructions to their real-time units at the correct times during runtime. The messaging unit 104 may similarly comprise a buffer (not shown) for storing runtime instructions, and devices may have additional unillustrated buffers, such as communication buffers (e.g. transmission and reception buffers for transmitting and receiving event data).
[0058] The real-time units of the first and second real-time modules 106a, 106b comprise respective signal generation modules 108 that are coupled to the real-time modules by respective downstream signal generation channels 1 18a, 118b. The first real-time module 106a is additionally coupled to a readout module 110 by a downstream readout channel 120 and an upstream readout channel 122.
[0059] The signal generation modules 108 and readout module 110 are peripherals of the first and second real-time modules 106a, 106b. The real-time units of the first and second real-time modules 106a, 106b can send commands to these peripherals using commands to request a readout or send specific pulses through the qubit control lines. Additionally, the real-time units of the first and second real-time modules 106a, 106b can wait for fixed periods using wait delay instructions. The first and second real-time modules 106a, 106b may also support conditional and unconditional jump instructions to incorporate if-else and while logic in the program flow. These instructions have fixed latencies and as such have deterministic runtimes that can be calculated precisely at compilation time.
[0060] The signal generation modules 108 (which are responsible for controlling the qubits) transmit control signals to quantum devices (e.g. qubits) in the quantum hardware 112 via control lines 130. The signal generation modules 108 may receive digital instructions (e.g. digital pulse instructions and / or instructions defining quantum gates / operations) and may use a digital-to-analogue converter (DAC) to generate analogue control pulses for transmission to the quantum hardware 112. The control lines 130 may be waveguides or any other connection suitable for transmitting control signals to the quantum hardware 1 12.
[0061] The readout module 110 (which is responsible for reading qubit states) transmits readout signals to the quantum hardware 112 via readout drive lines 124 and receives readout information via readout acquisition lines 126 (the readout drive lines 124 and readout acquisition lines 126 are collectively referred to herein as readout lines 124, 126). The readout module 110 may receive digital readout instructions (e.g. digital pulse instructions and / or instructions defining quantum measurement operations) and may use a DAC to generate analogue readout pulses for transmission to the quantum hardware 112. The readout module 110 may receive analogue readout signals from the quantum hardware via the readout acquisition lines 126 and may convert the analogue readout signals into digital form, e.g. using an analogue-to-digital converter (ADC). In use, a real-time unit of the first real-time module 106a may send a request to the readout module 1 10 to measure one or more qubit states. Once measured, the readout information is fed back from the readout module 1 10 to the real-time unit of first real-time module 106a. The quantum hardware 112 may comprise quantum devices such as qubits, qutrits, qudits, resonators, coupling devices etc. For example, each control or readout line 124, 126, 128 may be connected to one or more qubits or couplers. A single qubit may be controlled by different real-time units: for example, one of the real-time units may be responsible for controlling couplings between qubits, and another may be responsible for control pulses that act on the coupled qubits. Such arrangements require extreme timing precision to ensure that all operations are perfectly synchronised.
[0062] The quantum hardware 112 may comprise any type of quantum devices capable of storing quantum information (i.e. any devices suitable for encoding information using quantum computational states). Such quantum devices may be qubits or they may be other devices capable of storing quantum information, such as qudits or qutrits. While the description herein will primarily refer to qubits, any reference herein to qubits should be understood to also encompass other types of quantum devices unless explicitly stated otherwise.
[0063] The first and second real-time modules 106a, 106b and the messaging unit 104 can form part of a quantum control system (also referred to herein as a control system) and / or a quantum error correction (QEC) stack, of the quantum computing system 100. The APU 102, signal generation modules 108 and / or readout module 110 may also form part of the quantum control system and / or QEC stack, or they may be treated as separate components (for example, the APU 102 may be considered to be part of the quantum control system or part of a compilation system or of a higher-level algorithmic or user-interface system etc.).
[0064] The illustrated quantum computing system 100 features two real-time modules, each comprising a plurality of real-time units, for ease of presentation. However, alternative examples may include additional real-time modules or real-time units communicatively coupled to the messaging unit 104. Similarly, while the illustrated quantum computing system features a single readout module 110 and two signal generation modules 108, alternative examples may comprise additional readout and / or signal generation modules. For example, the second real-time unit 106b may be connected to a second readout module (not shown); in such an arrangement the downstream event channel 116b may be replaced by a second bidirectional event channel or supplemented by an additional upstream event channel. Any illustrated bidirectional channel may be replaced by two unidirectional channels and vice-versa.
[0065] Fig. 2 shows a simplified schematic of another messaging system 200m for use in a quantum computing system, such as the quantum computing system 100 described above in connection with Fig. 1 . The messaging system 200m comprises a communication network that includes a target node 204, an aggregator node 205, and four real-time units 206a-d arranged as leaf nodes A-D of the communication network. Each of the leaf nodes A-D is communicatively coupled to a respective quantum device 207a-d, such as a quantum device as described above in connection with the quantum hardware 112 of Fig. 1. In the present example, the target node 204 is communicatively coupled to two of the leaf nodes A, B via respective communication links 216a, 216b, and the aggregator node 205 is communicatively coupled to the two other leaf nodes C, D via respective communication links 216c, 216d. The aggregator node 205 is further communicatively coupled to the target node via another communication link 216e. Thus, the aggregator node 205 is communicatively coupled to two child nodes (the other leaf nodes C, D) and to a corresponding grandparent node (the target node 204).
[0066] The nodes of the communication network are configured to notify the target node 204 of a status of each of the leaf nodes A-D in a subset of the leaf nodes A-D. The target node 204 can, for example, be a messaging unit as described above with respect to Fig. 1 . The target node can be (but need not be) integrated into a real-time module comprising one or more of the leaf nodes (e.g., one or more leaf nodes that are one of more child nodes of the target node). As one example, the subset of the leaf nodes A-D can include all of the leaf nodes A-D. In this case, the two leaf nodes A and B coupled to the target node 204 can notify the target node of their respective statuses separately, e.g., each of the leaf nodes A and B is configured to transmit a notification indicative of its respective status to the target node 204. The other two leaf nodes C and D are configured to notify the aggregator node 205 of their respective statuses, e.g., each of the leaf nodes C and D is configured to transmit a notification indicative of its status to the aggregator node 205. The aggregator node 205 is configured to process the respective notifications received from the two other leaf nodes C and D to generate an aggregated notification indicative of the statuses of both of the two other leaf nodes C and, D, and transmit the aggregated notification to the target node 204. That is, rather than forward the notifications received from the two other leaf nodes C and D to the target node 204, the aggregator node 205 combines the notifications into a single aggregated notification for transmission to the target node 204. For the messaging system 200m shown in Fig. 2, the transmission of the aggregated notification means that the number of notifications that need to be transmitted to the target node 204 is reduced by one. However, it will be appreciated that in messaging systems comprising many more leaf nodes (and, optionally, aggregator nodes), the reduction in the number of notifications that need to be transmitted to the target node using the communication network can be significantly greater.
[0067] Fig. 3 shows a simplified schematic of a further messaging system 300m, which is similar to the messaging system 200m of Fig. 2, except that that the target node 304 and the aggregator node 305 are implemented on respective real-time modules 301 a, 301 b, and are each coupled to a respective eight leaf nodes (real-time units) N0-N7. Each of the leaf nodes is communicatively coupled to a respective one or more quantum devices (not shown). The target node 304 and the aggregator node 305 are designated in Fig. 3 as EDO and ED1 respectively, such that each of the leaf nodes can be identified by a prefix indicating to which of the target node 304 and the aggregator node 305 the leaf node is communicatively coupled and a suffix identifying the number of the node, e.g., NO, N1 , ... N7. For example, the first leaf node of the target node 304 can have an identifier EDO. NO, whilst the last leaf node of the aggregator node 305 can have an identifier ED1 ,N7.
[0068] The target node 304 and the corresponding leaf nodes ED0.0-ED0.N7 are implemented on the first real-time module 301 a (such as an FPGA or an ASIC), and the aggregator node 305 and the corresponding leaf nodes ED1 .N0-ED1 ,N7 are implemented on the second real-time module 301 b.
[0069] A communication link 316e between the aggregator node 305 and the target node 304 extends between the first and second real-time modules 301 a, 301 b, i.e., it is an intermodule communication link. The inter-module communication link 316e generally has a higher latency than the intra-module communication links 306a, 306b, between the target node 304 and the corresponding leaf nodes ED0.N0-N7 or between the aggregator node 305 and the corresponding leaf nodes ED1 .N0-ED1 ,N7. For example, where the modules 301 a, 301 b, are both FPGAs, the inter-module communication link 316e between the aggregator node 305 and the target node 304 can have a latency of around 100 ns, whereas the intra-module communication links to the leaf nodes can each have a latency of around 4 ns.
[0070] Table 1 illustrates an exemplary sequence of steps that can be performed by a messaging system that is similar to the messaging system of 300m of Fig. 3, except that the aggregator node 305 is configured to forward the notifications received from the leaf nodes ED1 .N0-N7 to the target node 304 individually, i.e., without generating an aggregated notification. The target node 304 is notified of the statuses of the leaf nodes in a subset of the leaf nodes that comprises three of the leaf nodes EDO. NO, ED0.N1 , ED0.N2 and ED0.N3 of the first module 301 a and all eight of the leaf nodes ED1.N0-N7 of the second module 301 b. For simplicity, at the start of the sequence (time = 0 ns), each of the leaf nodes in the subset transmits a respective notification to either the target node 304 or the aggregator node 305, although it will be appreciated that the notifications can be sent at different times in general. The notifications are sent in response to each of the nodes in the subset becoming ready to receive event data. In this case, the event is associated with event data from one of the leaf nodes, ED0.N3, which may be termed the measurement leaf node. The event data can, for example, comprise read-out data from a quantum device to which the leaf node ED0.N3 is communicatively coupled. In this particular example, each of the notifications comprises an event identifier {ID=0x2} that indicates that the leaf node from which the notification is transmitted is in a state for receiving event data associated with the event identifier. In general, different subsets of the leaf nodes may be associated with different events.
[0071] At time = 4 ns, the target node 304 and the aggregator node 305 each receive the notifications from the leaf nodes in the subset of the leaf nodes. The notification received by the target node 304 from the measurement leaf node ED0.N3 comprises the event data {DATA=0x8} for the event. The aggregator node 305 then transmits the notifications received by the aggregator node 305 to the target node 304 one after another, with transmission of each notification taking 100 ns, until the notification from the last of the leaf nodes is received at the target node 304 at a time of 804 ns. The target node 304 then transmits the event data {DATA=0x8} received from the measurement node ED0.N3 to the aggregator node 305, which receives the event data at time = 904 ns. The target node 304 and the aggregator node 305 then each transmit the event data {DATA=0x8} to the leaf nodes ofthe subset fortheir respective modules 301 a, 301 b, such that all of the leaf nodes receive the event data at time = 908 ns. Table 1
[0072] Table 2 illustrates how the event data can be transmitted to each of the leaf nodes more efficiently by using the aggregator node 305 to generate aggregated notifications. The first two steps are the same as for Table 2, whilst in the third step, the aggregator node 305 transmits, to the target node 304, an aggregated notification indicative of the statuses of each of the leaf nodes ED1.N0-N7 of the second real-time module 301 b. The target node 304 receives the aggregated notification at time = 104 ns and, in response to receiving the aggregated notification, transmits the event data to the aggregator node 305, which receives the event data at time = 204 ns, for distribution to the leaf nodes of the second real-time module 301 b. The final two steps are the same as in Table 1 , but in this case, each leaf node in the subset receives the event data at (final) time = 208 ns.
[0073] Table 2
[0074] In the version of the messaging system 300m used to generate the example sequence in Table 1 , the target node 304 is configured to determine when all of the leaf nodes in the subset are ready to receive the event data by counting the number of notifications received by the target node (e.g., notifications with the same event identifier). In other words, the target node 304 can be configured to transmit the event data to the aggregator node 305 in response to determining that a count of the number of notifications received at the target node is equal to the (pre-defined) number of leaf nodes in the subset (i.e., twelve in the present example). For example, the target node can receive data indicative of the number of leaf nodes in the subset in the notification from one of the leaf nodes, e.g., the measurement node ED0.N3.
[0075] For the version of the messaging system 300m used to generate the example sequence given in Table 2, such an approach would not work because the number of notifications transmitted to the target node 304 is less than the number of leaf nodes in the subset of the leaf nodes. To address this issue, the aggregator node 305 is configured to include in the aggregated notification data indicative of a count of the number of notifications that the aggregator node 305 has received from leaf nodes. For example, the aggregated notification can comprise a count field for storing the number of notifications that the aggregator node has received from leaf nodes, e.g., {COUNT=8}, in the present example. The target node 304 can then be configured to use the value of the count field of the aggregated notification to determine how many of the leaf nodes in the second real-time module 301 b are ready to receive the event data. The target node 304 can update (e.g., increment) a local count of the number of leaf nodes that are ready to receive the event data each time a notification is received. For example, in response to receiving a notification, the target node 304 can update the local count using the value provided in the count field of the notification. In some implementations, the value of the count field of a notification may not need to be set because the value can be inferred from the notification, e.g., a default value of COUNT=1 can be inferred if the value of the count field is not set, which can reduce the size of the notifications.
[0076] In some implementations, such as the implementation used to perform the steps in Table 2, the measurement node ED0.N3 can use the count field of the notification it transmits to the target node 304 to provide the number of leaf nodes in the subset. As one example, the measurement node ED0.N3 can use the count field of the notification it sends to the target node 304 to provide a value equal to MAX_NODES + 1 - num_nodes, where MAX_NODES is a constant integer value equal to the maximum number of nodes that the subset can include, and num_nodes is the number of nodes in the subset, which can vary e.g., depending on the type of event. The target node 304 can add the value of the count field of the notification received from the measurement node ED0.N3 to the local count. The target node can then compare the local count with MAX_NODES to determine when all the nodes of the subset are ready to receive the event data. For the example in Table 2, MAX_NODES=1024 and num_nodes=12. The notification transmitted to the target node 304 from the measurement node ED0.N3 therefore has the count field set to 1013. At time = 4 ns, the local count of the number of leaf nodes that are ready to receive the event data is equal to 1013 + 3 = 1016. On receipt of the aggregated message from the aggregator node 305 at time = 204 ns, the local count is incremented to 1024=MAX_NODES, and the target node 305 therefore determines that all the nodes in the subset are ready to receive the event data.
[0077] Fig. 4 shows a process 400 that can be performed by a messaging system, which in this example is the messaging system 200m described above with reference to Fig. 2. However, it will be appreciated that a similar process can be followed by other messaging systems, such as messaging systems having more leaf nodes and aggregator nodes.
[0078] In an initial stage of the process 400, each of the leaf nodes A-D completes an operation, and transmits (steps 402a-d) a respective notification to its respective parent node, which in the case of leaf nodes A and B is the target node 204 and, in the case of leaf nodes C and D, is the aggregator node 205. The notifications can arrive at the target node 204 or the aggregator node 205 at different times because each of the leaf nodes A-D may complete the operation at a different time, as shown in Fig. 4, and / or because the communication links over which the notifications are transmitted can have different latencies.
[0079] Responsive to receipt of the respective notifications from leaf nodes C and D, the aggregator node 205 generates an aggregated notification indicative of the respective statuses of the leaf nodes C and D. The aggregator node 205 then transmits (step 406) the aggregated notification to the target node 204. As shown in Fig. 4, the time TArequired for transmission of a notification between the aggregator node 205 and the target node 204 can be longer than the time required for transmission of a notification from the leaf nodes A-D to the target node 204 or the aggregator node 205, e.g., because the target node 204 and the aggregator node 205 are implemented on different real-time modules.
[0080] Responsive to receipt of the aggregated notification, the target node 204 then transmits (step 406) a message to the aggregator node 205 for distribution (steps 408 and 410) by the aggregator node 205 to its child nodes, the leaf nodes C and D. The target node 204 also transmits (steps 412 and 414) the message to its child nodes, the leaf nodes A and B. To ensure that the messages are received at all the leaf nodes A-D concurrently, the transmission of the message from the target node 204 to the leaf nodes A and B can be delayed (staggered) relative to the transmission of the message to the aggregator node 205, e.g., by an amount TBdetermined from the latency for transmission of the message by these different paths.
[0081] Fig. 5 shows a sub-process 500 of the process 400 shown in Fig. 4, performed by the aggregator node 205 and the leaf nodes C and D. In step S501 , leaf node C undergoes a status change, which triggers the leaf node to transmit (step S502) a notification indicative of the new status of the leaf node that is received by the aggregator node 205 (step S503). The aggregator node 205 then waits for the leaf node D to transmit a notification. When the status of the leaf node D changes (step S504), the leaf node D transmits (step S508) a notification indicative of the new status of the leaf node that is received by the aggregator node 205 (step S510). The aggregator node then generates an aggregated notification based on the received notifications and transmits the aggregated notification to the target node 204 (step S512) and then waits to receive (step S514) a message from the target node 204. Responsive to receipt of the message from the target node 204, the aggregator node 205 transmits (step S516) the message for receipt by the leaf nodes C and D (steps S518 and S520). One skilled in the art will appreciate that these methods can be extended to messaging systems with additional real-time units. For example, messaging systems comprising hundreds, thousands, or more real-time units are envisioned.
[0082] Any method described herein may be computer-implemented and may be provided as a computer program product and / or on a computer readable medium such as a non-transitory computer readable medium.
[0083] It should be understood that any method of the present disclosure could include additional steps, and any device could include additional components. In addition, unless indicated otherwise or technically infeasible, the method steps disclosed herein may be performed in alternative orders, and any order described herein should be considered as exemplary rather than limiting.
[0084] Furthermore, one skilled in the art will appreciate that any computation that can be performed by a classical processing device can also be performed by a quantum computing device. Accordingly, any methods or described herein that is performed on a classical computing device (such as a CPU) can also be performed by a quantum processing device, such as a quantum processing unit (QPU) comprising a plurality of qubits or other quantum information devices.
[0085] Numbered clauses
[0086] Features of the invention are described in the following numbered clauses. The features described in these numbered clauses may be combined with features described above.
[0087] Clause 1 . A messaging system in a real-time system adapted for communicating with a plurality of quantum devices, the messaging system comprising: a plurality of real-time units, each real-time unit communicatively couplable to a respective proper subset of the plurality of quantum devices; and a communication network comprising a plurality of nodes including: one or more aggregator nodes, and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to notify a target node of a status of each leaf node in a subset of the leaf nodes; and wherein each aggregator node is communicatively coupled to a corresponding one or more child nodes of the plurality of nodes and to a corresponding grandparent node of the plurality of nodes, each aggregator node being configured to: receive respective notifications from the corresponding one or more child nodes, each notification indicating a status of one or more leaf nodes of the subset of the leaf nodes associated with the notification; responsive to receipt of the respective notifications from the corresponding one or more child nodes, generate an aggregated notification, the aggregated notification being a notification indicative of the statuses of the respective one or more leaf nodes of the subset of the leaf nodes associated with each of the notifications; and transmit the aggregated notification to the corresponding grandparent node.
[0088] Clause 2. The messaging system of claim 1 , wherein the target node is configured to: receive respective notifications from one or more child nodes of the target node, each notification indicating a status of one or more leaf nodes of the subset of the leaf nodes associated with the notification; determine, based on one or more notifications received from the one or more child nodes of the target node, whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes; and in response to determining to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes, transmit the message to the one or more of the child nodes of the target node.
[0089] Clause 3. The messaging system of clause 2, wherein the plurality of nodes are communicatively coupled to transmit a message from the target node for concurrent receipt by each of the leaf nodes of the subset of the leaf nodes .
[0090] Clause 4. The messaging system of clause 2 or 3, wherein the message transmitted from the target node comprises data obtained by one of the leaf nodes.
[0091] Clause 5. The messaging system of any one of clauses 2-4, wherein the target node is configured to determine, based on one or more notifications received from the one or more child nodes of the target node, whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes by performing operations comprising: maintaining a count of a number of the leaf nodes of the subset of the leaf nodes that are in a state for receiving the message from the target node; and determining to transmit the message to the one or more of the leaf nodes of the subset of the leaf nodes in response to the count reaching a value equal to a pre-determined number of leaf nodes. Clause 6. The messaging system of clause 5, wherein the target node is configured to determine the pre-determined number of leaf nodes from one or more notifications transmitted to the target node from one or more of the leaf nodes of the subset of the leaf nodes.
[0092] Clause 7. The messaging system of clause 5 or 6, wherein the aggregated notification indicative of the statuses of the respective one or more of the leaf nodes of the subset of the leaf nodes associated with each of the notifications comprises a count of a number of leaf nodes of the subset of the leaf nodes that are in a state for receiving the message from the target node.
[0093] Clause 8. The messaging system of any preceding clause, wherein each aggregator node is configured to: process the respective notifications received from the corresponding one or more child nodes to determine whether the a respective status for each of a pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node; and generate the aggregated notification responsive to a determination that a respective status for each of the pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node.
[0094] Clause 9. The messaging system of clause 8, wherein the aggregated notification is a notification indicative of the respective statuses of the pre-determined one or more leaf nodes of the subset of leaf nodes.
[0095] Clause 10. The messaging system of any preceding clause, wherein the target node is one of the real-time units.
[0096] Clause H . The messaging system of clause 10, wherein respective latencies for communication between the one or more aggregator nodes and the target node are greater than respective latencies for communication between each aggregator node and the corresponding one or more child nodes of the aggregator node.
[0097] Clause 12. The messaging system of any preceding clause, wherein the messaging system comprises a first real-time module comprising the target node and one or more further real-time modules, each further real-time module comprising a respective aggregator node of the one or more aggregator nodes and the corresponding one or more child nodes of the aggregator node.
[0098] Clause 13. The messaging system of any preceding clause, wherein each of the aggregator nodes or the real-time modules is a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC).
[0099] Clause 14. A real-time system comprising the messaging system of any preceding clause and a plurality of quantum devices, wherein each of the real-time units is communicatively coupled to a respective proper subset of the plurality of quantum devices, and the quantum devices comprise qubits and one or more of the real-time units are configured to perform an operation selected from a read-out, reset or gate operation on said qubits.
[0100] Clause 15. A method performed by a messaging system in a real-time system adapted for communicating with a plurality of quantum devices, the messaging system comprising: a messaging unit; a plurality of real-time units, each real-time unit communicatively couplable to a respective proper subset of the plurality of quantum devices; and a communication network comprising a plurality of nodes including: one or more aggregator nodes, and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to notify a target node of a status of each leaf node in a subset of the leaf nodes; and wherein each aggregator node is communicatively coupled to a corresponding one or more child nodes of the plurality of nodes and to a corresponding grandparent node of the plurality of nodes, the method comprising, at one or more of the aggregator nodes: receiving respective notifications from the corresponding one or more child nodes, each notification indicating a status of one or more leaf nodes of the subset of the leaf nodes associated with the notification; responsive to receipt of the respective notifications from the corresponding one or more child nodes, generating an aggregated notification indicative of the statuses of the respective one or more leaf nodes of the subset of the leaf nodes associated with each of the notifications; and transmitting the aggregated notification to the corresponding grandparent node. Clause 16. The method of clause 15, further comprising: at the target node, receiving respective notifications from one or more child nodes of the root node, each notification indicating a status of one or more of the leaf nodes ofthe subset of the leaf nodes associated with the notification; at the target node, determining based on one or more received notifications whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes; and in response to the target node determining to transmit the respective message to one or more of the leaf nodes of the subset ofthe leaf nodes, transmitting the respective message to one or more of the child nodes of the target node.
[0101] Clause 17. The method of clause 16, wherein the respective messages are received concurrently by each of the leaf nodes of the subset of the leaf nodes.
[0102] Clause 18. The method of clause 16 or 17, wherein the respective messages transmitted from the target node comprises data obtained by one of the leaf nodes.
[0103] Clause 19. The method of any one of clauses 16-18, wherein determining based on one or more received notifications whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes comprises: maintaining a count of a number of the leaf nodes of the subset of the leaf nodes that are in a state for receiving the message from the target node; and determining to transmit the message to the one or more of the leaf nodes of the subset of the leaf nodes in response to the count reaching a pre-determined value.
[0104] Clause 20. The method of clause 19, wherein the aggregated notification indicative of the statuses of the respective one or more of the leaf nodes of the subset of the leaf nodes associated with each of the plurality of notifications comprises a count of a number of leaf nodes ofthe subset of the leaf nodes that are in a state for receiving the message from the target node.
[0105] Clause 21 . The messaging system of clause 20, wherein the target node determines the pre-determined number of leaf nodes from a notification transmitted to the target node from one of the leaf nodes.
[0106] Clause 22. The method of any one of clauses 15-21 , further comprising, at each aggregator node: processing the plurality of notifications received from the one or more child nodes to determine whether the a respective status for each of a pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node; and generating the aggregated notification responsive to a determination that a respective status for each of the pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node.
[0107] Clause 23. The method of clause 22, wherein the aggregated notification is a notification indicative of the respective statuses of the pre-determined one or more leaf nodes.
[0108] Clause 24. The method of any one of clauses 15-23, wherein the quantum devices comprise qubits and one or more of the real-time units are configured to perform an operation selected from a read-out, reset or gate operation on said qubits in response to receiving the message from the target node.
[0109] Clause 25. One or more computer storage media storing instructions that, when executed by a messaging system comprising a plurality of real-time units and a communication network, cause the messaging system to perform the method of any one of clauses 15-24.
Claims
CLAIMS1. A messaging system in a real-time system adapted for communicating with a plurality of quantum devices, the messaging system comprising: a plurality of real-time units, each real-time unit communicatively couplable to a respective proper subset of the plurality of quantum devices; and a communication network comprising a plurality of nodes including: one or more aggregator nodes, and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to notify a target node of a status of each leaf node in a subset of the leaf nodes; and wherein each aggregator node is communicatively coupled to a corresponding one or more child nodes of the plurality of nodes and to a corresponding grandparent node of the plurality of nodes, each aggregator node being configured to: receive respective notifications from the corresponding one or more child nodes, each notification indicating a status of one or more leaf nodes of the subset of the leaf nodes associated with the notification; responsive to receipt of the respective notifications from the corresponding one or more child nodes, generate an aggregated notification, the aggregated notification being a notification indicative of the statuses of the respective one or more leaf nodes of the subset of the leaf nodes associated with each of the notifications; and transmit the aggregated notification to the corresponding grandparent node.
2. The messaging system of claim 1 , wherein the target node is configured to: receive respective notifications from one or more child nodes of the target node, each notification indicating a status of one or more leaf nodes of the subset of the leaf nodes associated with the notification; determine, based on one or more notifications received from the one or more child nodes of the target node, whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes; and in response to determining to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes, transmit the message to the one or more of the child nodes of the target node.
3. The messaging system of claim 2, wherein the plurality of nodes are communicatively coupled to transmit a message from the target node for concurrent receipt by each of the leaf nodes of the subset of the leaf nodes .
4. The messaging system of claim 2 or 3, wherein the message transmitted from the target node comprises data obtained by one of the leaf nodes.
5. The messaging system of any one of claims 2-4, wherein the target node is configured to determine, based on one or more notifications received from the one or more child nodes of the target node, whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes by performing operations comprising: maintaining a count of a number of the leaf nodes of the subset of the leaf nodes that are in a state for receiving the message from the target node; and determining to transmit the message to the one or more of the leaf nodes of the subset of the leaf nodes in response to the count reaching a value equal to a pre-determined number of leaf nodes.
6. The messaging system of claim 5, wherein the target node is configured to determine the pre-determined number of leaf nodes from one or more notifications transmitted to the target node from one or more of the leaf nodes of the subset of the leaf nodes.
7. The messaging system of claim 5 or 6, wherein the aggregated notification indicative of the statuses of the respective one or more of the leaf nodes of the subset of the leaf nodes associated with each of the notifications comprises a count of a number of leaf nodes of the subset of the leaf nodes that are in a state for receiving the message from the target node.
8. The messaging system of any preceding claim, wherein each aggregator node is configured to: process the respective notifications received from the corresponding one or more child nodes to determine whether the respective status for each of a pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node; and generate the aggregated notification responsive to a determination that the respective status for each of the pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node.
9. The messaging system of claim 8, wherein the aggregated notification is a notification indicative of the respective statuses of the pre-determined one or more leaf nodes of the subset of leaf nodes.
10. The messaging system of any preceding claim, wherein the target node is one of the real-time units.11 . The messaging system of claim 10, wherein respective latencies for communication between the one or more aggregator nodes and the target node are greater than respective latencies for communication between each aggregator node and the corresponding one or more child nodes of the aggregator node.
12. The messaging system of any preceding claim, wherein the messaging system comprises a first real-time module comprising the target node and one or more further realtime modules, each further real-time module comprising a respective aggregator node of the one or more aggregator nodes and the corresponding one or more child nodes of the aggregator node.
13. The messaging system of any preceding claim, wherein each of the aggregator nodes or the real-time modules is a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC).
14. A real-time system comprising the messaging system of any preceding claim and a plurality of quantum devices, wherein each of the real-time units is communicatively coupled to a respective proper subset of the plurality of quantum devices, and the quantum devices comprise qubits and one or more of the real-time units are configured to perform an operation selected from a read-out, reset or gate operation on said qubits.
15. A method performed by a messaging system in a real-time system adapted for communicating with a plurality of quantum devices, the messaging system comprising: a messaging unit; a plurality of real-time units, each real-time unit communicatively couplable to a respective proper subset of the plurality of quantum devices; and a communication network comprising a plurality of nodes including: one or more aggregator nodes, and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to notify a target node of a status of each leaf node in a subset of the leaf nodes; andwherein each aggregator node is communicatively coupled to a corresponding one or more child nodes of the plurality of nodes and to a corresponding grandparent node of the plurality of nodes, the method comprising, at one or more of the aggregator nodes: receiving respective notifications from the corresponding one or more child nodes, each notification indicating a status of one or more leaf nodes of the subset of the leaf nodes associated with the notification; responsive to receipt of the respective notifications from the corresponding one or more child nodes, generating an aggregated notification indicative of the statuses of the respective one or more leaf nodes of the subset of the leaf nodes associated with each of the notifications; and transmitting the aggregated notification to the corresponding grandparent node.
16. The method of claim 15, further comprising: at the target node, receiving respective notifications from one or more child nodes of the root node, each notification indicating a status of one or more of the leaf nodes of the subset of the leaf nodes associated with the notification; at the target node, determining based on one or more received notifications whether to transmit a message to one or more of the leaf nodes of the subset of the leaf nodes; and in response to the target node determining to transmit the respective message to one or more of the leaf nodes of the subset of the leaf nodes, transmitting the respective message to one or more of the child nodes of the target node.
17. The method of claim 16, wherein the respective messages are received concurrently by each of the leaf nodes of the subset of the leaf nodes.
18. The method of claim 16 or 17, wherein the respective messages transmitted from the target node comprises data obtained by one of the leaf nodes.
19. The method of any one of claims 16-18, wherein determining based on one or more received notifications whether to transmit the message to one or more of the leaf nodes of the subset of the leaf nodes comprises: maintaining a count of a number of the leaf nodes of the subset of the leaf nodes that are in a state for receiving the message from the target node; and determining to transmit the message to the one or more of the leaf nodes of the subset of the leaf nodes in response to the count reaching a pre-determined value.
20. The method of claim 19, wherein the aggregated notification indicative of the statuses of the respective one or more of the leaf nodes of the subset of the leaf nodes associated with each of the plurality of notifications comprises a count of a number of leaf nodes of the subset of the leaf nodes that are in a state for receiving the message from the target node.
21. The messaging system of claim 20, wherein the target node determines the predetermined number of leaf nodes from a notification transmitted to the target node from one of the leaf nodes.
22. The method of any one of claims 15-21 , further comprising, at each aggregator node: processing the plurality of notifications received from the one or more child nodes to determine whether the respective status for each of a pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node; and generating the aggregated notification responsive to a determination that the respective status for each of the pre-determined one or more leaf nodes of the subset of leaf nodes has been received at the aggregator node.
23. The method of claim 22, wherein the aggregated notification is a notification indicative of the respective statuses of the pre-determined one or more leaf nodes.
24. The method of any one of claims 15-23, wherein the quantum devices comprise qubits and one or more of the real-time units are configured to perform an operation selected from a read-out, reset orgate operation on said qubits in response to receiving the message from the target node.
25. One or more computer storage media storing instructions that, when executed by a messaging system comprising a plurality of real-time units and a communication network, cause the messaging system to perform the method of any one of claims 15-24.