Synchronised real-time system adapted for communicating with quantum devices

The messaging system with a communication tree network addresses latency issues in quantum control systems by staggering message transmission based on individual latencies, enabling synchronized and deterministic operations across multiple qubits.

GB2644270APending Publication Date: 2026-04-01RIVERLANE LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-12
Publication Date
2026-04-01

AI Technical Summary

Technical Problem

Existing real-time control systems for quantum computers struggle to manage simultaneous operations across large numbers of qubits due to communication latency issues, particularly in distributed control systems, leading to challenges in synchronizing operations between qubits connected to different parts of the control system, especially when implementing conditional branching.

Method used

A messaging system with a communication tree network that staggers message transmission based on individual communication latencies between nodes to ensure concurrent receipt by real-time units, using a messaging unit and real-time units communicatively coupled to quantum devices, ensuring deterministic operation timing.

Benefits of technology

The system enables synchronized operations across multiple quantum devices with varying communication latencies, ensuring deterministic behavior and efficient low-latency operations within specific time constraints, even when qubits are located at different physical distances from the root node.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Selective staggering or delaying of control and read signals to mitigate for differing latencies or lags in communication between a classical computer and underlaying quantum devices e.g. in a quantum
Need to check novelty before this filing date? Find Prior Art

Description

The invention relates to real-time systems, e.g. for use in quantum computing. Background Quantum computers have the potential to perform computations that would be intractable on even the most powerful classical computers. 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. 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. 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. 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. Summary of the invention According to a first aspect of the invention, there is provided a messaging system in a realtime system adapted for communicating (i.e. configured to communicate) with (e.g. controlling) a plurality of quantum devices (e.g. of a quantum computing system). The messaging system comprises: 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 tree network comprising a plurality of nodes including the messaging unit as a root node and the plurality of real-time units as respective leaf nodes. The plurality of nodes are communicatively coupled to transmit a message from the root node to each of the leaf nodes for concurrent receipt by each of the leaf nodes. One or more of the nodes (e.g. each of the nodes except the leaf nodes) is a parent node configured to transmit the message to each child node in a corresponding cluster of child nodes. Each cluster of child nodes comprises a different two or more child nodes of the plurality of nodes. Each of the parent nodes is configured to stagger transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and nodes of the plurality of nodes that are descendants of the parent node. As one example, if the communication latency between the root node (messaging unit) and a first leaf node (real-time unit) is longer than the communication latency between the root node and a second leaf node (e.g. because the connection between the root node and the second leaf node is physically longer) then the root node may delay transmission of the message to the first leaf node to account for the additional time taken for the second leaf node to receive the message (e.g. by the difference between the two communication latencies). Staggering transmission of the message to the first leaf node relative to the second leaf node in this manner advantageously allows for synchronisation between the leaf nodes (real-time units) even when they have different communication latencies. For example, the leaf nodes can be operated synchronously even when located at different physical distances from the root node. 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. The messaging system of the first aspect ensures synchronisation of quantum devices by configuring the communication tree network such that a message received or generated by the messaging unit is transmitted for concurrent receipt to each of a plurality of real-time units that are communicatively coupled to the quantum devices. Concurrency is achieved by each of the parent nodes in the communication network staggering transmission of the message to its child nodes according to respective communication latencies. The behaviour of the real-time units subsequent to receipt of the message is deterministic, so any operations performed by the real-time units after receipt of the message can be performed with the high degree of synchronisation required by quantum systems. The use of a tree network (rather than e.g. a ring network) can ensure that message can be transmitted to the leaf nodes deterministically, e.g. without congestion causing unpredictable communication latencies. 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. 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. 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 communicating with or controlling quantum devices, e.g. of a quantum computing system. 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. 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) for the 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 quantum gates at a predetermined time after receipt of the message. Deterministic means the time required by a computation or operation is always the same and can be determined ahead of runtime (i.e. during compilation). In other words, a deterministic operation is one that is always performed in the same fixed number of clock cycles. Performing an operation at a deterministic time after receiving a message means to perform the operation within a predetermined fixed time period (i.e. a fixed time period determined ahead of runtime, e.g. during compilation), or equivalently, to perform the operation in a fixed (and predetermined) number of clock cycles. The deterministic time period (i.e. the number of clock cycles) does not necessarily need to be calculated explicitly: the deterministic time period may be a consequence of the fact that each individual operation (including wait operations) is deterministic / has a known execution time (i.e. a known number of clock cycles); the deterministic time periods can therefore be achieved by a run-time unit executing a predetermined sequence of operations (i.e. determined during compilation) immediately upon receipt (i.e. without waiting, e.g. for another process to complete) of a message. One skilled in the art will recognise that deterministic behaviour can be ensured by implementing the real-time units using dedicated processing elements, e.g. a dedicated processing element in an FPGA or application-specific integrated circuit (ASIC), rather than a standard CPU. The messaging unit can, for example, transmit a message to the real-time units in response to an event trigger, which can, for example, be generated by any event that affects runtime operation of any of the real-time units. As one example, an event trigger may be a qubit measurement result from a readout operation performed by one of the real-time units (for example, a measurement result that is required for a decision at another of the real-time units), or the event trigger may indicate that an operation (e.g. part of a quantum computation being performed on the quantum devices, such as a quantum gate or series of quantum gates) being performed by one or more of the real-times units is complete or nearing completion (a real-time unit may need to delay its own operations so that future operations can be synchronised with those of another real-time unit). An event trigger can, for example, be defined during compilation of a quantum computation ahead of runtime. The message may any electronic message (e.g. a data packet) containing information. For example, the message can be associated with an event, such as an event identifier and / or data values, and / or provide an instruction, such as instruction for a quantum gate operation or series of quantum gate operations to be performed. Concurrent receipt of a message means that the message is received within the same clock cycle at each of the plurality of the real-time units. A typical clock cycle of a real-time unit implemented using a Field Programmable Gate Array 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 each of the real-time units receives the message within 10 ns or less of each other. As used herein, descendants (i.e. descendant nodes) of a parent node are nodes of the communication tree network that are (i) a child node of the parent node, or (ii) a child node of a descendant of the parent node, e.g. grandchild nodes, great-grandchild nodes, and so on. That is, each descendant of a parent node is communicatively coupled to the parent node either by being a child node of the parent node, or by being communicatively coupled to a descendant of the parent node. Descendants of a parent node are “downstream” of the parent node, such that messages from the root node are transmitted to the descendant nodes via the corresponding parent node(s). In general, the communication tree network can comprise any number of nodes greater than 3 nodes, such as more than 10 nodes, more than 100, more than 1000 nodes, and so on. The nodes can be arranged into two or more layers, e.g. 3, 4, 5 or more layers. The communication tree network can, for example, be a binary tree network. Optionally, each of the parent nodes is configured to stagger transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and the leaf nodes that are descendants of the parent node. For example, each parent node (or optionally, each parent node except the root node), can be configured to receive the message, and responsive to receipt of the message, transmit the message to each child node of the parent node after the respective delay. Parent nodes can therefore stagger transmission of the message to its child nodes to take into account overall communication latencies between the parent node and the leaf nodes, not just communication latencies between the parent node and its child nodes. One or more of the respective delays can be zero. For example, the parent nodes can be configured so that the message can be transmitted to the leaf node for which the overall communication latency is greatest without any additional delays being introduced during transmission to that leaf node. In general, unless all the communication latencies between the root node and the leaf nodes are equal, at least one of the delays will be non-zero. In some implementations, each parent node can be configured to, for each child node of the parent node, transmit the message to the child node after a respective delay determined according to a respective maximum communication latency (MCL) for the child node. The MCL is the maximum of the communication latencies between the parent node and each leaf node that is (i) the child node of the parent node, or (ii) a descendant of the child node. That is, the MCL for a child node of a parent node is the communication latency corresponding to the longest respective time for transmission of the message from the parent node to that child node (when the child node is a leaf node) or to any leaf node that is a descendant of that child node. Optionally, the messaging system can be configured to determine, for each parent node, the respective delay for transmission of the message to each of the child nodes of the parent node based on a maximum MCL for the parent node. The maximum MCL is the maximum of the respective MCLs of the child nodes of the parent node. Determining the respective delays according to the maximum MCL of the child nodes of the parent node can ensure that the total delay in transmitting the message from the parent node to each of the leaf nodes is minimised. For example, the messaging system can be configured to determine, for each parent node, the respective delay for transmission of the message to each of the child nodes of the parent node based on a difference between the maximum MCL for the parent node and the respective MCL for the child node. As one particular example, the respective delay for transmission of the message to each of the child nodes of the parent node can be equal to the difference between the MCL for the parent node and the respective MCL for the child node. Thus, the delay for transmission of the message to the child node having the MCL equal to the maximum MCL for the parent node can be zero. Configuring the parent nodes in this way allows the message to be received concurrently by each of the nodes in the minimum time. Each parent node can be configured to determine, e.g. as part of a “delay discovery” process, (i) the respective MCL for each of the child nodes of the parent node, and (ii) the maximum MCL for the parent node. For example, each parent node can be configured to, for each child node of the parent node: transmit a query to the child node; and determine the MCL for the child node based on an elapsed time between transmission of the query by the parent node and receipt of a last of one or more responses received from the child node. Each child node can be configured to, responsive to receipt of a query (which may be termed a delay discovery query) from the parent node of the child node, transmit a response (which may be termed a delay discovery response) to the parent node. Each child node that is also a parent node can be configured to, responsive to receipt of a query from a parent node, transmit a query to one or more grandchild nodes. The child node is a parent node of the one or more grandchild nodes. The transmission of the query to the grandchild nodes can, for example, be performed concurrently. Each parent node except the root node can be configured to, responsive to receipt of a response from a child node, transmit a response (which may be termed an MCL update notification) to a respective grandparent node. The parent node is a child node of the grandparent node. Advantageously, each parent node can be configured (i.e. the MCL values for the child nodes obtained) using only the arrival times of the responses it receives from its child nodes during the delay discovery process. For example, each node can be configured without needing to receive other information about the configuration of nodes above or below it in the communication tree network. Each parent node also needs only store a single (MCL) value for each of its child nodes, rather than e.g. an overall communication latency for each leaf node that is a descendant of the parent node. The queries and responses sent between the nodes can be of any size, such as a size selected to be representative of (or the same as) the size of messages that will be transmitted from the root node to the leaf nodes once the communication tree network has been configured. Alternatively, the size of the queries and responses can be minimal to allow the delay discovery process to be performed as quickly as possible by minimising the time needed to transmit the queries and responses. As each of the parent nodes is able to configure itself in the same way during the delay discovery process, the communication tree network can also be re-configured easily, e.g. the connectivity of the network varied (e.g. one or more nodes added) without the nodes needing to be re-programmed. The communication tree network is also self-configuring in that no external processing or messaging is needed during the delay discovery process. The delay discovery process can, for example, be performed on start-up of a quantum control system. The delay discovery process can be repeated after a pre-determined delay, or in response to changes in conditions, such as temperature changes, that may affect the communication latencies in the communication tree network. In some cases, the delay discovery process can be performed in microseconds. In some implementations, the root node is configured to: transmit a query to each child node of the root node; and a pre-determined time after transmitting the query, transmit an exit delay discovery instruction to each child node of the root node. Each parent node except the root node can be configured to, responsive to receipt of the instruction, transmit the instruction to each child node. Thus, the delay discovery process can be terminated after a pre-determined time, which can, for example, be selected based on a height (number of levels) of the communication tree network and an average communication latency between nodes. Terminating the delay discovery process after a fixed time can avoid the parent nodes needing to know how many descendants they have. Alternatively, if this information is available at the parent node, the parent node can count the number of responses it receives from its child nodes to determine whether the delay discovery process has completed, i.e. whether responses from each of the leaf nodes that are descendants of the parent node have been propagated to the parent node. Each parent node (except optionally the root node) can be configured to transition into a wait state after transmitting queries to each child node or transmitting a response to a grandparent node. A wait state is a state in which the parent node is ready to receive and immediately process a received response from a child node (i.e. without having to wait for an existing process to complete). Transitioning to a wait state means that the parent node 7 can immediately process any response received from a child node. Thus, processing delays that might otherwise interfere with the delay discovery process can be avoided. The parent node can exit the wait state on receipt of an exit delay discovery instruction. For example, the parent node can enter a new state in which, on receipt of a message, the parent node staggers transmission of the message to the child nodes of the parent node. The nodes of the messaging system can comprise dedicated processing elements, e.g. a dedicated processing element in an FPGA or ASIC, for performing the required operations. In some implementations, each of the nodes of the communication tree network can take the place of any of the other nodes of communication tree network, i.e. each node can be configured to be the root node, a parent node that is not the root node, or a leaf node. In other words, each of the nodes can be a real-time unit that is communicatively couplable to a respective proper subset of the quantum devices in a quantum computer system and each of the nodes can comprise a messaging unit for receiving a message for distribution to the leaf nodes of the communication tree network. In some implementations, each of the nodes uses the same hardware arrangement, e.g. the nodes can be physically interchangeable to facilitate reconfiguration or extension of the communication tree network (e.g. by adding one or more nodes). The messaging system can be configured to determine a respective communication latency between the root node and the leaf node based on an elapsed time between receipt of a first message at the leaf node and receipt of a second message at the leaf node. For example, each parent node can be configured to stagger transmission of the first message to the child nodes of the parent node so that the first message arrives concurrently at each leaf node; and transmit the second message to the child nodes of the parent node without staggering transmission. Each of the leaf nodes can then be configured to: responsive to receiving a third message from the root node, perform a respective operation after a respective predetermined delay determined according to the respective communication latency between the root node and the leaf node. Each parent node can be configured to transmit the third message to the child nodes of the parent node without staggering transmission. Each of the leaf nodes can then perform the operation concurrently, even though the third message can be received at the leaf nodes at different times. According to a second aspect of the invention, there is provided a (computer implemented) method of configuring a messaging system in a real-time system adapted for communicating with (e.g. controlling) a plurality of quantum devices in a quantum computing system. The messaging system comprises: 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 tree network comprising a plurality of nodes including the messaging unit as a root node and the plurality of real-time units as respective leaf nodes. The plurality of nodes are communicatively coupled to transmit messages from the root node to each of the leaf nodes for receipt (e.g. concurrent receipt) by each of the leaf nodes. One or more of the nodes is a parent node configured to transmit the message to each child node in a corresponding cluster of child nodes. Each cluster of child nodes comprises a different two or more child nodes of the plurality of nodes. The method comprises determining, for each parent node, respective communication latencies between the parent node and nodes of the plurality of nodes that are descendants of the parent node. The messaging system can, for example, be the messaging system described above for the first aspect of the invention. Optionally, determining the communication latencies comprises determining, for each parent node, respective communication latencies between the parent node and leaf nodes of the parent node that are descendants of the parent node. For example, determining the communication latencies can comprise determining, for each parent node, respective communication latencies between the parent node and each of the leaf nodes that are descendant nodes of the parent node. Determining communication latencies between the parent node and leaf nodes that are descendants of the parent node can comprise: for each child node of the parent node, determining a respective delay after which to transmit a message to the child node, the respective delay being determined according to a respective maximum communication latency (MCL) for the child node. The MCL is the maximum of the communication latencies between the parent node and each leaf node that is (i) the child node of the parent node, or (ii) a descendant of the child node. The method can comprise, for each parent node, determining the respective delay for each of the child nodes of the parent node based on a maximum MCL for the parent node. The maximum MCL is the maximum of the MCLs of the child nodes of the parent node. For example, the method can comprise, for each of the parent nodes: transmitting a query from the parent node to each of the child nodes of the parent node; receiving a respective one or more responses from each child node of the parent node; and determining the respective MCL for the child node based on an elapsed time between transmission of the query by the parent node and receipt of a last of the respective one or more responses from the child node. The method can additionally comprise, for each child node, in response to receiving a query from a parent node of the child node, transmit a response to the parent node. The method can additionally comprise, at each child node that is also a parent node, in response to receiving a query from a parent node, transmitting a query to one or more grandchild nodes. The child node is a parent node of the one or more grandchild nodes. The transmission of the query to the grandchild nodes can, for example, be performed concurrently. The method can further comprise, for each parent node except the root node, in response to receiving a response from a child node, transmitting a response to a respective grandparent node, wherein the parent node is a child node of the grandparent node. The grandparent node can then determine the MCL for the parent node using responses transmitted by the parent node in response to the parent node receiving responses from child nodes. The method can also comprise, at the root node: transmitting a query to each child node of the root node; and at a pre-determined time after transmitting the query, transmitting an exit delay discovery instruction to each child node of the root node. The method can then further comprise, at each parent node except the root node: in response to the grandparent node receiving an exit delay discovery instruction, transmitting an exit delay discovery instruction to each child node of the parent node. Thus, the exit delay discovery instruction can be transmitted to each node in the communication network. According to a third aspect of the present invention, there is provided a method of transmitting a message in a messaging system of a real-time system for concurrent receipt by a plurality real-time units adapted for communicating with (e.g. controlling) a plurality of quantum devices in a quantum computing system. The messaging system comprises: 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 tree network comprising a plurality of nodes including the messaging unit as a root node and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to transmit a message from the root node to each of the leaf nodes for concurrent receipt by each of the leaf nodes. Each of the nodes except the leaf nodes is a parent node configured to transmit the message to each child node in a corresponding cluster of child nodes. Each cluster of child nodes comprises a different two or more child nodes of the plurality of nodes. The method comprises, at each of the parent nodes, staggering transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and nodes of the plurality of nodes that are descendant nodes of the parent node. The messaging system can, for example, be the messaging system described above for the first aspect of the invention. The messaging system can have been configured according to the method of the second aspect of the invention. Staggering transmission of the message to the child nodes of the parent node can comprise staggering transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and leaf nodes that are descendants of the parent node. For example, the respective delay can be determined according to a respective maximum communication latency (MCL) for the child node, the MCL being the maximum of the communication latencies between the parent node and each leaf node that is (i) the child node of the parent node, or (ii) a descendant of the parent node. For example, the respective delay can be based on a difference between the maximum MCL for the parent node and the respective MCL of for the child node, the maximum MCL for the parent node being the maximum of the MCLs of the child nodes of the parent node. According to a fourth aspect of the present invention, there is provided one or more computer storage media storing instructions that when executed by a messaging system comprising a messaging unit, a plurality of real-time units, and a communication tree network, cause the messaging system to perform the method of the second aspect of the invention or the third aspect of the invention. Any feature described in combination with any of the first, second or third aspects of the invention may also be combined with any of the other aspects of the invention. The second and / or third aspects of the invention can be performed by the messaging system of the first aspect of the invention. Brief description of the drawings Examples of the present invention will now be described in detail with reference to the accompanying drawings, in which: Fig. 1 is a schematic of a quantum computing system; Fig. 2 is a schematic of a messaging system; Fig. 3 is a timing diagram of a method of transmitting a message in the messaging system of Fig. 2 for concurrent receipt by the plurality real-time units; and Fig. 4 is a timing diagram of a method of configuring the messaging system of Fig. 2. Fig. 5 is a schematic of a method of configuring a messaging system. Detailed description 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 drawbacks of existing systems for communicating with quantum devices through the use of a messaging system that can transmit messages (e.g. instructions) for concurrent receipt by real-time units to ensure deterministic behaviour without, for example, the need to introduce substantial delays into program sequences. 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 units 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. 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 units 106a, 106b are likewise classical processing devices. One or more of the APU 102, messaging unit 104 and realtime units 106a, 106b may be provided on the same hardware (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. As described in more detail below, the messaging unit 104 is responsible for transmitting messages, e.g. runtime events or instructions, to the run-time units 106a, 106b to ensure runtime synchronicity between the real-time units 106a, 106b. The messaging unit 104 may optionally be integrated into a real-time unit such as one of the illustrated real-time units 106a, 106b. In some cases, each of the real-time units comprises a messaging unit, such that any of the real-time units can be the root node of the communication tree network. 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 units 106a, 106b, e.g. in response to a start trigger received from the APU 102. The first and second real-time units 106a, 106b may be, or may comprise, micro sequencer devices (also referred to herein as sequencers). The first real-time unit 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 run-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 realtime units 106a, 106b (e.g. the bidirectional channel 116a and the downstream channel 116b) may be referred to herein as channels or communication channels. The first and second real-time units 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 units 106a, 106b for storage in the buffers 128a, 128b. The runtime instructions contain information required for the first and second real-time units 106a, 106b to distribute instructions to its peripherals 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 packets). The first and second real-time units 106a, 106b are each connected to respective signal generation modules 108 by respective downstream signal generation channels 118a, 118b. The first real-time unit 106a is additionally coupled to a readout module 110 by a downstream readout channel 120 and an upstream readout channel 122. The signal generation modules 108 and readout module 110 are peripherals of the first and second real-time units 106a, 106b. The first and second real-time units 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 first and second real-time units 106a, 106b can wait for a fixed periods using the wait delay instructions. The first and second realtime units 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. 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 112. 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, the first real-time unit 106a may send a request to the readout module 110 to measure one or more qubit states. Once measured, the readout information is fed back from the readout module 110 to the first realtime unit 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. 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. The first and second real-time units 106a, 106b and the messaging unit 104 can form part of a quantum control system (also referred to herein as a control system), or of 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 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.). The illustrated quantum computing system 100 features two real-time units for ease of presentation. However, alternative examples may include additional real-time units 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. 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 tree network that has a messaging unit 204 as a root node and three real-time units 206a, 206b, 206c (e.g. read-out units and / or control units) as respective leaf nodes A, B and C. The messaging system 200m can be used to transmit a message from the root node for concurrent receipt by each of the leaf nodes A-C. In this example, leaf node A is communicatively coupled to the root node 204 by a communication link 216a, whilst leaf nodes B and C are communicatively coupled to a cluster node 205 by respective communication links 216b, 216c, and the cluster node 205 is communicatively coupled to the root node by another communication link 216d. The cluster node 205 is a real-time unit that, depending on how the quantum computing system is configured, may be used to control one or more quantum devices or it may be used merely as a node in the messaging system 200b. Each of the communication links 216a, 216d, 216b, 216c can have different respective communication latencies, such that a message transmitted to each of the leaf nodes 206a, 206b, 206c using the tree communication network would generally arrive at each of the leaf nodes at different times. As one illustrative example, the communication latencies (measured in clock cycles) for each of the communication links in the tree communication network can take the values shown in Table 1. Table 1 Communication Link Communication Latency MCL of Parent Node Required Delay Root - Leaf A 216a 1 12 11 Root - Cluster 216d 5 12 0 Parent - Leaf B 216b 7 7 0 Parent - Leaf C 216c 6 7 1 The messaging system 200m is configured so that a message transmitted from the root node 204 is received concurrently at each of the leaf nodes A-C. Concurrent receipt is achieved by staggering transmission of the message from the root node and the cluster node 205 according to the communication latencies of the communication links 216a, 216d, 216b, 216c. For example, for the communication latencies given in Table 1, concurrent receipt of a message can be achieved by: (i) configuring the root node 204 to send the message to the cluster node 205 without delay (i.e. a delay of zero clock cycles) and delay transmission of the message to the first leaf node 206a by 11 clock cycles; and (ii) configuring the cluster node 205 to transmit the message to leaf node B without delay and to leaf node C after a delay of 1 clock cycle. The arrival time at each of the leaf nodes A-C can be determined by summing the delays and communication latencies encountered by the message along the respective pathway from the root node to each of the leaf nodes. For the present example, the message reaches: (a) leaf node A after 11 + 1 = 12 clock cycles; (b) leaf node B after 0 + 5 + 7 = 12 clock cycles; and (c) leaf node C after 0 + 5+1 + 6=12 clock cycles. Fig. 3 illustrates the process 300 used by the messaging system 200m to transmit a message from the root node so that the message is received concurrently at each of the leaf nodes. At a first time 302, the root node transmits the message to the cluster node 205. The first time 302 can be determined by the root node (messaging unit 204) being instructed to transmit the message, for example, by an APU. The message arrives at the cluster node 205 at a second time 304 determined by the communication latency of the communication link 216d between the root node and the cluster node 205. The cluster node 205 then transmits the message to leaf node B. As shown in Fig. 3, the onwards transmission of the message to leaf node B occurs essentially immediately, although in practice there may be a small additional delay for the cluster node 205 to process the incoming message. At a third time 306, the cluster node 205 transmits the message to leaf node C. The delay tb between the second and third times 304, 306 is determined from the communication latencies for the communication links 216b, 216c between the cluster node 205 and the leaf nodes B and C. In this example, the delay tb is equal to the difference in the communication latencies. At a fourth time 308, the root node transmits the message to leaf node A. The delay ta between the root node transmitting the message to leaf node C at the first time 302 and the root node transmitting the message to leaf node A is determined from the communication latency for the communication link 216a between the root node and leaf node A and the overall communication latency for transmission of the message from the root node to leaf node B, i.e. via the communication links 216d, 216b between the root node and the cluster node 205 and between the cluster node 205 and leaf node B. At a fifth time 310, the message arrives (simultaneously) at each of the leaf nodes A-C. The delays ta, tb used by the root node and the cluster node 205 to stagger transmission of the message can be determined using a quantity referred to herein as the maximum communication latency (MCL), values of which are defined for each of the parent nodes in the tree communication network, in this case the root node and the cluster node 205. The MCL is the maximum amount of time, determined by the communication latencies of the communication links in the tree communication network, which is needed for sending a message from the parent node to any of the leaf nodes that are descendants of the parent node. For the cluster node 205, the MCL is equal to the greater of the respective communication latencies of the communication links 216b, 216c between the cluster node 205 and leaf nodes B and C (i.e., 7 cycles). The delay tb that the cluster node 205 uses to stagger transmission of the message to leaf node C is determined from the difference between the MCL for the cluster node 205 (7 cycles) and the communication latency of the communication link 216c for transmission of the message between the cluster node 205 and leaf node C (6 cycles). For the root node, the MCL is equal to the MCL for the cluster node 205 (7 cycles) and the communication latency of the communication link 216d between the root node and the cluster node 205 (5 cycles). The delay ta that the root node uses to stagger transmission of the message to leaf node A can be determined from the difference between the MCL for the root node (12 cycles) and the communication latency for the communication link 216a between the root node and leaf node A (1 cycle). In general, the MCL for each parent node in the communication network can be determined from the respective communication latencies for the communication links between the parent node and the child nodes and the respective MCLs for each of the child nodes of the parent node. The delay that the parent node uses to stagger transmission of the message to each of its child nodes can be determined as the difference between the MCL for the parent node and the respective communication latency of the communication link between the parent node and the child node. However, as described below with reference to Fig. 4, it is not necessary for these calculations to be performed explicitly, e.g. by a centralised processing unit, but rather each of the parent nodes in the tree communication network can discover the necessary MCLs and communication latencies for itself. Fig. 4 shows a process 400 for configuring the messaging system 200m, although it will be appreciated that the same process can be used to configure other messaging systems with different tree communication networks, e.g. different numbers of leaf nodes, different numbers of cluster nodes, different numbers of levels, and so on. The process 400 is initiated by the root node transmitting 402 a delay discovery query (DDQ) to each of its child nodes, i.e. to leaf node A and to the cluster node 205. On receipt of the DDQ, the leaf node A and the cluster node 205 each respond by transmitting 404 a respective delay discovery response (DDR) to the root node. The root node then determines the respective communication latencies for the communication links 216a, 216d to the child nodes by halving the delay between transmitting the DDQ to the child node and receiving the respective DDR from child node (preferably taking account of any delay due to cycles required for the child node to receive the DDQ and generate the DDR if necessary, which will generally be a fixed number of cycles known in advance and the same for all nodes). The root node then assigns a (tentative) maximum communication latency (MCL) as the greater of the communication latencies. For example, the root node may assign to the MCL the communication latency determined from the first DDR to be received at the root node, and then update the MCL to a greater communication latency each time a subsequent DDR is received. On receipt of the DDQ from the root node, the cluster node 205 transmits a respective DDQ to each of its child nodes, i.e. to leaf nodes B and C, which in turn respond 408, 410 with a respective DDR, which the cluster node 205 uses to determine the communication latencies of the communication links 216b, 216c to the child nodes. On receipt of the DDR from leaf node C, the cluster node 205 transmits 410 an MCL update notification (MUN) to the root node, which the root node uses to update the MCL. For example, the MCL can be updated to be the delay between the root node sending the DDQ to the cluster node 205 and the receipt of the MUN at the root node. On receipt of the DDR from leaf node B, the cluster node 205 transmits 412 an MUN to the root node, which the root node uses to update the MCL. The use of separate types of response for the MUN and DDR, can allow the root node (or any other grandparent node) to determine whether to determine a communication latency or update the MCL. However, it is not essential that different types of response are used and the MUN can, for example, be the same as the DDR. In that case, the root node can use the first-received response for a given communication link to determine the communication latency for that communication link, and then use each subsequent response received via any of the communication links to update the MCL for the root node. Ultimately, the maximum MCL for the root node is then determined 414 from the arrival time of the last-received response from any of the communication links. Such an approach can reduce the need for processing logic, e.g. to check the type of response received, at the root node. Fig. 5 shows a sub-process 500 of the delay discovery process, such as the process 400 described in connection with Fig. 4, and which comprises the steps performed by a grandparent node (e.g. the root node of the messaging system 200m), a parent node (e.g. the cluster node 205) and a leaf node (e.g. leaf node B). For the sake of clarity, steps relating to other nodes are omitted. The sub-process 500 comprises: • at the grandparent node, transmitting S502 a DDQ to the parent node; at the parent node, receiving S503 the DDQ and transmitting S504 a DDR to the grandparent node in response; • at the grandparent node, receiving S505 the DDR from the parent node, determining S506 the communication latency for transmitting a message using the communication link to the parent node, and transitioning to a wait state; • at the parent node, transmitting S507 a DDQ to the leaf node; • at the leaf node, receiving S508 the DDR from the parent node, and transmitting S509 a DDR to the parent node in response; • at the parent node, receiving S510 the DDR from the leaf node, determining S511 the communication latency for transmitting a message using the communication link to the leaf node, transmitting S512 a MUN to the grandparent node, and transitioning to a wait state; and • at the grandparent node, receiving S513 the MUN from the parent node, determining S514 the MCL for the grandparent node. The sub-process 500 may also optionally comprise: • at the grandparent node, transmitting S515 an exit delay discovery instruction (EDDI); • at the parent node, receiving S516 the EDDI, exiting the wait state, and transmitting S517 an EDDI to the leaf node; and • at the leaf node, receiving S518 the EDDI and ending the delay discovery process. On receipt of an EDDI, each of the parent nodes can exit the delay discovery process by transitioning to a new internal state, e.g. a state for staggering transmission of received messages to child nodes. While the examples shown in Figs. 1 to 4 comprise messaging systems with two or three real-time units, 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. 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. 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. 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. Numbered clauses 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. Clause 1. 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 tree network comprising a plurality of nodes including the messaging unit as a root node and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to transmit a message from the root node to each of the leaf nodes for concurrent receipt by each of the leaf nodes, wherein: one or more of the nodes is a parent node configured to transmit the message to each child node in a corresponding cluster of child nodes, each cluster of child nodes comprising a different two or more child nodes of the plurality of nodes, and each of the parent nodes is configured to stagger transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and nodes of the plurality of nodes that are descendants of the parent node. Clause 2. The messaging system of clause 1, wherein each of the parent nodes is configured to stagger transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and leaf nodes that are descendants of the parent node. Clause 3. The messaging system of clause 2, wherein each parent node is configured to: for each child node of the parent node, transmit the message to the child node after a respective delay determined according to a respective maximum communication latency (MCL) for the child node, the MCL being the maximum of the communication latencies between the parent node and each leaf nodes that is (i) the child node of the parent node, or (ii) a descendant of the child node. Clause 4. The messaging system of clause 3, configured to determine, for each parent node the respective delay for transmission of the message to each of the child nodes of the parent node based on a maximum MCL for the parent node, the maximum MCL being the maximum of the MCLs of the child nodes of the parent node. Clause 5. The messaging system of clause 4, configured to determine, for each parent node, the respective delay for transmission of the message to each of the child nodes of the parent node based on a difference between the maximum MCL for the parent node and the respective MCL for the child node. Clause 6. The messaging system of clause 4 or 5, wherein each parent node is configured to determine (i) the respective MCL for each of the child nodes of the parent node, and (ii) the maximum MCL for the parent node. Clause 7. The messaging system of clause 6, wherein each parent node is configured to, for each child node of the parent node: transmit a query to the child node; and determine the MCL for the child node based on an elapsed time between transmission of the query by the parent node and receipt of a last of one or more responses received from the child node. Clause 8. The messaging system of clause 7, wherein each child node is configured to: responsive to receipt of a query from the parent node of the child node, transmit a response to the parent node. Clause 9. The messaging system of clause 7 or 8, wherein each parent node except the root node is configured to: responsive to receipt of a response from a child node, transmit a response to a respective grandparent node, wherein the parent node is a child node of the grandparent node. Clause 10. A method of configuring 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 tree network comprising a plurality of nodes including the messaging unit as a root node and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to transmit messages from the root node to each of the leaf nodes for receipt by each of the leaf nodes, wherein: one or more of the nodes is a parent node configured to transmit the message to each child node in a corresponding cluster of child nodes, each cluster of child nodes comprising a different two or more child nodes of the plurality of nodes, the method comprising: determining, for each parent node, respective communication latencies between the parent node and nodes of the plurality of nodes that are descendant nodes of the parent node. ClauseH. The method of clause 10, wherein determining the respective communication latencies comprises: determining, for each parent node, respective communication latencies between the parent node and leaf nodes that are descendants of the parent node. Clause 12. The method of clause 11, wherein determining communication latencies between the parent node and leaf nodes that are descendants of the parent node comprises: for each child node of the parent node, determining a respective delay after which to transmit a message to the child node, the respective delay being determined according to a respective maximum communication latency (MCL) for the child node, the MCL being the maximum of the communication latencies between the parent node and each leaf node that is (i) the child node of the parent node, or (ii) a descendant of the child node. Clause 13. The method of clause 12, further comprising determining, for each parent node, the respective delay for each of the child nodes of the parent node based on a maximum MCL for the parent node, the maximum MCL being the maximum of the MCLs of the child nodes of the parent node. Clause 14. The method of clause 13, further comprising determining, for each parent node, the respective delay for each of the child nodes of the parent node based on a difference between the maximum MCL for the parent node and the MCL for the child node. Clause 15. The method of clause 14, wherein each parent node determines (i) the respective MCL of each of the child nodes of the parent node, and (ii) the maximum MCL for the parent node. Clause 16. The method of clause 15, further comprising, for each of the parent nodes: transmitting a query from the parent node to each of the child nodes of the parent node; receiving a respective one or more responses from each child node of the parent node; and determining the respective MCL for the child node based on an elapsed time between transmission of the query by the parent node and receipt of a last of the respective one or more responses from the child node. Clause 17. The method of clause 16, further comprising, for each child node, in response to receiving a query from a parent node of the child node, transmit a response to the parent node. Clause 18. The method of clause 16 or 17, further comprising, for each parent node except the root node: in response to receiving a response from a child node, transmitting a response to a respective grandparent node, wherein the parent node is a child node of the grandparent node. Clause 19. The method of any one of clauses 10-18, further comprising, at the root node: transmitting a query to each child node of the root node; and at a pre-determined time after transmitting the query, transmitting an exit delay discovery instruction to each child node of the root node. Clause 20. The method of clause 19, further comprising, at each parent node except the root node: in response to receiving an exit delay discovery instruction, transmitting an exit delay discovery instruction to each child node of the parent node. Clause 21. A method of transmitting a message in a messaging system of a real-time system for concurrent receipt by a plurality of real-time units 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 tree network comprising a plurality of nodes including the messaging unit as a root node and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to transmit a message from the root node to each of the leaf nodes for concurrent receipt by each of the leaf nodes, wherein: one or more of the nodes is a parent node configured to transmit the message to each child node in a corresponding cluster of child nodes, each cluster of child nodes comprising a different two or more child nodes of the plurality of nodes, the method comprising, at each of the parent nodes: staggering transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and nodes of the plurality of nodes that are descendants of the parent node. Clause 22. The method of clause 21, wherein staggering transmission of the message to the child nodes of the parent node comprises: staggering transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and leaf nodes that are descendants of the parent node. Clause 23. The method of clause 22, further comprising, at each parent node: for each child node of the parent node, transmitting the message to the child node after a respective delay determined according to a respective maximum communication latency (MCL) for the child node, the MCL being the maximum of the communication latencies between the parent node and each leaf node that is (i) the child node of the parent node, or (ii) a descendant of the parent node. Clause 24. The method of clause 23, wherein the respective delay for transmission of the message to each of the child nodes of the parent node is based on a difference between the maximum MCL for the parent node and the respective MCL for the child node, the maximum MCL for the parent node being the maximum of the MCLs of the child nodes of the parent node. Clause 25. One or more computer storage media storing instructions that when executed by a messaging system comprising a messaging unit, a plurality of real-time units, and a communication tree network, cause the messaging system to perform the method of any one of clauses 10-24.

Claims

1. 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; anda communication tree network comprising a plurality of nodes including the messaging unit as a root node and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to transmit a message from the root node to each of the leaf nodes for concurrent receipt by each of the leaf nodes, wherein:one or more of the nodes is a parent node configured to transmit the message to each child node in a corresponding cluster of child nodes, each cluster of child nodes comprising a different two or more child nodes of the plurality of nodes, andeach of the parent nodes is configured to stagger transmission of the message to the child nodes of the parent node according to respective communication latencies 14 / between the parent node and leaf nodes that are descendants of the parent node.CM2. The messaging system of claim 1, wherein each parent node is configured to: for each child node of the parent node, transmit the message to the child node after a respective delay determined according to a respective maximum communication latency (MCL) for the child node, the MCL being the maximum of the communication latencies between the parent node and each leaf node that is (i) the child node of the parent node, or (ii) a descendant of the child node.

3. The messaging system of claim 2, configured to determine, for each parent node the respective delay for transmission of the message to each of the child nodes of the parent node based on a maximum MCL for the parent node, the maximum MCL for the parent node being the maximum of the MCLs of the child nodes of the parent node.

4. The messaging system of claim 3, configured to determine, for each parent node, the respective delay for transmission of the message to each of the child nodes of the parent node based on a difference between the maximum MCL for the parent node and the respective MCL for the child node.

5. The messaging system of claim 3 or 4, wherein each parent node is configured to determine (i) the respective MCL for each of the child nodes of the parent node, and (ii)the maximum MCL for the parent node.

6. The messaging system of claim 5, wherein each parent node is configured to, for each child node of the parent node:transmit a query to the child node; anddetermine the MCL for the child node based on an elapsed time between transmission of the query by the parent node and receipt of a last of one or more responses received from the child node.

7. The messaging system of claim 6, wherein each child node is configured to: responsive to receipt of a query from the parent node of the child node, transmit a response to the parent node.LD8. The messaging system of claim 6 or 7, wherein each parent node except the root node is configured to:responsive to receipt of a response from a child node, transmit a response to a respective grandparent node, wherein the parent node is a child node of the grandparent node.

9. A method of configuring 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; anda communication tree network comprising a plurality of nodes including the messaging unit as a root node and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to transmit messages from the root node to each of the leaf nodes for receipt by each of the leaf nodes,wherein:one or more of the nodes is a parent node configured to transmit the message to each child node in a corresponding cluster of child nodes, each cluster of child nodes comprising a different two or more child nodes of the plurality of nodes, andeach of the parent nodes is configured to stagger transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and leaf nodes that are descendants of the parent node,the method comprising:determining, for each parent node, respective communication latencies between the parent node and leaf nodes that are descendants of the parent node.

10. The method of claim 9, wherein determining communication latencies between the parent node and leaf nodes that are descendants of the parent node comprises:for each child node of the parent node, determining a respective delay after which to transmit a message to the child node, the respective delay being determined according to a respective maximum communication latency (MCL) for the child node, the MCL being the maximum of the communication latencies between the parent node and each leaf node that is (i) the child node of the parent node, or (ii) a descendant of the child node.

11. The method of claim 10, further comprising determining, for each parent node, the respective delay for each of the child nodes of the parent node based on a maximum MCL for the parent node, the maximum MCL being the maximum of the MCLs of the child nodes of the parent node.LD12. The method of claim 11, further comprising determining, for each parent node, the respective delay for each of the child nodes of the parent node based on a difference between the maximum MCL for the parent node and the MCL for the child node.

13. The method of claim 12, wherein each parent node determines (i) the respective MCL of each of the child nodes of the parent node, and (ii) the maximum MCL for the parent node.

14. The method of claim 13, further comprising, for each of the parent nodes: transmitting a query from the parent node to each of the child nodes of the parent node;receiving a respective one or more responses from each child node of the parent node;anddetermining the respective MCL for the child node based on an elapsed time between transmission of the query by the parent node and receipt of a last of the respective one or more responses from the child node.

15. The method of claim 14, further comprising, for each child node, in response to receiving a query from a parent node of the child node, transmitting a response to the parent node.

16. The method of claim 14 or 15, further comprising, for each parent node except the root node:in response to receiving a response from a child node, transmitting a response to a respective grandparent node, wherein the parent node is a child node of the grandparent node.

17. The method of any one of claims 9-16, further comprising, at the root node: transmitting a query to each child node of the root node; andat a pre-determined time after transmitting the query, transmitting an exit delay discovery instruction to each child node of the root node.

18. The method of claim 17, further comprising, at each parent node except the root node:in response to receiving an exit delay discovery instruction, transmitting an exit delay discovery instruction to each child node of the parent node.

19. A method of transmitting a message in a messaging system of a real-time system for concurrent receipt by a plurality of real-time units 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; anda communication tree network comprising a plurality of nodes including the messaging unit as a root node and the plurality of real-time units as respective leaf nodes, the plurality of nodes being communicatively coupled to transmit a message from the root node to each of the leaf nodes for concurrent receipt by each of the leaf nodes, wherein:one or more of the nodes is a parent node configured to transmit the message to each child node in a corresponding cluster of child nodes, each cluster of child nodes comprising a different two or more child nodes of the plurality of nodes, the method comprising, at each of the parent nodes:staggering transmission of the message to the child nodes of the parent node according to respective communication latencies between the parent node and leaf nodes that are descendants of the parent node.

20. The method of claim 19, wherein the respective delay is determined according to a respective maximum communication latency (MCL) for the child node, the MCL being the maximum of the communication latencies between the parent node and each leaf node that is (i) the child node of the parent node, or (ii) a descendant of the parent node.

21. The method of claim 20, wherein the respective delay is based on a difference between the maximum MCL for the parent node and the respective MCL for the child node, the maximum MCL for the parent node being the maximum of the MCLs of the child nodes of the parent node.

22. One or more computer storage media storing instructions that when executed by a messaging system comprising a messaging unit, a plurality of real-time units, and a communication tree network, cause the messaging system to perform the method of any one of claims 9-21.CM

Citation Information

Patent Citations

  • Centralized control of execution of quantum program

    US20220398099A1

  • Controlling a network of data processing devices for a quantum computer

    US20240085943A1