Distributed quantum computing

A distributed quantum computing system with variable coupling networks and photonic integrated chips efficiently implements quantum error-correcting codes, addressing scaling challenges and enhancing computational capabilities.

GB2701364APending Publication Date: 2026-04-29NU QUANTUM LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
NU QUANTUM LTD
Filing Date
2025-08-29
Publication Date
2026-04-29

AI Technical Summary

Technical Problem

Scaling quantum computing systems to a large number of qubits is challenging due to manufacturing complexities and physical footprint limitations, particularly for cryogenic systems, and implementing quantum error-correcting codes like hyperbolic LDPC codes is complicated by their complex topological structure.

Method used

A distributed quantum computing system with multiple quantum computing units, networking units, entanglement units, and a control unit that implements a topology-associated error-correcting code using variable coupling networks and photonic integrated chips to entangle qubits efficiently.

Benefits of technology

This approach allows reliable implementation of quantum error-correcting codes across a distributed system, reducing complexity and physical footprint, and enhances computational capabilities by minimizing unnecessary complexity and interference.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000001_0000
    Figure 00000001_0000
  • Figure 00000002_0000
    Figure 00000002_0000
  • Figure 00000003_0000
    Figure 00000003_0000
Patent Text Reader

Abstract

A distributed quantum computing system 100, e.g. a quantum memory, comprises: quantum computing units 102 of qubits; quantum networking units 104, each coupled to qubits on the quantum computing units
Need to check novelty before this filing date? Find Prior Art

Description

Field The present disclosure relates to the field of quantum computing. In particular, the present disclosure relates to the implementation of distributed quantum computing using low-density parity-check error correction codes. Background Quantum computation is a growing field with many potential use cases in which quantum computers may exceed the performance of classical computers or perform tasks which would otherwise be practically unachievable using classical computation. Qubits are the typical information carriers of quantum computing systems; a qubit may encode information according to its quantum state. Superpositions of quantum states may coexist, and since the principles of quantum mechanics allow the manipulation of information stored in qubits in a coherent manner, operations using qubit-encoded information enjoy significant computational opportunities beyond those afforded by the binary bits of classical computing. Nevertheless, a challenge associated with manufacturing a quantum computing system is scaling the system to a sufficiently large number of qubits and so be able to perform useful simulations which are practically unachievable using classical computation. Manufacturing increasingly large quantum computing systems poses a major challenge. Fabricating a single quantum computing system requires precision to ensure the utility of the qubits and their properties. This can make manufacturing quantum computing systems time-consuming and prone to faults. When faults occur during manufacture or use of the quantum computing system, replacement of the quantum computing system may be required. Moreover, scaling the quantum computing system also increases its physical footprint. This can pose an additional challenge, particularly for quantum systems which operate at cryogenic temperatures, because cryogenic devices impose a limit on the maximum physical footprint. Distributed quantum systems may address these problems by networking units of quantum systems together. Manufacturing a number of smaller quantum computing units avoids the problems associated with scaling a single quantum computing system to larger numbers of qubits. In particular, the manufacturing process fora single quantum system for networking can be optimised and then repeated to generate a distributed quantum system of any number of qubits. Moreover, it can be easier to replace a single quantum computing unit in the network when a fault occurs. Additionally, in the case of quantum systems at cryogenic temperatures, networking quantum computing units across multiple cryogenic devices avoids the limited physical footprint. Distributed quantum computing systems may therefore scale to a larger number of qubits more easily than a single quantum computing system. An additional challenge with encoding information in the quantum states of qubits is that such states are often prone to decay or interference. As such, retaining stability within a quantum system is an ongoing challenge. Techniques known as quantum error correction codes have been developed to accommodate potential errors that may occur when qubit states degrade. One family of quantum error-error correcting codes known as quantum low-density parity-check (qLDPC) codes have been proposed. Low-density parity-check codes include high rate codes, such as hyperbolic and semi-hyperbolic quantum errorcorrecting codes. In the proposed hyperbolic codes, regular polygons (e.g., octagons) tile a hyperbolic space. This tilling creates a lattice. The lattice has periodic boundary conditions, and therefore has a complex topological structure. Physical qubits can be associated with each vertex of the polygons in the lattice, and the persistent state of the code may be stored in these qubits. Operations as part of the hyperbolic errorcorrecting code are performed on physical qubits which are connected by edges of the polygons of the lattice. However, the hyperbolic lattice and its complex topological structure present significant challenges for the implementation of hyperbolic quantum error-correcting codes in quantum computing systems. For example, in quantum computing systems in which qubits are arranged in a square lattice with interactions between adjacent qubits, implementing a good qLDPC code (or high rate code) will require operations between distant qubits of the square lattice. These operations will be prone to errors and significantly affect the performance of the error-correcting code. Some quantum error-correcting codes require operations on a number of qubits of the quantum computing system which may be prohibitive (e.g., applying quantum gates which are conditional on the quantum state of large numbers of qubits). Floquet codes have been proposed to reduce the number of qubits involved in each operation of the quantum error-correcting code. Summary According to a first aspect of the present disclosure, there is provided a distributed quantum computing system comprising: a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits; a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to couple each qubit to a fixed number of outputs; a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units; a variable coupling network comprising variable network pathways between outputs of the quantum networking units and the inputs of the entanglement units; and a control unit configured to control the plurality of the quantum networking units and the variable coupling network to entangle qubits of the quantum computing units according to a topology associated with an error correcting code. A further aspect provides a method for implementing quantum error correction within a distributed quantum computing system comprising: a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits; a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to couple each qubit to a fixed number of outputs; a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units; a variable coupling network comprising variable network pathways between outputs of the quantum networking units and the inputs of the entanglement units; and a control system, the method comprising controlling, by the control system, the plurality of the quantum networking units and the variable coupling network to entangle qubits of the quantum computing units according to a topology associated with an error correcting code. By utilising a system have a plurality of quantum networking units in this manner to couple to entanglement generators, a topology associate with an error correcting code can be implemented in a distributed quantum system reliably and effectively. Providing variable network pathways in addition to the quantum networking units may allow a wider range of computations to be undertaken, without introducing unnecessary complexity at the quantum networking units themselves. This may be useful where different elements of the system are subject to different degrees of potential interference, with multi-stage switching avoiding increased complexity in individual switches where interference risks may be relatively high. In general, the qubits may be implemented using any technique known to the skilled person. For example, the plurality of qubits may be trapped ion qubits, cold atom qubits, neutral atom qubits, photon qubits, spin qubits and / or superconducting qubits. In some implementations, the qubits may achieve transduction of photons (at for example, optical and / or telecommunications frequencies). The qubits may comprise combinations of qubit types that achieve transduction of photons. Qubits can be understood as quantum mechanical systems having at least two information bearing quantum states. The qubit may be in a superposition of multiple quantum sates simultaneously, which can provide the ability to be used in quantum computations which go beyond the limits of classical computing. Optionally, the plurality of quantum networking units comprises a plurality of photonic integrated chips configured to selectively couple each qubit to the fixed number of outputs. The use of photonic integrated chips in this manner can provide a reliable switching network. Optionally, the predefined network pathways comprise a plurality of optical fibres. Optical fibres provide a low loss environment for the transmission of the signals. Optionally, the quantum error-correcting code is a low-density parity-check quantum error-correcting code. For example, the quantum error-correcting code is a hyperbolic quantum error-correcting code or a semi-hyperbolic quantum error-correcting code. Optionally, the quantum error-correcting code is a Floquet quantum error-correcting code. Quantum error correcting codes of these types have been discussed in the literature and shown to provide good performance. Moreover, their implementation with the context of the disclosed process may reduce the number of connections between separate quantum processing units that are required in order to obtain good performance. In general, coupling between qubits in a single processing unit may be easier to implement than connections between qubits at different units, meaning that this approach can lead to greater fidelity. In some examples, the topology associated with the error correcting code comprises a plurality of tiles having connections formed therebetween, and the control unit is configured to control the plurality of the quantum networking units such that entanglement between signals from the quantum networking units is effective to implement the connections. In some examples, the topology is divided into a plurality of tiles according to a process designed to minimise a number of connections between tiles. Dividing a multidimensional topology into a plurality of tiles can provide an efficient technique to implement a quantum error correcting code across a distributed quantum system. For example, where each quantum processing unit comprises qubits provided in an array of lower dimensionality than the topology of the error-correcting code itself (e.g. qubits may be provided in a one or two-dimensional array, while the topology may have a greater number of dimensions), the tiles can be constructed with the same dimensions as the qubit arrays, with connections implemented the additional dimensions of the original topology. By implementing connections in the manner proposed, entanglement between qubits of different arrays can be efficiently and reliably encoded to manifest the overall topology. In some examples, the signals comprise photons. The photons have a wavelength in a telecommunications wavelength range. In this manner, the signal may be carried by existing telecommunications infrastructure, such as optical fibre networks. Such an approach may facilitate the implementation of distributed quantum computing. Single photons within each signal may be entangled with a qubit of a quantum computing unit. For example, a qubit within a quantum processing unit may be selected for use in facilitating a connection. A transition between quantum states for this qubit may be effective to generate a photon which is then used as the signal. Since the photon state is in quantum entanglement with the qubit state, implementing quantum entanglement between this photon and another photon from another qubit on another processing unit may be effective to entangle the quantum states of the two qubits. Optionally, processing the signals at the entanglement generator to create quantum entanglement between the signals comprises performing a Bell state measurement. A Bell state measurement is a joint quantum-mechanical measurement of two qubits that determines which of the four Bell states the two qubits are in. For example, the quantum entanglement generator may comprise a Bell-state measurement unit. In some implementations, the Bell-state measurement unit comprises: a beam-splitter; and first and second photon detectors coupled to the beam splitter. In some examples, the variable network pathways comprise an intermediate layer comprising a plurality of optical pathways coupled to outputs of the quantum processing units; and a switching layer coupled to plurality of optical pathways and configured to selectively couple the optical pathways to inputs of the entanglement units. Optionally, at least one of the optical pathways in the intermediate layer cross. By allowing crossing of the optical pathways within the intermediate layer, rather than requiring the crossing within the quantum networking units or the switching layer, the relative cross-talk between signals may be reduced, since it may be more practical to isolate pathways in the intermediate layer than in any given switching element. In some examples, the quantum networking units are configured to operate in at least a first configuration and a second configuration, and wherein the crossing of the optical pathways in the intermediate layer is such that couplings between the quantum processing units and the inputs of the switching layer are shuffled when the quantum networking units are switched between the first configuration and the second configuration. The concept of a shuffle exchange is known in graph theory, and by implementing such a shuffle between the first and second configurations, a wide range of potential connections between the overall set of qubits is facilitated without requiring further complexity in any switching element. Within the context of quantum error-correcting codes, the range of potential connections covered within a shuffle exchanged group can provide the same (or near similar) functionality as fully flexible connections across all theoretical combination. Optionally, the quantum computing system is a quantum memory. According to a further aspect of the present disclosure, there is provided a method for implementing a sequence of quantum operations at one or more quantum devices, the method carried out by a network element and comprising: receiving data comprising a plurality of measurement event sequences and a plurality of quantum operation sequences, wherein each measurement event sequence is associated with one of the quantum operation sequences; receiving a plurality of measurement outcomes, the plurality of measurement outcomes comprising measurements performed in relation to one or more of the quantum devices; determining whether the plurality of measurement outcomes corresponds to one of the measurement event sequences; in response to determining that the plurality of measurement outcomes corresponds to one of the measurement event sequences, sending, to the one or more quantum devices, the quantum operation sequence associated with determined measurement event sequence. A further aspect provides a system comprising one or more quantum devices and at least one network element, the network element being configured to: receive data comprising a plurality of measurement event sequences and a plurality of quantum operation sequences, wherein each measurement event sequence is associated with one of the quantum operation sequences; receive a plurality of measurement outcomes, the plurality of measurement outcomes comprising measurements performed in relation to one or more of the quantum devices; determine whether the plurality of measurement outcomes corresponds to one of the measurement event sequences; in response to determining that the plurality of measurement outcomes corresponds to one of the measurement event sequences, send, to the one or more quantum devices, the quantum operation sequence associated with determined measurement event sequence. Implementation of quantum circuit comprises the application a sequence of physical operations to the qubits. However, in practice it may be that errors occur during application of the quantum circuit. Quantum error correction codes can be used to mitigates these errors by first identifying them and then modifying the sequence of physical operations that will be applied to the qubits to implement the quantum circuit. However, a challenge to implementing such techniques in practice is that calculating quantum operation sequences associated with a given quantum circuit remains a complex computational task. This complexity increases as the number of qubits within the system increases, such that calculating an updated operation sequence in response to identification of an error may incur a meaningful operational cost, particularly in time. Given that qubit implementations may be unstable, delays in implementing an operational sequence may increase the number of errors that occur. According to this aspect of the disclosure, potential measurement event sequences may be pre-calculated before the quantum operation sequence begins, such that adaptations to the quantum operation sequence may be implemented immediately when error occurs. In particular, by choosing between pre-calculated quantum operation sequences when a measurement event occurs, rather than calculating changes at that point, an improvement can be achieved in quantum processing. Since delays also introduce the risk of decoherence or other degenerative effects on the quality of quantum processes, this also improves the overall fidelity of the process. In some examples, the plurality of measurement outcomes further comprises measurements performed in relation to one or more additional quantum devices, wherein the measurements performed in relation to one or more additional quantum devices are received from one or more additional network elements. In this manner, a distributed quantum computation may be managed, with the appropriate sequence of quantum operations being selected according to the behaviour of the distributed system For example, the network device may comprise a snoop filter for selectively receiving measurements from one or more additional network elements. The snoop filter may be effective to select from external signals that information which is pertinent to the quantum operation sequence at the first quantum device. Optionally, the method further comprises, sending, by the network device, measurements performed in relation to one or more of the quantum devices to one or more additional network elements associated with one or more additional quantum devices. Optionally, the method further comprises: determining whether the received plurality of measurement outcomes is incompatible with any of the measurement event sequences; and removing data comprising measurement event sequences that are incompatible with the plurality of measurement outcomes and data comprising quantum operation sequences associated with such measurement event sequences. Accordingly, data may be removed when no longer physically relevant to the system, reducing the overheads on memory and other computational requirements. For example, by reducing the extent of stored data, future searches for the relevant measurement event sequence may be performed with less computational overhead. In some examples, the method further comprises receiving update data comprising updates to one or more of the measurement event sequences and one or more of the plurality of quantum operation sequences. Accordingly, updates can be provided which allow continuous operation of a process even where all eventualities were not originally provided for. Optionally, in response to determining that the plurality of measurement outcomes does not correspond to one of the measurement sequences, the method may comprise sending a request for update data, the request comprising the plurality of measurement outcomes. In this manner, error modes can be avoided even at the expense of some delay while an update is received. Optionally, the method further comprises receiving a clock signal, wherein determining whether the plurality of measurement outcomes corresponds to one of the plurality of measurement event sequences is based on the clock signal. The use of a clock signal may be effective to synchronise various elements of a complex system by ensuring that timing of measurements performed in relation to the one or more quantum devices is understood. In some examples, one or more of the measurements performed by the quantum device are configured to detect errors as part of a quantum error correcting code. Optionally, the quantum error-correcting code is a low-density parity-check quantum error-correcting code. For example, the quantum error-correcting code is a hyperbolic quantum error-correcting code or a semi-hyperbolic quantum error-correcting code. Optionally, the quantum error-correcting code is a Floquet quantum error-correcting code. Quantum error correcting codes of these types have been discussed in the literature and shown to provide good performance. Moreover, their implementation with the context of the disclosed process may reduce the number of connections between separate quantum processing units that are required in order to obtain good performance. In general, coupling between qubits in a single processing unit may be easier to implement than connections between qubits at different units, meaning that this approach can lead to greater fidelity. Optionally, each of the plurality of measurement events identify a detectable error of the quantum error correcting code, and wherein the associated sequence of quantum operations are configured to correct the detectable error. In some examples, the quantum device is a quantum processing unit comprising a plurality of qubits. For example, the quantum device processing unit may comprise qubits in an array, such as a one- or two-dimensional array. In general, the qubits may be implemented using any technique known to the skilled person. For example, the plurality of qubits may be trapped ion qubits, cold atom qubits, neutral atom qubits, photon qubits, spin qubits and / or superconducting qubits. In some implementations, the qubits may achieve transduction of photons (at for example, optical and / or telecommunications frequencies). The qubits may comprise combinations of qubit types that achieve transduction of photons. Qubits can be understood as quantum mechanical systems having at least two information bearing quantum states. The qubit may be in a superposition of multiple quantum sates simultaneously, which can provide the ability to be used in quantum computations which go beyond the limits of classical computing. In some examples, a topology associated with the error correcting code comprises a plurality of tiles having connections formed therebetween, and entanglement between signals from different quantum devices is used to implement the connections. In some examples, the topology is divided into a plurality of tiles according to a process designed to minimise a number of connections between tiles. Dividing a topology into a plurality of tiles can provide an efficient technique to implement a quantum error correcting code across a distributed quantum system. For example, where each quantum processing unit comprises qubits provided in an array of lower dimensionality than the topology of the error-correcting code itself (e.g. qubits may be provided in a one or two-dimensional array, while the topology may have a greater number of dimensions), the tiles can be constructed with the same dimensions as the qubit arrays, with connections implemented the additional dimensions of the original topology. By implementing connections in the manner proposed, entanglement between qubits of different arrays can be efficiently and reliably encoded to manifest the overall topology. Optionally, entanglement between the signals is performed using a Bell state measurement. A Bell state measurement is a joint quantum-mechanical measurement of two qubits that determines which of the four Bell states the two qubits are in. For example, a quantum entanglement generator may comprise a Bell-state measurement unit. In some implementations, the Bell-state measurement unit comprises: a beamsplitter; and first and second photon detectors coupled to the beam splitter. According to a further aspect of the disclosure, there is provided a method for implementing quantum error correction in a quantum computing system, the quantum computing system comprising one or more physically distinct quantum processing units, the method comprising: selecting an error correcting code having a defined topology; dividing the topology into a plurality of tiles, each having one or more connections with one or more other tiles, wherein dividing the topology is designed to minimise connections with other tiles; associating each tile with one or more of the quantum processing units; implementing the connections between the tiles by entangling the quantum states of qubits in each quantum processing unit; and applying the quantum error correcting code during a quantum operation. A further aspect provides a quantum computing system comprising one or more physically distinct quantum processing units, wherein each quantum processing unit comprises a plurality of qubits; one or more entanglement generators for entangling the quantum states of pairs of selected qubits in different quantum processing units; one or more switches configured to define communications paths between the one or more of the qubits and each entanglement generator; and a control system, wherein the control system is configured to: select an error correcting code having a multidimensional topology; divide the topology into a plurality of tiles, each having one or more connections with one or more other tiles, wherein dividing the topology is designed to minimise connections with other tiles; associate each tile with one or more of the quantum processing units; implement the connections between the tiles by entangling the quantum states of pairs of selected qubits in different quantum processing units. Dividing a multidimensional topology into a plurality of tiles can provide an efficient technique to implement a quantum error correcting code across a distributed quantum system. For example, where each quantum processing unit comprises qubits provided in an array of lower dimensionality than the topology of the error-correcting code itself (e.g. qubits may be provided in a one or two-dimensional array, while the topology may have a greater number of dimensions), the tiles can be constructed with the same dimensions as the qubit arrays, with connections implemented the additional dimensions of the original topology. By minimising the connections between tiles, connections which are implemented using entanglement between qubits on separate processing units may be reduced, improving the reliability and fidelity of the method. In some examples, associating each tile with the one or more of the qubit arrays is based on minimising a number of connections between quantum processing units. Optionally, entangling the quantum states of a pair of selected qubits comprises: controlling one or more switches to define a communications path between the selected qubits and an entanglement generator, receiving signals from the selected qubits at the entanglement generator, and processing the signals at the entanglement generator to create quantum entanglement between the signals and the method further comprises: applying the quantum error correcting code during a quantum operation. By implementing connections in the manner proposed, entanglement between qubits of different quantum processing units can be efficiently and reliably encoded to manifest the overall topology. Optionally, the quantum error-correcting code is a low-density parity-check quantum error-correcting code. For example, the quantum error-correcting code is a hyperbolic quantum error-correcting code or a semi-hyperbolic quantum error-correcting code. Optionally, the quantum error-correcting code is a Floquet quantum error-correcting code. Quantum error correcting codes of these types have been discussed in the literature and shown to provide good performance. Moreover, their implementation with the context of the disclosed process may reduce the number of connections between separate quantum processing units that are required in order to obtain good performance. In general, coupling between qubits in a single processing unit may be easier to implement than connections between qubits at different units, meaning that this approach can lead to greater fidelity. In general, the qubits may be implemented using any technique known to the skilled person. For example, the plurality of qubits may be trapped ion qubits, cold atom qubits, neutral atom qubits, photon qubits, spin qubits and / or superconducting qubits. In some implementations, the qubits may achieve transduction of photons (at for example, optical and / or telecommunications frequencies). The qubits may comprise combinations of qubit types that achieve transduction of photons. Qubits can be understood as quantum mechanical systems having at least two information bearing quantum states. The qubit may be in a superposition of multiple quantum states simultaneously, which can provide the ability to be used in quantum computations which go beyond the limits of classical computing. In some examples, the signals are photons generated by selected qubits. For example, a qubit within a quantum processing unit may be selected for use in facilitating a connection. A transition between quantum states for this qubit may be effective to generate a photon which is then used as the signal. Since the photon state is in quantum entanglement with the qubit state, implementing quantum entanglement between this photon and another photon from another qubit on another processing unit may be effective to entangle the quantum states of the two qubits. Optionally, the photons have a wavelength in a telecommunications wavelength range. In this manner, the signal may be carried by existing telecommunications infrastructure, such as optical fibre networks. Such an approach may facilitate the implementation of distributed quantum computing. The switches may be optical switches. In this manner, the switches may be effective to route optical signals (e.g. signals comprising one or more photons) as desired. The one or more switches may be one-to-many switches configured to receive signals from the selected qubits and selectively route the signals to a selected quantum entanglement generator. The switches may be implemented as photonic integrated chips configured to selectively couple each qubit to a fixed number of outputs. Optionally, each quantum processing unit comprises a plurality of computational qubits and a plurality of qubit-photon interfaces, and wherein signals from the selected qubits are generated using the qubit-photon interfaces. The qubit-photon interfaces may themselves comprise one or more additional qubits which are coupled to the computational qubits. In this way, a subset of elements may be used for forming connections via entanglement, and a number of additional qubits in the unit may be used directly for quantum computations and / or as part of quantum error correction. The computational qubits may be coupled to the qubit-photon interfaces such that a quantum communication link exists between computational qubits on different quantum processing units when entanglement is implemented to form the connections between tiles. The qubit-photon interfaces may comprise an optical cavity; for example, qubits may be disposed within an optical cavity. This approach may facilitate the generation of photons having quantum states associated with the state of the qubit. In some examples, the one or more switches are one-to-many switches configured to receive signals from the selected qubits and selectively route the signals to a selected quantum entanglement generator. Optionally, processing the signals at the entanglement generator to create quantum entanglement between the signals comprises performing a Bell state measurement. A Bell state measurement is a joint quantum-mechanical measurement of two qubits that determines which of the four Bell states the two qubits are in. For example, the quantum entanglement generator may comprise a Bell-state measurement unit. In some implementations, the Bell-state measurement unit comprises: a beam-splitter; and first and second photon detectors coupled to the beam splitter. In some examples, each tile comprises a plurality of nodes, and associating each tile with one or more of the quantum processing units comprises associating nodes of each tile with one or more qubits of the quantum processing units. As such, one or more qubits may be used to implement nodes within the topology of the errorcorrecting code. In some examples, each tile is associated with the qubits of a single quantum processing unit. The plurality of qubits of each quantum processing unit may be connected by a plurality of couplers. This coupling may be effective to implement connections within each tile of the topology. In some examples, associating each tile with the one or more of the quantum processing units further comprises minimising a number of crossing of the couplers within a quantum processing unit. In this manner, the risk of cross-talk between coupler affecting the implementation of the quantum error correcting code may be reduced. Optionally, the quantum computing system is a quantum memory. According to a further aspect of the present disclosure, there is provided a method for implementing quantum error correction in a quantum computing system, the quantum computing system comprising one or more physically distinct quantum processing units, wherein each quantum processing unit comprises a plurality of qubits, the method comprising: selecting an error correcting code having a multidimensional topology; dividing the topology into a plurality of tiles, each having one or more connections with one or more other tiles; associating each tile with one or more of the quantum processing units; implementing the connections between the tiles by entangling the quantum states of pairs of selected qubits in different quantum processing units, wherein entangling the quantum states of a pair of selected qubits comprises: controlling one or more switches to define a communications path between the selected qubits and an entanglement generator, receiving signals from the selected qubits at the entanglement generator, and processing the signals at the entanglement generator to create quantum entanglement between the signals and the method further comprises: applying the quantum error correcting code during a quantum operation. A further aspect provides a quantum computing system comprising one or more physically distinct quantum processing units, wherein each quantum processing unit comprises a plurality of qubits; one or more entanglement generators for entangling the quantum states of pairs of selected qubits in different quantum processing units; one or more switches configured to define communications paths between the one or more of the qubits and each entanglement generator; and a control system, wherein the control system is configured to: select an error correcting code having a multidimensional topology; divide the topology into a plurality of tiles, each having one or more connections with one or more other tiles; associate each tile with one or more of the quantum processing units; implement the connections between the tiles by entangling the quantum states of pairs of selected qubits in different quantum processing units, wherein entangling the quantum states of a pair of selected qubits comprises: controlling one or more switches to define a communications path between the selected qubits and an entanglement generator, receiving signals from the selected qubits at the entanglement generator, and processing the signals at the entanglement generator to create quantum entanglement between the signals and the control system is further configured to apply the quantum error correcting code during a quantum operation. Dividing a multidimensional topology into a plurality of tiles can provide an efficient technique to implement a quantum error correcting code across a distributed quantum system. For example, where each quantum processing unit comprises qubits provided in an array of lower dimensionality than the topology of the error-correcting code itself (e.g. qubits may be provided in a one or two-dimensional array, while the topology may have a greater number of dimensions), the tiles can be constructed with the same dimensions as the qubit arrays, with connections implemented the additional dimensions of the original topology. By implementing connections in the manner proposed, entanglement between qubits of different arrays can be efficiently and reliably encoded to manifest the overall topology. Optionally, the quantum error-correcting code is a low-density parity-check quantum error-correcting code. For example, the quantum error-correcting code is a hyperbolic quantum error-correcting code or a semi-hyperbolic quantum error-correcting code. Optionally, the quantum error-correcting code is a Floquet quantum error-correcting code. Quantum error correcting codes of these types have been discussed in the literature and shown to provide good performance. Moreover, their implementation with the context of the disclosed process may reduce the number of connections between separate quantum processing units that are required in order to obtain good performance. In general, coupling between qubits in a single processing unit may be easier to implement than connections between qubits at different units, meaning that this approach can lead to greater fidelity. Optionally, dividing the topology into a plurality of tiles is based on minimising a number of connections between tiles. In this manner, connections which are implemented using entanglement between qubits on separate processing units may be reduced, improving the reliability and fidelity of the method. In some examples, associating each tile with the one or more of the quantum processing units is based on minimising a number of connections between quantum processing units. In general, the qubits may be implemented using any technique known to the skilled person. For example, the plurality of qubits may be trapped ion qubits, cold atom qubits, neutral atom qubits, photon qubits, spin qubits and / or superconducting qubits. In some implementations, the qubits may achieve transduction of photons (at for example, optical and / or telecommunications frequencies). The qubits may comprise combinations of qubit types that achieve transduction of photons. Qubits can be understood as quantum mechanical systems having at least two information bearing quantum states. The qubit may be in a superposition of multiple quantum sates simultaneously, which can provide the ability to be used in quantum computations which go beyond the limits of classical computing. In some examples, the signals are photons generated by selected qubits. For example, a qubit within a quantum processing unit may be selected for use in facilitating a connection. A transition between quantum states for this qubit may be effective to generate a photon which is then used as the signal. Since the photon state is in quantum entanglement with the qubit state, implementing quantum entanglement between this photon and another photon from another qubit on another processing unit may be effective to entangle the quantum states of the two qubits. Optionally, the photons have a wavelength in a telecommunications wavelength range. In this manner, the signal may be carried by existing telecommunications infrastructure, such as optical fibre networks. Such an approach may facilitate the implementation of distributed quantum computing. The switches may be optical switches. In this manner, the switches may be effective to route optical signals (e.g. signals comprising one or more photons) as desired. The one or more switches may be one-to-many switches configured to receive signals from the selected qubits and selectively route the signals to a selected quantum entanglement generator. The switches may be implemented as photonic integrated chips configured to selectively couple each qubit to a fixed number of outputs. Optionally, each quantum processing unit comprises a plurality of computational qubits and a plurality of qubit-photon interfaces, and wherein signals from the selected qubits are generated using the qubit-photon interfaces. The qubit-photon interfaces may themselves comprise one or more additional qubits which are coupled to the computational qubits. In this way, a subset of elements may be used for forming connections via entanglement, and a number of additional qubits in the unit may be used directly for quantum computations and / or as part of quantum error correction. The computational qubits may be coupled to the qubit-photon interfaces such that a quantum communication link exists between computational qubits on different quantum processing units when entanglement is implemented to form the connections between tiles. The qubit-photon interfaces may comprise an optical cavity; for example, qubits may be disposed within an optical cavity. This approach may facilitate the generation of photons having quantum states associated with the state of the qubit. In some examples, the one or more switches are one-to-many switches configured to receive signals from the selected qubits and selectively route the signals to a selected quantum entanglement generator. Optionally, processing the signals at the entanglement generator to create quantum entanglement between the signals comprises performing a Bell state measurement. A Bell state measurement is a joint quantum-mechanical measurement of two qubits that determines which of the four Bell states the two qubits are in. For example, the quantum entanglement generator may comprise a Bell-state measurement unit. In some implementations, the Bell-state measurement unit comprises: a beam-splitter; and first and second photon detectors coupled to the beam splitter. In some examples, each tile comprises a plurality of nodes, and associating each tile with one or more of the quantum processing units comprises associating nodes of each tile with one or more qubits of the quantum processing units. As such, one or more qubits may be used to implement nodes within the topology of the errorcorrecting code. In some examples, each tile is associated with the qubits of a single quantum processing unit. The plurality of qubits of each quantum processing unit may be connected by a plurality of couplers. This coupling may be effective to implement connections within each tile of the topology. In some examples, associating each tile with the one or more of the quantum processing units further comprises minimising a number of crossing of the couplers within a quantum processing unit. In this manner, the risk of cross-talk between coupler affecting the implementation of the quantum error correcting code may be reduced. Optionally, the quantum computing system is a quantum memory. According to a further aspect, there is provided a distributed quantum computing system comprising: a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits; a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to selectively couple each qubit to a fixed number of outputs; a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units and configured to entangle the received signals; a fixed coupling network comprising predefined network pathways between outputs of the quantum networking units and the inputs of the entanglement units; and a control unit configured to control the plurality of the quantum networking units to entangle qubits of the quantum computing units according to a topology associated with an error correcting code. A further aspect provides a method for implementing quantum error correction within a distributed quantum computing system comprising: a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits; a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to selectively couple each qubit to a fixed number of outputs; a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units and configured to entangle the received signals; a fixed coupling network comprising predefined network pathways between outputs of the quantum networking units and the inputs of the entanglement units; and a control system, the method comprising controlling, by the control system, the plurality of the quantum networking units to entangle qubits of the quantum computing units according to a topology associated with an error correcting code. By utilising a system that has a plurality of quantum networking units in this manner to couple to entanglement generators, a topology associate with an error correcting code can be implemented in a distributed quantum system reliably and effectively. The quantum networking units may provide sufficient freedom to implement an appropriate topology while the fixed coupling network avoids losses associated with further layers of switching. In general, the qubits may be implemented using any technique known to the skilled person. For example, the plurality of qubits may be trapped ion qubits, cold atom qubits, neutral atom qubits, photon qubits, spin qubits and / or superconducting qubits. In some implementations, the qubits may achieve transduction of photons (at for example, optical and / or telecommunications frequencies). The qubits may comprise combinations of qubit types that achieve transduction of photons. Qubits can be understood as quantum mechanical systems having at least two information bearing quantum states. The qubit may be in a superposition of multiple quantum sates simultaneously, which can provide the ability to be used in quantum computations which go beyond the limits of classical computing. Optionally, the plurality of quantum networking units comprises a plurality of photonic integrated chips configured to selectively couple each qubit to the fixed number of outputs. The use of photonic integrated chips in this manner can provide a reliable switching network. Optionally, the predefined network pathways comprise a plurality of optical fibres. Optical fibres provide a low loss environment for the transmission of the signals. Optionally, the quantum error-correcting code is a low-density parity-check quantum error-correcting code. For example, the quantum error-correcting code is a hyperbolic quantum error-correcting code or a semi-hyperbolic quantum error-correcting code. Optionally, the quantum error-correcting code is a Floquet quantum error-correcting code. Quantum error correcting codes of these types have been discussed in the literature and shown to provide good performance. Moreover, their implementation with the context of the disclosed process may reduce the number of connections between separate quantum processing units that are required in order to obtain good performance. In general, coupling between qubits in a single processing unit may be easier to implement than connections between qubits at different units, meaning that this approach can lead to greater fidelity. In some examples, the topology associated with the error correcting code comprises a plurality of tiles having connections formed therebetween, and the control unit is configured to control the plurality of the quantum networking units such that entanglement between signals from the quantum networking units is effective to implement the connections. In some examples, the topology is divided into a plurality of tiles according to a process designed to minimise a number of connections between tiles. Dividing a multidimensional topology into a plurality of tiles can provide an efficient technique to implement a quantum error correcting code across a distributed quantum system. For example, where each quantum processing unit comprises qubits provided in an array of lower dimensionality than the topology of the error-correcting code itself (e.g. qubits may be provided in a one or two-dimensional array, while the topology may have a greater number of dimensions), the tiles can be constructed with the same dimensions as the qubit arrays, with connections implemented the additional dimensions of the original topology. By implementing connections in the manner proposed, entanglement between qubits of different arrays can be efficiently and reliably encoded to manifest the overall topology. In some examples, the signals comprise photons. The photons have a wavelength in a telecommunications wavelength range. In this manner, the signal may be carried by existing telecommunications infrastructure, such as optical fibre networks. Such an approach may facilitate the implementation of distributed quantum computing. Single photons within each signal may be entangled with a qubit of a quantum computing unit. For example, a qubit within a quantum processing unit may be selected for use in facilitating a connection. A transition between quantum states for this qubit may be effective to generate a photon which is then used as the signal. Since the photon state is in quantum entanglement with the qubit state, implementing quantum entanglement between this photon and another photon from another qubit on another processing unit may be effective to entangle the quantum states of the two qubits. Optionally, processing the signals at the entanglement generator to create quantum entanglement between the signals comprises performing a Bell state measurement. A Bell state measurement is a joint quantum-mechanical measurement of two qubits that determines which of the four Bell states the two qubits are in. For example, the quantum entanglement generator may comprise a Bell-state measurement unit. In some implementations, the Bell-state measurement unit comprises: a beam-splitter; and first and second photon detectors coupled to the beam splitter. Optionally, the quantum computing system is a quantum memory. According to a further aspect, there is provided a system for coupling a plurality of optical sources to one or more output pairs, the system comprising: a first switching layer for receiving optical signals from the optical sources and configured to selectively couple the optical sources to a plurality of intermediate outputs, wherein the selective coupling comprises at least a first configuration and a second configuration; an intermediate layer comprising a plurality of optical pathways coupled to the intermediate outputs; and a second switching layer coupled to plurality of optical pathways at a plurality of inputs, the second switching layer configured to selective couple the plurality of inputs to the one or more output pairs, wherein the first switching layer and the intermediate layer are configured such that couplings between the optical sources and the inputs of the second switching layer are shuffled when the first switching layer is switched between the first configuration and the second configuration. There is also provided a method for coupling a plurality of optical sources to one or more output pairs within a system, the system comprising: a first switching layer for receiving optical signals from the optical sources and configured to selectively couple the optical sources to a plurality of intermediate outputs, wherein the selective coupling comprises at least a first configuration and a second configuration; an intermediate layer comprising a plurality of optical pathways coupled to the intermediate outputs; and a second switching layer coupled to plurality of optical pathways at a plurality of inputs, the second switching layer configured to selective couple the plurality of inputs to the one or more output pairs, wherein the first switching layer and the intermediate layer are configured such that couplings between the optical sources and the inputs of the second switching layer are shuffled when the first switching layer is switched between the first configuration and the second configuration, the method comprising switching the first switching layer between the first configuration and the second configuration. In some quantum error correction codes, it can be desirable to perform quantum entanglement of two qubit states. Moreover, various combinations of entangled qubits states may be desirable for the application of effective quantum error correction. However, as the number of qubits within the system increases, the number of potential combinations of pairs of qubits which it may be useful to manipulate extends further. This creates a challenge for any switching system used to form the desired connections, particularly since it may be desirable for multiple operations to occur simultaneously or in quick succession. For example, in an optical system where quantum entanglement may require manipulation of photons from each qubit, fast switching systems may suffer from loss of performance where the paths of photons from different qubits overlap. It has been found that shuffle-exchanged networks provide a significant amount / all of the necessary degrees of freedom to implement some error-correcting codes. As such, by providing a switching arrangement according to this aspect, effective implementation of quantum error-correcting codes can be implemented without requiring optical paths to cross within the switching layers. Instead, any crossing can take place within an intermediate layer in which such crossing is less susceptible to interference or other deleterious effects. Optionally, couplings between the optical sources and the inputs of the second switching layer cross in the intermediate layer when the first switching layer is switched between the first configuration and the second configuration. In some examples, the second switching layer comprises one or more planar switches. Optionally, the plurality of optical pathways comprise optical fibres. The resulting cross-talk between optical fibres having paths that cross may be substantially lower than may be the case where paths cross within any switching element, meaning that implementing the shuffle in a fibre layer may substantially reduce deleterious effects. The intermediate can effectively act as two optical fibre buses, where the first switching layer may effectively be coupled to either bus according to its configuration. For example, the intermediate layer may comprise a first optical fibre bus and a second optical fibre bus, and wherein the optical sources are coupled to the first optical fibre bus when the first switching layer is in the first configuration and the to the second optical fibre bus when the first switching later is in the second configuration. In some examples, the first switching layer is configured to operate at a slower speed than the second switching layer. This mode of operation facilitates selection between shuffle arrangements at a first speed, and then selection within them at a higher speed. This may reflect that a number of different connected states may be employed for each shuffle configuration. In some examples, the system further comprises one or more quantum processing units, each quantum processing unit comprising a plurality of qubits, wherein the optical sources comprise one or more of the qubits. In general, the qubits may be implemented using any technique known to the skilled person. For example, the plurality of qubits may be superconducting qubits, trapped ion qubits, cold atom qubits, neutral atom qubits, photon qubits, and / or spin qubits. In general, the qubits of the quantum processing units are physical qubits. Qubits can be understood as quantum mechanical systems having at least two information bearing quantum states. The qubit may be in a superposition of multiple quantum states simultaneously, which can provide the ability to be used in quantum computations which go beyond the limits of classical computing. In some examples, the signals are photons generated by selected qubits. For example, a qubit within a quantum processing unit may be selected for use in facilitating a connection. A transition between quantum states for this qubit may be effective to generate a photon which is then used as the signal. Since the photon state is in quantum entanglement with the qubit state, implementing quantum entanglement between this photon and another photon from another qubit on another processing unit may be effective to entangle the quantum states of the two qubits. Optionally, the photons have a wavelength in a telecommunications wavelength range. In this manner, the signal may be carried by existing telecommunications infrastructure, such as optical fibre networks. Such an approach may facilitate the implementation of distributed quantum computing. In some examples, the first switching layer is implemented as a plurality of quantum networking units, each receiving optical signals from one or more of the quantum processing units. Optionally, the system further comprises one or more quantum entanglement generators, wherein each of the output pairs is coupled to one or more of the quantum entanglement generators. Optionally, entanglement between the signals is performed using a Bell state measurement. A Bell state measurement is a joint quantum-mechanical measurement of two qubits that determines which of the four Bell states the two qubits are in. For example, a quantum entanglement generator may comprise a Bell-state measurement unit. In some implementations, the Bell-state measurement unit comprises: a beamsplitter; and first and second photon detectors coupled to the beam splitter. Optionally, the quantum computing system is a quantum memory. According to a further aspect, there is provided a method for designing a quantum computing system, comprising: receiving one or more parameters defining a desired mode of operation of the quantum computing system; identifying an error correcting code suitable for implementing the desired mode of operation; deriving a topology associated with the error correcting code; dividing the topology into a set of tiles, each tile comprising a subsection of the topology and being connected to one or more further tiles by one or more connections; and identifying properties of one or more quantum processing units configured to implement each tile, each quantum processing unit comprising a plurality of qubits; and identifying required network pathways to implement connections between tiles by entanglement of signals generated by qubits of each tile. By understanding the topology of a quantum error correcting code when generating properties of quantum processing units and network pathways, a distributed quantum computer system may be designed which efficiently implements the error-correcting code. In particular, dividing the topology of the error-correcting code into tiles, and associating these with the quantum processing units can allow connections between tiles to be implemented using quantum entanglement. Properties of quantum processing unit may comprise, for example, a number of qubits thereon, and / or a number of outputs provided for carting signals from the quantum processing unit. Properties of the network pathways may comprise, for example, a number of pathways and or switching capabilities between pathways. Optionally, the quantum error-correcting code is a low-density parity-check quantum error-correcting code. For example, the quantum error-correcting code is a hyperbolic quantum error-correcting code or a semi-hyperbolic quantum error-correcting code. Optionally, the quantum error-correcting code is a Floquet quantum error-correcting code. Quantum error correcting codes of these types have been discussed in the literature and shown to provide good performance. Moreover, their implementation with the context of the disclosed process may reduce the number of connections between separate quantum processing units that are required in order to obtain good performance. In general, coupling between qubits in a single processing unit may be easier to implement than connections between qubits at different units, meaning that this approach can lead to greater fidelity. The method may further comprise constructing a distributed quantum system according to the identified properties of the quantum processing units and the required network pathways. In general, the qubits may be implemented using any technique known to the skilled person. For example, the plurality of qubits may be trapped ion qubits, cold atom qubits, neutral atom qubits, photon qubits, spin qubits and / or superconducting qubits. In some implementations, the qubits may achieve transduction of photons (at for example, optical and / or telecommunications frequencies). The qubits may comprise combinations of qubit types that achieve transduction of photons. Qubits can be understood as quantum mechanical systems having at least two information bearing quantum states. The qubit may be in a superposition of multiple quantum sates simultaneously, which can provide the ability to be used in quantum computations which go beyond the limits of classical computing. In some examples, the signals are photons generated by selected qubits. For example, a qubit within a quantum processing unit may be selected for use in facilitating a connection. A transition between quantum states for this qubit may be effective to generate a photon which is then used as the signal. Since the photon state is in quantum entanglement with the qubit state, implementing quantum entanglement between this photon and another photon from another qubit on another processing unit may be effective to entangle the quantum states of the two qubits. Optionally, each quantum processing unit comprises a plurality of computational qubits and a plurality of qubit-photon interfaces, and wherein signals from the selected qubits are generated using the qubit-photon interfaces. The qubit-photon interfaces may themselves comprise one or more additional qubits which are coupled to the computational qubits. In this way, a subset of elements may be used for forming connections via entanglement, and a number of additional qubits in the unit may be used directly for quantum computations and / or as part of quantum error correction. The computational qubits may be coupled to the qubit-photon interfaces such that a quantum communication link exists between computational qubits on different quantum processing units when entanglement is implemented to form the connections between tiles. The qubit-photon interfaces may comprise an optical cavity; for example, qubits may be disposed within an optical cavity. This approach may facilitate the generation of photons having quantum states associated with the state of the qubit. Optionally, the photons have a wavelength in a telecommunications wavelength range. In this manner, the signal may be carried by existing telecommunications infrastructure, such as optical fibre networks. Such an approach may facilitate the implementation of distributed quantum computing. Optionally, the method may comprising identifying properties of one or more quantum entanglement generators to implement the entanglement of signals. Optionally, entanglement between the signals is performed using a Bell state measurement. A Bell state measurement is a joint quantum-mechanical measurement of two qubits that determines which of the four Bell states the two qubits are in. For example, a quantum entanglement generator may comprise a Bell-state measurement unit. In some implementations, the Bell-state measurement unit comprises: a beamsplitter; and first and second photon detectors coupled to the beam splitter. The network pathways may comprise one or more switches which can selectively define a communications path between the selected qubits and an entanglement generator. One or more of the switches may be implemented in quantum networking units. The one or more switches may be one-to-many switches configured to receive signals from the selected qubits and selectively route the signals to a selected quantum entanglement generator. In some examples, each tile comprises a plurality of nodes, and associating each tile with one or more of the quantum processing units comprises associating nodes of each tile with one or more qubits of the quantum processing units. As such, one or more qubits may be used to implement nodes within the topology of the errorcorrecting code. In some examples, each tile is associated with the qubits of a single quantum processing unit. In some examples, the topology is divided into a plurality of tiles according to a process designed to minimise a number of connections between tiles. In some examples, the required network pathways comprise one or more fixed network pathways. Alternatively or additionally, the network pathways may comprise one or more variable network pathways. In some examples, the variable network pathways comprise an intermediate layer comprising a plurality of optical pathways coupled to outputs of the quantum processing units; and a switching layer coupled to plurality of optical pathways and configured to selectively couple the optical pathways to inputs of the entanglement units. Optionally, at least one of the optical pathways in the intermediate layer cross. By allowing crossing of the optical pathways within the intermediate layer, rather than requiring the crossing within the quantum networking units or the switching layer, the relative cross-talk between signals may be reduced, since it may be more practical to isolate pathways in the intermediate layer than in any given switching element. Optionally, the quantum computing system is a quantum memory. The present disclosure also provides a method of manufacturing a quantum computing system, wherein the method comprises designing a quantum computing system according to the method of the preceding aspect, and manufacturing a quantum computing system the required network pathways and quantum processing units with the identified properties. According to a further aspect, there is provided a method for implementing quantum error correction in a quantum memory, the quantum memory comprising one or more physically distinct quantum processing units, the method comprising: selecting an error correcting code having a defined topology; dividing the topology into a plurality of tiles, each having one or more connections with one or more other tiles, wherein dividing the topology is designed to minimise connections with other tiles; associating each tile with one or more of the quantum processing units; implementing the connections between the tiles by entangling the quantum states of qubits in each quantum processing unit; and applying the quantum error correcting code during a quantum operation. A further aspect provides a quantum memory comprising one or more physically distinct quantum processing units, wherein each quantum processing unit comprises a plurality of qubits; one or more entanglement generators for entangling the quantum states of pairs of selected qubits in different quantum processing units; one or more switches configured to define communications paths between the one or more of the qubits and each entanglement generator; and a control system, wherein the control system is configured to: select an error correcting code having a multidimensional topology; divide the topology into a plurality of tiles, each having one or more connections with one or more other tiles, wherein dividing the topology is designed to minimise connections with other tiles; associate each tile with one or more of the quantum processing units; implement the connections between the tiles by entangling the quantum states of pairs of selected qubits in different quantum processing units. According to a further aspect of the present disclosure, there is provided a method for implementing quantum error correction in a quantum memory, the quantum memory comprising one or more physically distinct quantum processing units, wherein each quantum processing unit comprises a plurality of qubits, the method comprising: selecting an error correcting code having a multidimensional topology; dividing the topology into a plurality of tiles, each having one or more connections with one or more other tiles; associating each tile with one or more of the quantum processing units; implementing the connections between the tiles by entangling the quantum states of pairs of selected qubits in different quantum processing units, wherein entangling the quantum states of a pair of selected qubits comprises: controlling one or more switches to define a communications path between the selected qubits and an entanglement generator, receiving signals from the selected qubits at the entanglement generator, and processing the signals at the entanglement generator to create quantum entanglement between the signals and the method further comprises: applying the quantum error correcting code during a quantum operation. A further aspect provides a quantum memory comprising one or more physically distinct quantum processing units, wherein each quantum processing unit comprises a plurality of qubits; one or more entanglement generators for entangling the quantum states of pairs of selected qubits in different quantum processing units; one or more switches configured to define communications paths between the one or more of the qubits and each entanglement generator; and a control system, wherein the control system is configured to: select an error correcting code having a multidimensional topology; divide the topology into a plurality of tiles, each having one or more connections with one or more other tiles; associate each tile with one or more of the quantum processing units; implement the connections between the tiles by entangling the quantum states of pairs of selected qubits in different quantum processing units, wherein entangling the quantum states of a pair of selected qubits comprises: controlling one or more switches to define a communications path between the selected qubits and an entanglement generator, receiving signals from the selected qubits at the entanglement generator, and processing the signals at the entanglement generator to create quantum entanglement between the signals and the control system is further configured to apply the quantum error correcting code during a quantum operation. According to a further aspect, there is provided a distributed quantum memory comprising: a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits; a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to selectively couple each qubit to a fixed number of outputs; a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units and configured to entangle the received signals; a fixed coupling network comprising predefined network pathways between outputs of the quantum networking units and the inputs of the entanglement units; and a control unit configured to control the plurality of the quantum networking units to entangle qubits of the quantum computing units according to a topology associated with an error correcting code. A further aspect provides a method for implementing quantum error correction within a distributed quantum memory comprising: a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits; a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to selectively couple each qubit to a fixed number of outputs; a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units and configured to entangle the received signals; a fixed coupling network comprising predefined network pathways between outputs of the quantum networking units and the inputs of the entanglement units; and a control system, the method comprising controlling, by the control system, the plurality of the quantum networking units to entangle qubits of the quantum computing units according to a topology associated with an error correcting code. According to a further aspect of the present disclosure, there is provided a distributed quantum memory comprising: a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits; a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to couple each qubit to a fixed number of outputs; a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units; a variable coupling network comprising variable network pathways between outputs of the quantum networking units and the inputs of the entanglement units; and a control unit configured to control the plurality of the quantum networking units and the variable coupling network to entangle qubits of the quantum computing units according to a topology associated with an error correcting code. A further aspect provides a method for implementing quantum error correction within a distributed quantum memory comprising: a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits; a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to couple each qubit to a fixed number of outputs; a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units; a variable coupling network comprising variable network pathways between outputs of the quantum networking units and the inputs of the entanglement units; and a control system, the method comprising controlling, by the control system, the plurality of the quantum networking units and the variable coupling network to entangle qubits of the quantum computing units according to a topology associated with an error correcting code. According to a further aspect, there is provided a system for coupling a plurality of optical sources to one or more output pairs, the system comprising: a first switching layer for receiving optical signals from the optical sources and configured to selectively couple the optical sources to a plurality of intermediate outputs, wherein the selective coupling comprises at least a first configuration and a second configuration; an intermediate layer comprising a plurality of optical pathways coupled to the intermediate outputs; and a second switching layer coupled to plurality of optical pathways at a plurality of inputs, the second switching layer configured to selective couple the plurality of inputs to the one or more output pairs, wherein the first switching layer and the intermediate layer are configured such that couplings between the optical sources and the inputs of the second switching layer are shuffled when the first switching layer is switched between the first configuration and the second configuration. There is also provided a method for coupling a plurality of optical sources to one or more output pairs within a system, the system comprising: a first switching layer for receiving optical signals from the optical sources and configured to selectively couple the optical sources to a plurality of intermediate outputs, wherein the selective coupling comprises at least a first configuration and a second configuration; an intermediate layer comprising a plurality of optical pathways coupled to the intermediate outputs; and a second switching layer coupled to plurality of optical pathways at a plurality of inputs, the second switching layer configured to selective couple the plurality of inputs to the one or more output pairs, wherein the first switching layer and the intermediate layer are configured such that couplings between the optical sources and the inputs of the second switching layer are shuffled when the first switching layer is switched between the first configuration and the second configuration, the method comprising switching the first switching layer between the first configuration and the second configuration. According to a further aspect, there is provided a method for designing a quantum memory, comprising: receiving one or more parameters defining a desired mode of operation of the quantum memory; identifying an error correcting code suitable for implementing the desired mode of operation; deriving a topology associated with the error correcting code; dividing the topology into a set of tiles, each tile comprising a subsection of the topology and being connected to one or more further tiles by one or more connections; and identifying properties of one or more quantum processing units configured to implement each tile, each quantum processing unit comprising a plurality of qubits; and identifying required network pathways to implement connections between tiles by entanglement of signals generated by qubits of each tile. Optional features of aspects described in terms of quantum computing systems apply equally to those described in terms of a quantum memory. The present disclosure also provides computer program products and computer readable media for implementing the methods of the above aspects. For example, the present disclosure provides a computer program product comprising computer executable instructions, which, when executing by the computer, cause the computer to carry out the steps of any one of the methods. A computer in this context may comprise one or more processors. Where multiple processors are used, they may be co-located within a single device or distributed as appropriate. The computer may comprise general purpose computing means and / or dedicated hardware designed for the execution of one or more of the method steps. It will be appreciated from the foregoing disclosure and the following detailed description of the examples that certain features and implementations described as being optional in relation to any given aspect of the disclosure set out above should be understood by the reader as being disclosed also in combination with the other aspects of the present disclosure, where applicable. Similarly, it will be appreciated that any attendant advantages described in relation to any given aspect of the disclosure set out above should be understood by the reader as being disclosed as advantages of the other aspects of the present disclosure, where applicable. That is, the description of optional features and advantages in relation to a specific aspect of the disclosure above is not limiting, and it should be understood that the disclosures of these optional features and advantages are intended to relate to all aspects of the disclosure in combination, where such combination is applicable. List of figures The detailed description is made with reference to the following Figures. Figure 1 depicts a schematic illustration of an example system for distributed quantum computing. Figure 2 depicts a schematic illustration of an example quantum processing unit of the example system depicted in Figure 1. Figure 3 depicts a schematic illustration of an example quantum networking unit of the example system depicted in Figure 1. Figure 4 depicts a schematic illustration of an example entanglement generation unit of the example system depicted in Figure 1. Figure 5 illustrates an example method for operating a system for distributed quantum computing, such as the example system illustrated in Figure 1. Figures 6A, 6B, 6C, and 6D illustrate an example octagonal hyperbolic Floquet quantum error-correcting code. Figure 6A illustrates an example octagonal hyperbolic lattice. Figure 6B illustrates example operations performed as part of the example octagonal hyperbolic Floquet quantum error-correcting code. Figure 6C illustrates an example closed, non-contractible path across an example octagonal lattice. Figure 6D illustrates an example fine-graining procedure performed on three octagonal tiles of the hyperbolic lattice. Figure 7 depicts a schematic illustration of an example system for distributed quantum computing comprising a network element configured to perform a method to implement a sequence of quantum operations at one or more quantum devices of the example system. Figure 8 illustrates an example method carried out by a network element, such as in the example system illustrated in Figure 7, for implementing a sequence of quantum operations at one or more quantum devices. Figure 9 illustrates an example of a variable switching system. The variable switching system may be used as part of a distributed quantum computing system, such as the example system illustrated in Figures 1-4. The variable switching system may standalone from and be used independently of a distributed quantum system. Figure 10 depicts an example method for implementing a quantum error-correcting code in a quantum computing system, such as the example distributed quantum system illustrated in Figures 1-4. Figure 11 depicts an example method for implementing quantum error correction in a quantum computing system, such as the example distributed quantum system illustrated in Figures 1-4. Figure 12 depicts an example method for designing a quantum computing system, such as a distributed quantum system. Figure 13 depicts an example method of operating a fixed coupling network of a distributed quantum system (e.g., the example system of Figure 1) to entangle qubits of quantum processing units. Figure 14 depicts an example method of operating a variable coupling network of a distributed quantum system (e.g., the example system of Figure 1) to entangle qubits of quantum processing units. Figure 15 illustrates an example method for operating a variable switching system (e.g., the example system of Figure 9) which couples a plurality of optical sources to one or more output pairs. Detailed description With reference to Figure 1, a schematic illustration of an example system for distributed quantum computing is described. The system 100 comprises a plurality of quantum processing units 102-1, 102-2, 102-3 ..., 102-n. The quantum processing units 102 are described further below with reference to Figure 2. The quantum computing system 100 may be, for example, a quantum computer or a quantum memory. In some examples, the quantum computing system 100 may comprise both a quantum computer and a quantum memory. The system 100 further comprises a plurality of quantum networking units 104-1, 104-2, 104-3, ..., 104-n. Each of the plurality of quantum networking units 104-1, 104-2, 104-3, ..., 104-n is each optically coupled with one of the quantum processing units 102-1, 102-2, 102-3, 102-n. In the example system 100 illustrated in Figure 1, quantum processing unit 102-1 is optically coupled with quantum networking unit 104-1, quantum processing unit 102-2 with quantum networking unit 104-2, and similarly for each of the other quantum processing units 102 and quantum networking units 104. The quantum networking units 104 are described further below with reference to Figure 3. In some implementations (not illustrated in Figure 1), one or more quantum processing units 102 may be optically coupled to one quantum networking unit 104. For example, quantum processing units 102-1 and 102-2 may be optically coupled to quantum networking unit 104-1. In some implementations (not illustrated in Figure 1), one or more quantum networking units 104 may be coupled to one quantum processing unit 102. The system 100 further comprises a plurality of entanglement generation units 106-1, 106-2, 106-3, ..., 106-n. Each of the networking units 104-1, 104-2, 104-3, ..., 104-n are optically coupled to a plurality of the entanglement generation units 106-1, 106-2, 106-3, ..., 106-n. In the example illustrated in Figure 1, the specific coupling between the networking units 104 and the entanglement generation units 106 is illustrated as optical coupling region 110. The entanglement generation units 106 are described further below with reference to Figure 4. The optical coupling between the quantum processing units 102, the quantum networking units 104, and the entanglement generation units 106 may be via integrated photonic chips, fibre-optic cables, optical waveguides, and / or over free-space. The system 100 further comprises a control system 108. The control system may be distributed into a number of control units. The control units may comprise: one or more dedicated field-programmable gate arrays (FPGAs), and / or one or more application-specific integrated circuit (ASICs). The control system may comprise, or be in communication with, conventional (e.g. classical) computing resources. The control system 108 is coupled to each of: the quantum processing units 102-1, 102-2, 102-3, ..., 102-n, the quantum networking units 104-1, 104-2, 104-3, ..., 104-n, and each of the entanglement generation units 106-1, 106-2, 106-3, ..., 106-n. The classical computer 108 is configured to communicate, via the couplings, with each of the units 102, 104, 106. The communication of the control system 108 with each unit is configured to send data to the unit and receive data from the unit. The data sent by the control system 108 may comprise instructions to control the operation of the unit and / or configuration parameters. The data received by the control system 108 may comprise the operational state of the unit and / or outcomes of the operations performed by the unit. The coupling between the control system 108 and each of the quantum processing units 102, the quantum networking units 104, and the entanglement generation units 106 may be: electrical (e.g., an electrical conductor), optical (e.g., a fibre optic cable or integrated photonic chip), microwave (e.g., a waveguide), and / or any other type of electro-magnetic coupling. In some implementations, each of the quantum processing units 102, the quantum networking units 104, and the entanglement generation units 106 may also comprise a local control unit (not illustrated in Figures 1) configured to control the operation of the corresponding unit. The local control unit may be further configured to communicate with the control system 108. The physical arrangement of each of the quantum processing units 102, quantum networking units 104, and entanglement generation units 106 may be configured to distribute the example system 100 over a region. In Figure 1, quantum processing units 102-1 and 102-2 and quantum networking units 104-1 and 104-2 are spatially co-located in a region 112 (e.g., in a warehouse) and spatially separated from other units of the system 100. In some implementations, the physical arrangement of each of the units 102, 104, 106, 108, may be balanced such that distances between coupled units is equal. For example, the distance between quantum processing unit 102-1 and entanglement generation unit 106-3 is equal to the distance between quantum processing unit 102-3 and entanglement generation unit 106-1. In some implementations not illustrated in Figure 1, each entanglement generation unit 106 may be integrated within a quantum networking unit 104. For example, quantum networking unit 104-2 may comprise entanglement generation unit 106-2. In Figure 1, the number of quantum processing units 102, quantum networking units 104, and entanglement generation units 106 is illustrated as equal. In other implementations, the number of quantum processing units 102, quantum networking units 104, and entanglement generation units 106 may be different to each other. For example, there may be 10 quantum processing units 102, 11 quantum networking units 104, and 14 entanglement generation units 106. Quantum processing units 102 may outnumber quantum networking units 104 and / or entanglement generation units 106. Indeed, in general, any relationship between the number of different elements can be adopted as required. In some implementations, each of the quantum processing units 102, quantum networking units 104, and entanglement generation units 106 may be identical to each of the others in the plurality. In other implementations, a plurality of the quantum processing units 102, quantum networking units 104, and / or entanglement generation units 106 may be different to others in the plurality. With reference to Figure 2, a schematic illustration of an example quantum processing 202 is described. The example quantum processing unit 202 is an example of a quantum processing unit 102 of the example system 100 illustrated in Figure 1. The quantum processing unit 202 comprises a plurality of qubits. The qubits are physical qubits. For example, the plurality of qubits may be trapped ion qubits, cold atom qubits, neutral atom qubits, photon qubits, spin qubits and / or superconducting qubits. In some implementations, the qubits may achieve transduction of photons (at for example, optical and / or telecommunications frequencies). The qubits may comprise combinations of qubit types that achieve transduction of photons. The plurality of qubits comprises computation qubits 220. There is also provided one or more qubit-photon interfaces 222. Each qubit-interface may comprise one or more of its own physical qubits or may be otherwise implemented to generate photons. The generated photons act as signals which are entangled with the quantum states of one or more of the computation qubits 220. For example, the qubit-photon interface are coupled to the computation qubits; in some examples, they may be implemented as part of the same physical array (for example, corners of the array may provide qubitphoton interfaces rather than additional computation qubits). Each qubit (whether a computation qubit 220 or provided as part of a qubit-photon interface 222) is a physical qubit, and more generally references in this disclosure to qubits are understood to refer to physical qubits unless otherwise stated. That is, references to qubits are intended to refer to physical entities, elements or systems which when suitably operated and controlled give rise to physical qubits. Such systems may only function as physical qubits under certain operating conditions. For example, a superconducting qubit only exhibits the behaviour of a qubit when cooled to a sufficiently low temperature such that components of the qubit exhibit superconductivity. References herein to a qubit (or physical qubit) are intended to encompass arrangements of components which are capable of functioning as qubits (for example, when cooled to suitably low temperatures) even under conditions in which they do not necessarily function as qubits In Figure 2, the qubits 220-1, 220-2, ..., 220-m of the computation qubits 220 are illustrated as arranged in a rectangular grid, with a coupling between each neighbouring qubit. In other implementations, the qubits may be arranged in one-dimension (e.g., in a line). In other implementations, the qubits may be arranged in a two-dimension configuration (e.g., a 2D lattice with coupling between neighbouring qubits). In other implementations, the qubits may be arranged in a three-dimensional configuration (e.g., a 3D lattice with coupling between neighbouring qubits). The coupling between the qubits 220-1, 220-2, ..., 220-m of the computation qubits 220 may be achieved through a suitable coupler. The coupler between computation qubits may depend on the specific type of qubit. The qubit photon interface 222 may comprise one or more interface elements 226-1, 226-2, ..., 226-k configured to couple to an external communications path. Each interface element may be independently or collectively coupled to one or more of the computation qubits 220. In some examples, each interface element 226-1, 226-2, ..., 226-k comprises a respective qubit 222-1, 222-2, ..., 222-k which in turn may each be contained with a corresponding cavity 224-1, 224-2, ..., 224-k. In the example illustrated in Figure 2, the computational qubits 220 and the one or more qubit-photon interfaces 222 are illustrated as integrated within the quantum processing unit 202. In other implementations, the computational qubits 220 and the one or more qubitphoton interfaces 222 may be provided in separate units or elements; for example, the quantum processing unit 202 may comprise the computational qubits 220 while the qubit-photon interfaces 222 may be provided in a separate unit or element. Each cavity 224 is configured to support a cavity mode. The cavity mode is configured to generate (e.g., by stimulated emission) a single photon which is entangled with a quantum state of the qubit contained with the cavity. Each interface element 226 may thus emit the single photon output from the cavity 224. Since the interface elements 222 are coupled to the computation qubits 220 (for example, through coupling between the computation qubits 220 and the qubits 222) they may therefore act as a qubit to photon interface. The cavities 224 may be tuned to be at a resonant frequency which is aligned with an emission wavelength of the qubit situated inside the cavity. In this way, a photon generation efficiency of a qubit situated inside the optical cavity may be increased by the Purcell effect. In some examples, an actuator (such as a piezoelectric transducer) may be used to adjust a length of the cavity so as to tune the length of the cavity. The length of the optical cavity may, for example, be tuned in response to measurements of a locking laser. Applicant's co-pending UK patent application no. 2410146.1 describes a locking process that may be used with an optical cavity for this purpose. In at least some examples, a qubit 222 may be placed in an excited energy state in order to promote emission of a photon having quantum entanglement with the qubit 222. For example, an excitation energy source (e.g., an excitation laser arranged to irradiate the qubit) may be used to provide energy to the qubit so as to promote excitation of the qubit to an excited energy state. A qubit in an excited energy state may subsequently relax to a lower energy state through emission of a photon from the qubit. A photon which is emitted from a qubit may have quantum entanglement with the qubit. The use of an excitation energy source to controllably place a qubit in an excited state may provide controllability over the timing at which a photon is emitted by a qubit. Additionally or alternatively, other controllable mechanisms may be used to promote emission of a photon from a qubit so as to provide controllability over the timing at which a photon is emitted by a qubit. Under normal operation, a single photon entangled with the qubit 222 (and thereby entangled with the quantum states of one or more computation qubits 220) is generated. However, there may be random variations in which two or more photons are generated which are entangled with the qubit. As will be described in greater detail below, the photons generated by the qubitphoton interfaces can be used to create quantum entanglement between qubits on the quantum processing unit 202 and equivalent qubits on other quantum processing units 202. Pairs of qubits which have quantum entanglement between them may be referred to as entangled pairs, Bell pairs or EPR. pairs. Qubits which have quantum entanglement between them have quantum states which cannot be described independently of one another even when the qubits are separated by large distances. In particular, the quantum states of entangled pairs of qubits are correlated with each other. The quantum entanglement between qubits serves to establish quantum communication links between separate quantum processing units 202. The photons generated by the qubit-photon interfaces 222 are, in some examples, within the telecommunications wavelength range. For example, they may have wavelengths within the range 1260nm to 1675nm. In particular, the photons may be within any of the following bands for telecommunication wavelengths. O band Original 1260-1360 nm E band Extended 1360-1460 nm S band Short wavelengths 1460-1530 nm C band Conventional (erbium window) 1530-1565 nm L band Long wavelengths 1565-1625 nm U band Ultralong wavelengths 1625-1675 nm In this manner, the photons generated in this way can be transmitted using optical fibre infrastructure built to existing specifications. The skilled person will understand that alternative wavelengths may be adopted when appropriate, depending on the manner in which the network communication of the photons is implemented. The qubit-photon interfaces 222 are each configured to couple to a plurality of the computation qubits 220. The coupling between computation qubits 220 and qubitphoton interfaces 222 may be achieved through a suitable coupler, which may depend on the specific type of qubit. The quantum processing unit 202 further comprises a quantum processing control unit 228. The quantum processing control unit 228 is configured to control the operation of the quantum processing unit 202, which comprises controlling the operation of computation qubits 220, qubit-photon interfaces 222, and the coupling between qubits, and / or performing measurements on qubits. This may be achieved by applying control signals to one of more qubits 220, 222 or in any other appropriate manner. The control unit may also be functional to modify and / or control the coupling between qubits 220, 222 in the array, as well as the generation of photons for entanglement with qubits from other quantum processing units. The quantum processing control unit 228 is configured to communicate with the control system 108 illustrated in Figure 1. The data received by the control system 108 from the quantum processing control unit 228 may comprise the operational state of the computation qubits 220 and the qubit-photon interfaces 222, and / or outcomes of measurement operations performed by the quantum processing unit 202 on the qubits. The data sent by the control system 108 to the quantum processing control unit 228 may comprise control operations for a plurality of the qubits of the quantum processing device 202, and / or relevant parameters (e.g., a time, outcomes of measurement performed on qubits in other quantum processing units in the system 100). The quantum processing control unit 228 may further comprise a memory. The memory is configured to store data sent and / or received from the control system 108, control operations performed by the quantum processing unit 228, and / or outcomes of measurements performed on qubits of the quantum processing unit. With reference to Figure 3, a schematic illustration of an example quantum networking unit 304 is described. The example quantum networking unit 304 is an example of a quantum networking unit 104 of example system 100 of Figure 1. The quantum networking unit 304 receives as input one or more photons. The input photons are received from a quantum processing unit 102, 202 described in Figures 1 and 2 through optical couplers 326-1, 326-2, 326-3, ..., 326-j. The quantum networking unit 304 comprises a plurality of optical switching devices 340-1, 340-2, ..., 340-j. Each of the optical switching devices 340 is configured to selectively couple an input optical coupler 326 to one of a plurality of output optical couplers 336. For example, the optical switching device 340-1 is configured to selectively couple input optical coupler 326-1 to one of the output optical couplers 336-la, 336-lb, 336-lc, and similarly for optical switching devices 340-2, ..., 340-j. The quantum networking device 304 further comprises a networking control unit 342. The networking control unit 342 is configured to control the operation of the quantum networking device 304, which comprises controlling the selective coupling of each of the optical switching devices 340. The control system 108 illustrated in Figure 1 is coupled to the networking control unit 342. The data sent by the control system 108 to the networking control unit 342 may comprise operations for the optical switching devices to perform, and / or relevant parameter (e.g., a time). The data received by the control system 108 via the networking control unit 342 may comprise an operational state of a plurality of the optical switching devices 340. In implementations where each quantum processing unit 202 is optically coupled to one quantum networking unit 304 such as the example illustrated in Figure 1, the optical couplers 326 correspond to the optical couplers 226 illustrated in Figure 2. For example, optical coupler 226-1 is input optical coupler 326-1, and similarly for the other optical couplers. The selective coupling of optical switching unit 340-1 of quantum networking unit 304 may therefore be configured such that a single photon received by input coupler 326-1 may be received by output optical coupler 336-lb. In other implementations, a quantum networking unit 304 may be optically coupled to more than one quantum processing unit 202. In these implementations, a plurality of the input optical couplers 326 correspond to some of the optical couplers of a first quantum processing unit (e.g., 102-1) and a different plurality of the optical couplers 326 correspond to some of the optical couplers of a second quantum processing unit (e.g., 102-n). In the example illustrated in Figure 2, each optical switching device 340-1, 340-2, ..., 340-j has the three output optical couplers 336. In other implementations, the optical switching devices may have a different number of output optical couplers (e.g., each optical coupler 340 has four output optical couplers). In some implementations, the number of output optical couplers may be different for one or more of the optical switching devices 340. For example, optical switching device 340-2 may have four output couplers and optical switching device 340-j may have six output optical couplers. In the example illustrated in Figure 3, each optical switching device 340 has a single input optical coupler 336. In other implementations, optical switching devices 340 may have more than one input optical coupler. In these implementations, the number of output optical couplers 336 may be greater than or equal to the number of input optical couplers 326. In some implementations, the number of output optical couplers 336 may be proportional to the number of input optical couplers 326 (e.g., number of output optical couplers 336 is triple the number of input optical couplers 326). With reference to Figure 4, a schematic illustration of an example entanglement generation unit 406 is described. The example entanglement generation unit 406 is an example of an entanglement generation unit 106 of example system 100 illustrated in Figure 1. The entanglement generation unit 406 is configured to receive as input one or more photons from a plurality of quantum networking devices such as those illustrated in Figures 1 and 3 via optical couplers 446a and 446b. The optical couplers 446a-l, 446a-2, ..., 446a-g and 446b-l, 446b-2, ..., 446b-f each correspond to one of the output optical couplers 336 from the plurality of quantum networking units 104, 304. For example, optical coupler 446a-l may be coupled to optical coupler 336-2 of quantum networking device 104-3, and optical coupler 446b-f may be coupled to optical coupler 336-h of quantum networking device 104-1. The particular configuration of the optical coupling between the quantum networking units 104, 304, and the quantum entanglement units 106, 406 is determined by the optical coupling region 110. The entanglement generation unit 406 comprises a first optical switching unit 460a and a second optical switching unit 460b. The first optical switching unit 460a is configured to selectively couple one of the input optical couplers 446a to output optical coupler 456a. The second optical switching device 460b is configured to selectively couple one of the input optical couplers 446b to output optical coupler 456b. The entanglement generation unit 406 further comprises a Bell state measurement unit 462. The Bell state measurement unit 462 is coupled to the first switching unit 460a by optical coupler 456a. The Bell state measurement unit is also coupled to the second switching unit 460b by optical coupler 456b. The Bell state measurement unit is configured to receive one or more photons output by the first and second switching units 460a and 460b via the optical couplers 456a and 456b. In normal operation, the Bell state measurement unit is configured to receive a single photon via optical coupler 456a and a single photon via optical coupler 456b. In normal operations the two single photons are indistinguishable, or approximately indistinguishable. The Bell state measurement unit 462 comprises a beam splitter 464. In some implementations, the beam splitter 464 is a 1:1 beam splitter; a photon in optical coupler 456a and a single photon in optical coupler 456b are both coupled to optical coupler 458a with 50% probability and to optical coupler 458b with 50% probability. The beam splitter 464 is configured to perform two-photon interference (e.g., the Hong-Ou-Mandel effect) and generate an entangled state (e.g., a Bell state) of the two single photons. The Bell state measurement unit 462 further comprises a first single photon detector 466a and a second single photon detector 466b. The first single photon detector 466a is optically coupled to the beam splitter 464 by optical coupler 458a. The second single photon detector 466b is optically coupled to the beam splitter 464 by optical coupler 458b. The single photon detectors 466a, 466b may comprise any suitable form of single photon detector. For example, the single photon detectors may comprise a superconducting detector such as a superconducting nanowire single-photon detector or a semiconductor-based single-photon detector. In at least some examples, the single photon detectors may be of a type having a relatively short dead-time after detection of a first photon and before a second subsequent photon can be detected. Using a single photon detector with a relatively short dead-time may allow the same single photon detector to detect photons in multiple time bins (e.g., in both an early and a late time bin as will be described in more detail below). The single photon detectors 466a and 466b are configured to measure the number of photons output from the beam splitter 464 via optical couplers 458a and 458b, respectively. In normal operation, either single photon detector 466a or 466b will measure two photons. Either measurement event generates an entangled state (e.g., a Bell state) between the two qubit-photon interfaces, each of which were entangled with a single photon (and may also have been entangled with computational qubits 220). It is possible that on occasion the two single photons may deviate from indistinguishability. As a result, the Bell state measurement unit 462 may deviate from normal operation, and the two-photon interference may not generate an entangled state of the two photons. In this case, a single photon will be detected at single photon detector 466a and at single photon detector 466b and so the failure to generate an entangled state may be recognised. In at least some examples, photons may be generated such that they are in a superposition of two states. For example, a qubit (located at a quantum processing unit 104) may be subjected to an entanglement scheme which generates a photon in superposition of an early time bin and a late time bin where the superposition of the photon has quantum entanglement with the quantum state of the qubit. It remains possible to apply the Bell process in such scenarios, and example techniques for entanglement utilising time bins are described in applicant's co-pending UK patent application GB2411437.3. A Bell state measurement of two photonic qubits comprises a projection of the quantum states of the two photonic qubits onto one of the four Bell states, which represent maximally entangled states. The four maximally entangled Bell states of two qubits are given below in equations (1)-(4). .. |00> + |ll> 1 (1) V2 (2) l01> + i10> * V2 (3) |()l>-|10> >—. J_________!_____ ! V2 (4) As was explained above, if a Bell state measurement of two photons (which can be understood as photonic qubits) generated at different quantum processing units 102 (and each having quantum entanglement with a qubit situated at the respective quantum processing unit 102) is successful, then entanglement swapping may be achieved such that qubits situated at different quantum processing units are entangled. Qubits which are situated at different quantum processing units 102 and which have quantum entanglement, form quantum communication links between the quantum processing units 102. The relevant states for the Bell state measurements of photonic qubits (i.e. the photons) may be encoded in, for example, the polarisation states of the photons. However, alternative states of the photons may be envisaged for Bell state measurement such as time bin states as mentioned above or photon frequency-mode encoding. The entanglement generation unit 406 further comprises an entanglement generation control unit 470. The entanglement generation control unit 470 is configured to control the operation of the entanglement generation unit 406, which comprises controlling the selective coupling of the optical switching units 460a and 460b. The entanglement generation control unit 470 also comprises a memory configured to store any measurement results obtained by the single photon detectors 466a and 466b. The control system 108 illustrated in Figure 1 is coupled to the entanglement generation control unit 470 of the entanglement generation unit 406. The data sent by the control system 108 to the entanglement generation control unit 470 may comprise control operations for the optical switching units 460a and 460b, relevant parameter (e.g., a time), and / or data sent to other units of the system 100. The data received by the control system 108 from the entanglement generation control unit 470 may comprise an operational state of the optical switching units 460a and 460b, and / or results of measurements performed by the single photon detectors 466a and 466b. In some implementations, the optical switching devices 460a and 460b may each be configured with more than one output optical coupler. The Bell state measurement unit 462 may be configured to perform photon interference on more than two photons, and thereby generate more than one pair of entangled qubit-photon interfaces (and thus form an entanglement with qubits on the quantum processing units). With reference to Figure 5, an example method 500 for operating a distributed quantum system, such as the example system 100 illustrated in Figure 1, to perform a distributed quantum information processing task. The method 500 comprises receiving 502 configuration data of a distributed quantum system, such as the example system 100 for distributed quantum computing illustrated in Figure 1. The configuration data comprises the number of quantum processing units 102, quantum networking units 104, and entanglement generation units 106 comprised by the system. The configuration data comprises for each quantum processing unit 102: the number of computation qubits 220, the number of qubit-photon interfaces 222, the type of qubit (e.g. trapped ion, neutral atom, superconducting etc.), the physical arrangement of the qubits, the configuration of the couplings between the computation qubits 220, configuration of the couplings between the computation qubits 220 and the qubitphoton interfaces 222, the operating parameters of each qubit (e.g., an operating frequency, a coherence time), operating parameters for each of the couplings (e.g., coupling strength), parameters describing the cavities 224 (e.g., size, structure, supported cavity mode(s)), and / or parameters describing the generation of a single photon entangled with each qubit-photon interface222 (e.g., a generation rate, an error rate). The configuration data may further comprise a set of control operations (e.g., singlequbit quantum gates, two-qubit quantum gates, measurement of qubits) the quantum processing control unit 228 is configured to perform. The configuration data further comprises a set of error parameters for each of the control operations the quantum processing control unit 228 is configured to perform. The error parameters may comprise a bit-flip error rate, a phase-error rate, and / or a measurement error rate for each control operation performed on the qubits. The configuration data comprises for each quantum networking unit 104: the number of optical switching devices 340, the selective couplings between input optical couplers 326 and output optical couplers 336 of each optical switching device 340, and / or operating parameters of the optical switching devices 340 (e.g., single photon loss rate). The configuration data comprises for each entanglement generation unit 106: operating parameters of the optical switching units 460a and 460b (e.g., single photon loss rate), the input optical couplers to each of the optical switching units 460a and 460b, and / or operating parameters of the Bell state measurement unit 462 (e.g., single photon detector 466a / 466b efficiency, loss rate of beam splitter 464, deviation of beam splitter 464 from 1:1 operation). The configuration data further comprises a set of error parameters for entanglement generation between pairs of qubit-photon interfaces 222. The error parameters may comprise an error rate for generating an entangled state (e.g., a Bell state) between two qubit-photon interfaces 222. The error rate may be based on the configuration data, for example the parameters describing the generation of a single photon entangled with each qubit-photon interfaces 222, operating parameters of the optical switching devices 340, and / or error parameters for the control operations. The configuration data comprises the configuration of the optical coupling region 110 and the optical couplings between the quantum processing units 102 and quantum networking, and thereby the network structure of the system 100. The configuration data further comprises operating parameters of the network structure of the system 100 (e.g., distances between units of the system, latency, spatial structure or configuration), and / or operating parameters of the optical couplers (e.g., loss rates) The configuration data comprises parameters describing the coupling between each of the units 102, 104, 106 of the system and the control system 108 (e.g., a noise level, an error rate, latency, bandwidth). The method 500 optionally comprises receiving 504 data comprising a quantum information processing task to perform on the system 100. The data may comprise a sequence of measurements to perform on a plurality of qubits, and / or a sequence of control operations (e.g., a sequence of quantum gates) for a plurality of qubits. Optionally, a set of the control operations of the sequence of control operations may be based on outcomes of measurements performed on a plurality of qubits. The method 500 further comprises selecting 506 a quantum error-correcting code from a family of quantum error-correcting codes. For example, the family of quantum error-correcting codes may be low-density parity-check codes, stabilizer codes, Calderbank-Shor-Steane (CSS) codes, sub-system codes, topological codes, hyperbolic codes, semi-hyperbolic codes, and / or Floquet codes. Selecting 506 the quantum error-correcting code may be based on the configuration data of the distributed quantum system received in method step 502 of method 500. For example, the configuration data comprises the number of physical qubits of each quantum processing unit, and therefore the total number of physical qubits of the distributed quantum computing system. A quantum error-correcting code may therefore be selected from the family of error-correcting codes based on the total number of physical qubits (e.g., codes which require more physical qubits than the total may not be selected, and / or codes requiring only a fraction of the total physical qubits may not be selected). In another example, the configuration data may comprise an error rate of control operations performed on qubits of the distributed quantum system. The quantum error-correcting code may therefore be selected from the family of error-correcting codes based on this error rate. In some implementations, the configuration data may comprise the physical arrangement of qubits in each quantum processing unit of the distributed quantum system (e.g., 2D hexagonal lattice with coupling between adjacent qubits). The physical arrangement of the qubits may suit some sub-set of the family of errorcorrecting codes, and hence the selection of a quantum error-correcting code may be made from this sub-set of the family. Optionally, selecting 506 the quantum error correcting code may be based on the data comprising the quantum information processing task to perform on the system 100 received in method step 504 of method 500. For example, the quantum information processing task may require a minimum number of qubits. The number of logical qubits encoded by an error-correcting code from the family of error correcting codes should therefore be greater than or equal to the minimum number of qubits required. This may introduce a constraint in selecting the quantum error-correcting code from the family of error-correcting codes which have an encoding rate which satisfies the minimum number of logical qubits required. In some examples, the quantum information processing task may only require some sub-set of the control operations (e.g., from a universal gate set only single-qubit operations are required). Each quantum error-correcting code from the family of error correcting codes may have some set of control operations that can be implemented in a fault-tolerant manner (e.g., transversal logical operations). Hence, selecting a quantum error-correcting code from the family may be based on the control operations that are required by the quantum information processing task. In some implementations, selecting the quantum error correcting code from a family of error-correcting codes may be based on user input. For example, the user input may comprise a range of values for a threshold and / or a minimum distance for the selected quantum error-correcting code selected from the family of error-correcting codes. In some implementations, selecting the quantum error-correcting code from a family of quantum error-correcting codes may be based on an error model. An error model is a simulation using a classical computer to benchmark the performance of a family of quantum error-correcting codes when implemented on a distributed quantum computing system under the influence of noise. The error model receives as input a set of error parameters. The error parameters comprise a first error parameter which indicates an error rate for a first set of operations performed on one or more qubits. The first set of operation may comprise operations (e.g., single-qubit gates, two-qubit gates, measurements, state preparation, reset operations) performed on one or more qubits of one quantum processing unit of the distributed quantum system. The error rate may be a probability that an error occurs as a result of an operation performed on the one or more qubits. The error may be a decoherence error (e.g., a bit-flip Pauli-X error and / or a phase Pauli-Z error), a measurement error, an idling error (e.g., a decoherence error during a qubit idling), a reset error, and / or a depolarising error. The error parameters also comprise a second error parameter which indicates an error rate for a second set of operations performed on a plurality of qubits. The second set of operations may comprise operation performed on a plurality of qubits of a plurality of quantum processing units of the distributed quantum system. The error rate may be a probability that an error occurs as a result of an operation performed on the one or more qubits. The error may be a decoherence error, a measurement error, a reset error, and / or a depolarising error. The error parameters also comprise a third error parameter which indicates an error rate for a third set of operations. The third set of operations may comprise operations performed to generate entanglement between a plurality of qubits of a plurality of quantum processing units of the distributed quantum computing system. The operations which generate entanglement may depend on a stochastic process and therefore are performed over an extended period of time which has some random variation. The error rate may be based on a model of the stochastic process which causes the random variation in the extended period time. For example, the error rate may be based on an expected value for the extended period of time. The error may be a decoherence error, a measurement error, a depolarising error, and / or leakage and heralded errors (e.g., failed Bell pair generation and / or qubit erasure). In some implementations, it is assumed that operations have minimal crosstalk; an error only occurs on qubits which are involved in the operation. In some implementation, it is assumed that one type of error (e.g., dephasing error) is the primary type of error. In some implementations, it is assumed that an error rate for one set of operations is greater than the error rate for another set of operations (e.g., the second set of operations are the dominant source of errors in the error model, and the error rate is greatest). The simulation performed as part of the error model is based on the error parameters received as input. The simulation comprises for each quantum error-correcting code of the family of quantum error correcting codes performing a simulation of a quantum information processing task performed on a simulated distributed quantum system implementing the quantum error-correcting code. In some implementations, the input set of error parameters may be based on configuration data received in method step 502 of method 500. In some implementations, the simulation may be performed on a plurality of simulated distributed quantum systems. Each of the distributed quantum computing systems may have a pre-defined configuration with corresponding configuration data. In some implementations, one of the plurality of simulated distributed quantum systems may have corresponding configuration data which is equivalent to the configuration data received in method step 502 of method 500. In some implementations, the simulation may be performed on a plurality of implementations of the quantum error-correcting on a simulated distributed quantum system. An implementation of the quantum error-correcting code may comprise associating each qubit of the code with a qubit of the simulated distributed quantum system. Each implementation in the plurality of implementations may differ in the set of associations between qubits of the code with qubits of the simulated distributed quantum system. For example, in a first implementation a plurality of qubits may each be associated with a qubit of one quantum processing unit of the simulated distributed quantum computing system, and in a second implementation the plurality of qubits may each be associated with a plurality of qubits of a plurality of quantum processing units of the simulated distributed quantum system. One of the simulated distributed quantum computing systems may be configured to have a configuration that is equivalent to the configuration data received in method step 502 of method 500. Other simulated distributed quantum computing systems in the plurality may a configuration different to the configuration data received in method step 502 of method 500. In some implementations, the quantum information processing task may be quantum memory experiment, which comprises a sequence of operations to generate a particular pre-defined quantum state of a plurality of qubits of the distributed quantum system. In some implementations, the quantum information processing task simulated as part of the error model may be the quantum information processing task received in method step 504 of method 500. In some implementations, the quantum information processing task simulated as part of the error model may be a pre-defined benchmarking task (e.g., a pre-defined sequence of quantum gates and measurements). The output of each simulation may comprise a quantum state of a plurality of qubits of the distributed quantum system after the quantum information processing task has been performed. The output quantum state may be compared to an expected quantum state of the plurality of qubits. The expected quantum state is the quantum state of the plurality of qubits when no errors occur during the simulation of the quantum information processing task. The output of each simulation may also comprise the expected quantum state. The output of each simulation may be a set of performance parameters that may be used to benchmark the performance of each quantum error-correcting code of the family of quantum error-correcting codes. The set of performance parameters may be based on the output quantum state and the expected quantum state. For example, the performance parameters may be a distance (e.g., fidelity) between the output and expected quantum state. The performance parameters may be a maximum number of errors the simulated quantum error-correcting code was able to detect and / or correct during the simulation. The performance parameters may comprise a time, number of error-correcting rounds, and / or circuit depth of the quantum information processing task over which the simulated quantum error-correcting code was able to correctly detect and correct errors. The performance parameters may also be used to benchmark the performance of the family of quantum error-correcting codes. For example, a threshold may be determined based on the performance parameters. The method 500 further comprises implementing 508 the selected quantum errorcorrecting code on the distributed quantum system, such as the example system 100 for distributed quantum computing illustrated in Figure 1. Implementing the selected quantum error-correcting code comprises encoding the selected quantum error-correcting code over the distributed quantum computing system. Encoding the selected error-correcting code comprises performing an encoding sequence of control operations and an encoding sequence of measurements on the physical qubits of the distributed system to generate a plurality of a logical qubits. The encoding sequence of control operations and the encoding sequence of measurements is determined by the selected error-correcting code. A set of the control operations of the encoding sequence of control operations may be based on outcomes of measurements of the encoding sequence of measurements performed on a plurality of qubits of the distributed quantum system. The control operations comprise two types of control operation. The first type of control operation comprise operations performed on one or more qubits of a single quantum processing unit of the distributed quantum system (e.g., a quantum gate on computation qubits 220-1 and 220-2 of Figure 2). The second type of control operation comprise operations performed on a plurality of qubits distributed over a plurality of quantum processing units of the distributed quantum system. For example, with reference to Figure 1, a control operation of the second type may involve a physical qubit of quantum processing unit 102-1 and a physical qubit of quantum processing unit 102-2. An ultimate desired outcome of control operations of the second type may involve independent application of control operations to the physical qubit of quantum processing unit 102-1 and the physical qubit of quantum processing unit 102-2 The measurement of physical qubits also comprises two types of measurement. The first type of measurement comprises measurements performed on one or more qubits of a single quantum processing unit of the distributed quantum system (e.g., a measurement on physical qubits 220-2 and 220-m of Figure 2). The second type of measurement comprises measurements performed on a plurality of qubits distributed over a plurality of quantum processing units of the distributed quantum system. For example, with reference to Figure 1, a measurement of the second type may be a measurement of two qubits performed on a physical qubit of quantum processing unit 102-1 and a physical qubit of quantum processing unit 102-n. The second type of control operation and the second type of measurement may be performed using entanglement generated between qubit-photon interfacesof quantum processing units, using the quantum networking and entanglement generation units of the example distributed quantum system described with reference to Figures 1-4. Implementing the selected quantum error correcting code further comprises a decoding sequence of control operations and a decoding sequence of measurements on the physical qubits of the distributed quantum system. The decoding sequence of control operations and the decoding sequence of measurements is determined by the selected error-correcting code. A set of the control operations of the decoding sequence of control operations may be based on outcomes of measurements of the decoding sequence of measurements performed on a plurality of qubits of the distributed quantum system. The decoding sequence of control operations and the decoding sequence of measurements are configured to be performed actively and continuously. For example, a measurement may be performed on a plurality of the physical qubits, the outcome of which detects an error on a logical qubit encoded by the plurality of physical qubits, and in response a control operation is performed on the plurality of qubits to correct the error. The measurement may then be performed again following a set duration (e.g., set by the error-correcting code, and / or based on the configuration data). In some implementations, the selected error-correcting code may be such that the encoding sequence of control operations and the decoding sequence of control operations may be equivalent or the same, and / or the encoding sequence of control measurements and the decoding sequence of measurements may be equivalent or the same. The method 500 further comprises 510 performing a quantum information processing task on the distributed quantum system, on which the quantum error correcting code is implemented. Optionally, the quantum information processing task may be the quantum information processing task of method step 504 of method 500. The quantum information processing task comprises a sequence of measurements to perform on a plurality of qubits, and / or a sequence of control operations (e.g., a sequence of quantum gates) for a plurality of qubits. Optionally, a set of the control operations of the sequence of control operations may be based on outcomes of measurements performed on a plurality of qubits. The sequence of control operations and the sequence of measurements of the quantum processing task is performed on the logical qubits encoded by the quantum error-correcting code in the physical qubits of the distributed quantum system. The decoding sequence of control operations and measurements are performed while performing the quantum information processing task. For example, every time after a control operation (e.g., quantum gate) of the quantum information processing task is performed on a logical qubit, a decoding measurement from the sequence of decoding measurements is performed, and if a measurement outcome detects an error, then a decoding control operation (e.g., a sequence of decoding control operations) is performed on physical qubits which encode the logical qubit to correct the detected error. One family of quantum error-correcting codes of particular interest are low-density parity-check codes. The family of low-density parity-check codes comprises topological codes such as hyperbolic quantum error-correcting codes and semi-hyperbolic quantum error-correcting codes. Hyperbolic and semi-hyperbolic Floquet quantum error correcting codes are described in a document titled, "Fault-tolerant hyperbolic Floquet quantum error correcting codes" by Ali Fahimniya, et. al., published with arXiv reference number, 2309.10033, and in another document titled, "Constructions and performance of hyperbolic and semi-hyperbolic Floquet codes", by Higgott and Breuckmann, published with arXiv reference number, 2308.03750. With reference to Figures 6A, 6B, and 6C, an example hyperbolic Floquet quantum error-correcting code is described. The example hyperbolic lattice illustrated in Figure 6A is an octagonal lattice. Any other suitable tiling of the hyperbolic plane may be used for the hyperbolic Floquet quantum error correcting code (e.g., heptagonal tiling, truncated tiling, trihexagonal tiling). A physical qubit is located at each vertex of the lattice. The octagonal lattice is regular, with three octagons meeting at each vertex, and all vertices are equivalent. However, projecting a hyperbolic lattice onto a flat plane, as illustrated in Figure 6A, results in distortions in the shapes of the octagons. For example, octagons 610-1 and 610-2 are different sizes, and the length of the edges of octagon 310-2 are not all equal. Each vertex is connected to three other vertices by three edges of octagons of the octagon lattice. For example, vertex 602-1 is connected to: vertex 602-2 by edge 604-1, vertex 602-3 by edge 604-2, vertex 602-4 by edge 604-2. The octagonal hyperbolic lattice illustrated in Figure 6A has periodic boundary conditions. The periodic boundary conditions mean that each edge of an octagon on the boundary in Figure 6 is identified with another edge on the boundary. The periodic boundary conditions result in a complex topological structure for the octagonal hyperbolic lattice. For example, in the case where there are 64 physical qubits (so 64 vertices) octagon 610-3 and octagon 610-5 are the same, and octagons 610-4 and octagon 610-6 are the same, and the periodic boundary conditions results in a lattice which tiles a genus-5 manifold. For hyperbolic Floquet quantum error-correcting codes, the genus of the manifold depends on the number of physical qubits in the lattice. For example, the genus may be proportional to the number of physical qubits. The number of logical qubits encoded by the hyperbolic Floquet quantum errorcorrecting code may depend on the topological structure of the hyperbolic lattice. For example, in the case of an octagonal hyperbolic lattice the number of logical qubits encoded is twice the genus of the manifold. For example, in the case of 64 physical qubits, the lattice has the topology of a genus-5 manifold, and so the number of logical qubits encoded is 10. In Figure 6A, the octagons which comprise the octagonal lattice are of three types: type-A, type-B, type-C. Each octagon type is adjacent to octagons of a different type only. Type-A octagons are adjacent to type-B and type-C, Type-B octagons are adjacent to type-A and type-C, and Type-C octagons are adjacent to type-A and type-B. The octagon types may be determined through a three-colouring of the octagons (e.g., type-A octagons are red, type-B octagons are blue, type-C octagons are green). The minimum number of octagon types is three. In other implementations, the number of octagon types may be greater than three. In implementations in which a different tiling of the hyperbolic plane is used, a minimum number of types of tile may depend on the tiling and / or on the boundary conditions. The three octagon types imply a corresponding three types of edges between vertices. These three types of edges between vertices are described with reference to Figures 6A and 6B. A first type of edge, edge-AB, are edges adjacent to a type-A octagon and a type-B octagon (e.g., edge 604-1). A second type of edge, edge-AC, are edges adjacent to a type-A octagon and a type-B octagon (e.g., edge 604-2). A third type of edge, edge-BC, are edges adjacent to a type-B octagon and a type-C octagon (e.g., edge 604-3). In other implementations, the number of types of edges between vertices is greater than three. The number of types of edges may depend on the tiling of the hyperbolic plane, the number of types of octagon, and / or the boundary conditions. With reference to Figure 6B, three types of operation performed as part of the hyperbolic Floquet quantum error-correcting code are described. In Floquet error-correcting codes, the operation of the error-correcting code is time-periodic; the operations are repeated every time-period. Each time-period comprises a sequence of time-steps. In each time-step, an associated set of operations are performed. In the case of the example hyperbolic Floquet error correcting code, there are three time-steps in each time-period. In time-step 3n (e.g., t=0, t=3, t=6, etc.), a first operation is applied to each pair of physical qubits connected by an edge-AB. In timestep 3n + l (e.g., t=l, t=4, t=7, etc.), a second operation is applied to each pair of physical qubits connected by an edge-AC. In time-step 3n + 2 (e.g., t=2, t=5, t=8, etc.), a third operation is applied to each pair of physical qubits connected by an edge-BC. The operations in each time-step commute with each other, and therefore can be implemented in any order, including simultaneously. In some examples, the first, second and / or third operations may be parity measurements between a pair of qubits of the same quantum processing units implemented (locally) using one or more additional qubits prepared in a GHZ state via Shor syndrome extraction circuits. In some examples, the first, second, and / or third operations may be parity measurements implemented locally with no additional qubits using two-qubit gates and measuring the physical qubits directly. In some examples, the first, second, and / or third operations may be parity measurements between a pair of qubits of different quantum processing units implemented (non-locally) using a heralded Bell state by using qubit teleportation to move the state of the two physical qubits onto the same quantum processing unit. The process of qubit teleportation is described, for example, in the article titled "Teleporting an unknown quantum state via dual classical and Einstein-Podolsky-Rosen channels" by Bennett et al., Physical Review Letters 70, 1895 (1993). In some examples, the parity measurements may be implemented (non-locally) using a heralded Bell state by using gate teleportation to perform a two-qubit gate across the two quantum processing units, which is described, for example, in the article titled "Fault-tolerant connection of error-corrected qubits with noisy links" by Ramette et al., npj Quantum Information 10, 58 (2024). In some examples, the parity measurements may be implemented (non-locally) using a heralded Bell state by using the heralded Bell state as a measurement state in a Shor syndrome extraction process, which is described, for example, in the article titled "Thresholds for the distributed surface code in the presence of memory decoherence" by de Bone et al., AVS Quantum Science 6, 033801 (2024). In some examples, a combination of the described examples for implementing parity measurements may be used. In some examples, the first operation may be a Pauli XX parity measurement on the pair of qubits, the second operation may be a Pauli YY parity measurement on the pair of qubits, and Pauli ZZ parity measurement on the pair of qubits. In the example hyperbolic Floquet quantum error-correcting code, the operations that are applied in the first time-period (t=0, t=l, and t=2) are the encoding sequence of measurements of the code. After the first (initialization) time-period, the logical qubits of the quantum error-correcting code will approach a ground state of the code (this serve as a process of encoding). In subsequent time-periods, the operations are the decoding sequence of measurements of the code. The encoding operations and decoding sequence of measurements for the example hyperbolic Floquet quantum error-correcting code are the same. The operations performed in each time-step to all pairs of qubits connected by edges of a particular type can be used to make inferences for decoding, and so detect errors which can then be corrected. One such set of operations are known as plaquette operations. A plaquette operation is the product of all operations performed on pairs of qubits connected by edges of an octagon. A plaquette operation therefore commutes with all operations performed in each time-step. A plaquette operation depends on the octagon type. Octagons of type-A have an associated first plaquette operation for all eight physical qubits connected by their edges. Octagons of type-B have an associated second plaquette operation for all eight physical qubits connected by their edges. Octagons of type-C have an associated third plaquette operation for all eight physical qubits connected by their edges. In the example where the first operation is a Pauli XX parity, the second operation a Pauli YY parity measurement, and the third operation a Pauli ZZ parity measurement on the pair of qubits, then the third plaquette operation is a Pauli XXXXXXXX parity measurement. The decoding sequence of measurements are configured to detect errors that may occur. The outcome of plaquette operations can be inferred from the outcomes of the decoding measurements performed in each time-step. The presence and type of error on any physical qubit (or errors on a plurality of physics qubits) is detected when an inferred outcome of a plaquette operation differs from a previously inferred value. In the example hyperbolic Floquet error-correcting code, a decoding sequence of operations may be performed on one or more physical qubits in response to outcomes of the decoding sequence of measurements, which have detected one or more errors on physical qubits. The decoding sequence of operations may comprise a sequence of operations which correct the one or more errors. For example, if an X error is detected on qubit 602-1, a decoding sequence of operations may comprise an Pauli X gate applied to qubit 602-1. In other implementations, a decoding sequence of operations to correct one or more errors may be applied in time-steps later than the time-step in which the one or more errors are detected. The decoding sequence of operations may depend on the timestep and / or time-period. In another implementation, the connections may be tracked classically by maintaining a updated computational basis frame. The correction of errors may therefore be performed via post-processing. The logical qubits encoded by a hyperbolic Floquet quantum error-correcting code can be manipulated using logical operations. The set of possible logical operations that can be applied depends on the specific quantum error-correcting code. For example, the set of possible logical operations may comprise Pauli operators for each logical qubit. With reference Figure 6C, an example logical operation of the example hyperbolic Floquet quantum error-correcting code is described. Logical operations are performed by applying a sequence of operations to physical qubits along a closed and non-contractible path across the lattice. A closed path is a path of edges which connect physical qubits of the lattice in which the start and end qubit are the same. A non-contractible path is a path of edges which connect physical qubits of the lattice across the entire lattice using the periodic boundary conditions. For example, in the case of a 64 physical qubit code, the path indicated in Figure 6C by a dashed line connecting the circled physical qubits is an example of a closed non-contractible path across the lattice. Due to the periodic boundary conditions of the lattice, physical qubit 602-6 and physical qubit 602-8 are the same physical qubits, and physical qubit 602-7 and physical qubit 602-9 are the same physical qubit. Each logical operation that can be applied to a logical qubit corresponds to a particular sequence of operations applied to physical qubits of a corresponding closed, non-contractible path. The particular sequence of operations depends on the time-step and / or time-period. For example, for the closed, non-contractible path illustrated in Figure 6C, a Pauli operator is applied to each of the 10 physical qubits. Each Pauli operator depends on the operations applied in previous time-steps and are the same every other timeperiod; the Pauli operators applied to each of the 10 physical qubits are repeated every six time-steps. In some implementations, a logical operation of two or more logical qubits may be applied by performing a braiding operation. The distance of an error correcting code determines the number of errors the code may be able to correct. The distance of the hyperbolic Floquet quantum errorcorrecting code may be determined by the logical operations of the code. The code distance may be equal to the minimum weight of all logical operations, where weight of an operation is defined as the number of non-identity operations in the sequence of operations applied to physical qubits. For example, for octagonal hyperbolic Floquet quantum error-correcting codes the distance scales logarithmically with the number of physical qubits. For example, in the case of a 64 physical qubit octagonal hyperbolic Floquet quantum error-correcting code, the minimum weight of all logical operations is four. This minimum weight can serve as a good proxy for the distance of the code (which can therefore be understood to be four). An additional set of logical operations for the example hyperbolic Floquet quantum error-correcting code may be provided by performing one or more Dehn twists. Dehn twists for hyperbolic quantum code are described, for example, in a document titled "Universal logical gates with constant overhead: instantaneous Dehn twists for hyperbolic quantum codes"by Lavasani, Zhu, and Barkeshli published in the journal Quantum, volume 3 (2019). A Dehn twist comprises selecting a closed, non-contractible path across the lattice. A Dehn twist further comprises selectively cutting a plurality of edges along the closed, non-contractible path. A Dehn twist further comprises selectively re-connecting the plurality of cut edges in a different configuration. The selective cutting and reconnecting is based on the topological structure of the lattice. As the topological structure of a hyperbolic Floquet quantum error correcting code may determine the distance of the code, a limit may be placed on the error-correcting capability of these codes. A semi-hyperbolic code may be generated from a hyperbolic code via an interpolation process or a fine-graining procedure. A semi-hyperbolic code generated in this way may result in a code with improved distance. A fine-graining procedure may comprise adding to the hyperbolic tiling one or more tiles which tile a non-hyperbolic lattice (e.g., a polygon tiling a Euclidean lattice), and thereby adding planar patches to the tiling. For example, adding to the one or more octagons of the (original) hyperbolic lattice an (additional) one or more hexagonal tiles. A method to perform the fine-graining procedure for a region of the octagonal tiling such as illustrated in Figure 6A is described with reference to Figure 6D. In Figure 6D, fine-graining level one (f=l) illustrates three octagonal tiles of the original hyperbolic lattice with the octagonal type labelled. The dashed lines in Figure 6D illustrates the dual of the octagonal lattice. In the dual lattice, a vertex is located on the face of each tile of the initial (or original) lattice, and an edge is then drawn between each vertex of the dual lattice. As a result, qubits that are on vertices in the original lattice are represented by triangles in the dual lattice. The fine-graining procedure comprises further triangulating each of these triangles, so that each triangle in the dual graph is replaced with a triangle-bounded interior-triangular lattice of size f. This corresponds to adding hexagonal (planar) tiles to hyperbolic octagonal tiling. The level of fine-graining can be increased by increasing f. Figure 6D also illustrates fine-graining levels f=2 and f=3. The semi-hyperbolic lattice, in which hexagon tiles have been added to the octagonal tiling, is obtained by taking the dual of this fine-grained lattice. As illustrated in Figure 6D, the type of tile of each tile in the lattice obtained via the fine-graining procedure may change to accommodate the additional faces in the lattice. The tile type of each tile in the lattice obtained via the fine-graining procedure may be determined in the same way as for the original hyperbolic lattice. With reference to Figure 7, an example network element 780 of a distributed quantum computing system 700, such as example system 100 illustrated in Figure 1, is described. The network element 780 is configured to perform a method to implement a sequence of operations at one or more quantum devices 702, 704 of the example system 700. Quantum devices many include quantum processing units (including, for example, a plurality of qubits) and / or quantum networking units as decribed herein. The example system 700 illustrated in Figure 7 is similar to the example system 100 illustrated in Figure 1. The system 700 comprises a plurality of quantum processing units 702-1, 702-2, 702-3 ..., 702-n. The system 700 further comprises a plurality of quantum networking units 704-1, 704-2, 704-3, ..., 704-n. Each of the plurality of quantum networking units 704-1, 704-2, 704-3, ..., 704-n is each optically coupled with one of the quantum processing units 702-1, 702-2, 702-3 ..., 702-n. The optical coupling of quantum processing units 702 and quantum networking units 704 are the same as illustrated in Figure 1. The quantum processing units 702 are described above with reference to Figures 1 and 2. The quantum networking units are described above with reference to Figures 1 and 3. In some implementations (not illustrated in Figure 7), one or more quantum processing units 102 may be optically coupled to one quantum networking unit 104. The system 700 further comprises a plurality of entanglement generation units 706-1, 706-2, 706-3, ..., 706-n. Each of the networking units 704-1, 704-2, 704-3, ..., 704-n are optically coupled to a plurality of the entanglement generation units 706-1, 706-2, 706-3, ..., 706-n. As in the example system 100 illustrated in Figure 1, the specific coupling between the networking units 704 and the entanglement generation units 706 is illustrated as optical coupling region 710. The entanglement generation units 706 are described above with reference to Figures 1 and 4. The optical coupling between the quantum processing units 702, the quantum networking units 704, and the entanglement generation units 706 may be via integrated photonic chips, fibre-optic cables, optical waveguides, and / or over free-space. The system 700 further comprises a control system 708. The control system 708 may comprise one or more control units and may further comprise of be in communication with conventional (e.g. classical) computing resources. The control units may comprise: one or more dedicated field-programmable gate arrays (FPGAs), and / or one or more application-specific integrated circuit (ASICs). The control system 708 is coupled to network element 780. The control system 708 is configured to communicate, via a coupling, with the network element 780. The communication of the control system 708 with the network element 780 is configured to send data to and receive data from the network element 780. Network element 780 is coupled to each of: the quantum processing units 702-1, 702-2, 702-3, ..., 702-n, the quantum networking units 704-1, 704-2, 704-3, ..., 704-n, and each of the entanglement generation units 706-1, 706-2, 706-3, ..., 706-n. The network element is configured to communicate, via a coupling, with each of the units 702, 704, 706. The communication of the network element 780 with each unit 102, 104, 106, is configured to send data to the unit and receive data from the unit. The data sent by the control system 708 and / or network element 780 may comprise instructions to control the operation of one or more units of example system 700 and / or configuration parameters for one or more units of example system 700. The data received by the control system 708 and / or network element 780 may comprise the operational state of one or more units of example system 700 and / or outcomes of the operations performed by one or more units. The coupling between the control system 708 and the network element 780, and the network element and each of: of the quantum processing units 702, the quantum networking units 704, and the entanglement generation units 706 may be: electrical (e.g., an electrical conductor), optical (e.g., a fibre optic cable or integrated photonic chip), microwave (e.g., a waveguide), and / or any other type of electro-magnetic coupling. The network element comprises a memory configured to store data sent and / or received from the control system and / or any of the units 702, 704 of the system 700 The physical arrangement of each of the quantum processing units 702, quantum networking units 704, and entanglement generation units 106 may be configured to distribute the example system 700 over a region. In some implementations, the physical arrangement of each of the units 702, 704, 706, 708, may be balanced such that distances between coupled units is equal. In some implementations not illustrated in Figure 7, each entanglement generation unit 706 may be integrated within a quantum networking unit 704. For example, quantum networking unit 704-1 may comprise entanglement generation unit 706-1. In Figure 7, the number of quantum processing units 702, quantum networking units 704, and entanglement generation units 706 is illustrated as equal. In other implementations, the number of quantum processing units 702, quantum networking units 704, and entanglement generation units 706 may be different to each other. In some implementations, each of the quantum processing units 702, quantum networking units 704, and entanglement generation units 706 may be identical to each of the others in the plurality. In other implementations, a plurality of the quantum processing units 702, quantum networking units 704, and / or entanglement generation units 706 may be different to others in the plurality. The network element 780 is configured to perform a method to implement a sequence of operations at one or more quantum devices 702, 704 of the example system 700. With reference to Figure 8, an example method 800 for implementing a sequence of operations at one or more quantum devices 702, 704 of the example system 700 is described. The method carried out by the network element 780 comprises receiving 802 data comprising a plurality of measurement event sequences and a plurality of quantum operation sequences operations (e.g., single-qubit quantum gates, two-qubit quantum gates, measurement of qubits). Each measurement event sequence is associated with one of the quantum operation sequences. The network element 780 is configured to receive the data comprising a plurality of measurement event sequences and a plurality of quantum operation sequences from a control system 708. The method 800 carried out by the network element 780 further comprises receiving 804 a plurality of measurement outcomes. The plurality of measurement outcomes comprise measurements performed by or relating to one or more quantum devices. In some examples, the measurements may comprise measurements of the state of one or more qubits. The one or more quantum devices comprises one or more quantum processing units 702 and / or one or more quantum networking units 704 and / or one or more entanglement generation units 706. The measurementsmay be performed on one or more qubits of the one or more quantum processing units 702, and / or one or more Bell state measurement performed by one or more entanglement generation units. Measurements which are performed on a plurality of qubits of a plurality of quantum processing units 702 are performed with the use of entanglement generated between qubits of the quantum processing units 702 by the quantum networking units 704 and the entanglement generation units 706. For example, a measurement of a qubit of quantum processing unit 702-1 and a qubit of quantum processing unit 702-3 may be performed using entanglement generated between qubits of the quantum processing units 702-1 and 702-3; the entanglement is generated via the quantum networking units 704-1 and 704-3, and a quantum entanglement unit 706. The method 800 carried out by network element 780 also comprises determining 806 whether the plurality of measurement outcomes corresponds to one of the measurement event sequences. The method 800 further comprises, in response to determining that the plurality of measurement outcomes corresponds to one of the measurement event sequences, sending 808, to the one or more devices, the quantum operation sequence associated with determined measurement event sequence. A challenge associated with the control of quantum computing systems may be calculating sequences of quantum operations corresponding to a given quantum circuit, particularly when the sequence of quantum operations depends on the outcome of a measurement. The complexity of such a computational task can increase when scaling the system to larger sizes and increasing the number of qubits, and therefore introduce significant operational costs, such as time delays. Given that qubit implementations may be unstable, with limited operational lifetimes and with errors from environmental noise accumulating overtime, delays in implementing the sequence of quantum operations can impact the operational performance of quantum computing systems. Advantageously, the method described herein may reduce a time delay between obtaining measurement outcomes and performing the associated sequence of quantum operations. The method may therefore optimise the use of quantum resources. In some implementations, the plurality of measurement outcomes may further comprise measurements performed in relation to one or more additional quantum devices 702, 704. The measurements performed in relation to one or more additional quantum processing units 702 may be received from one or more additional network elements 780. In distributed quantum systems, the units of the quantum system 700 may be distributed over a region, which may introduce additional time delays in communications between units of the quantum system 700. The method 800 described herein may reduce the time delays by distributing a number of additional network elements over the distributed quantum system. In some implementations, the network element 780 may further comprise a snoop filter, which is configured to selectively receive measurements from the one or more additional network elements 780. Advantageously, the selective nature of the snoop filters may reduce bandwidth usage and therefore may further reduce time delays. In some implementations, the method may also comprise determining whether the received plurality of measurement outcomes is incompatible with any of the measurement event sequences. In response to determining that the received plurality of measurement outcomes is incompatible with any of the measurement event sequences, the method further comprises removing data comprising the measurement event sequences that are incompatible with the plurality of measurement outcomes and data comprising the quantum operation sequences associated with such measurement event sequences. Advantageously, by selectively removing data of incompatible measurement events sequences and measurement outcomes, the allocation and usage of a memory of network element 708 may be optimised. In some implementations, the method may further comprise, in response to determining that the plurality of measurement outcomes does not correspond to one of the measurement sequences, sending a request for update data. The request comprises the plurality of measurement outcomes and is sent to a control system 708. In some implementations, the method may also comprise receiving update data comprising updates to one or more of the measurement event sequences and one or more of the plurality of quantum operation sequences. The update data may be received from the control system 708. In some implementations, the method may further comprise receiving a clock signal. Determining whether the plurality of measurement outcomes correspond to one of the plurality of measurement event sequence may be based on the clock signal. The clock signal may be received from the control system 708, and / or any other unit 702, 704, 706 of the system 700. Advantageously, the clock signal may be used to infer if measurement outcomes correspond to one of the measurement event sequences, and thereby may reduce the amount of metadata required in order to determine if there is a correspondence. This method may therefore reduce the latency of communication between units of the distributed quantum system and so may improve the use of quantum resources. In some implementations, the measurements performed by the quantum processing units 102 are configured to detect errors as part of a quantum error correcting code. In some implementations, each of the plurality of measurement events identify a detectable error of the quantum error-correcting code. In some implementations, the associated sequence of quantum operations are configured to correct the detectable error. Advantageously, the method described herein may allow quantum operations which correct errors to be applied more quickly after obtaining measurement outcomes which detect errors. This method may therefore improve the performance of the quantum error-correcting code and so more effectively reduce errors during a quantum information processing task. In some implementations, the quantum error-correcting code may be a low-density parity-check quantum error correcting code. In some implementations, the quantum error-correcting code may be a hyperbolic or semi-hyperbolic quantum errorcorrecting code. In some implementations, the quantum error-correcting code may be a Floquet quantum error-correcting code. For example, the error-correcting code may be the octagonal hyperbolic Floquet quantum error-correcting code described with reference to Figures 6A, 6B, and 6C. With reference to Figure 9, an example of a variable switching system 900 is described. The variable switching system may be used as part of a distributed quantum computing system, for example as part of optical coupling region 110 of example system 100 illustrated in Figure 1. Alternatively, the variable switching system may standalone from and be used independently of a distributed quantum system. The example variable switching system 900 is a system for coupling a plurality of optical sources to one or more output pairs. The example variable switching system 900 comprises a first switching layer 902. The first switching layer 902 receives the optical signals from the optical sources. The first switching layer 902 is configured to selectively couple the optical sources to a plurality of intermediate outputs. As illustrated in Figure 9, the first switching layer 902 comprises a plurality of optical switches 902-1, 902-2, 903-3, and 904-4. The first switching layer 902 may comprise any number of optical switches. For example, the first switching layer may comprise 20 optical switches. In Figure 9, each optical switch 902-1, 902-2, 903-3, and 904-4 of the first switching layer 902 is configured to receive as input optical signals from one optical source. In other implementations, each optical switch may be configured to receive optical signals from more than one optical source. In some implementations, each optical switch 902-1, 902-2, 903-3, and 904-4 may be configured to receive optical signals from a different number of optical sources to each other. The selective coupling of the first switching layer 902 comprises at least a first configuration and a second configuration. The example variable switching system 900 further comprises an intermediate layer 904. The intermediate layer comprises a plurality of optical pathways coupled to the intermediate outputs of the first switching layer 902. In some implementations, the optical pathways comprises optical fibres. The optical pathways of the intermediate layer 904 illustrated in Figure 8 are one example of a configuration of the optical pathways. In other implementations, there may be a different configuration of the optical pathways. The example variable switching system 900 comprises a second switching layer 906. The second switching layer 906 is coupled to the plurality of optical pathways at a plurality of inputs. The second switching layer 806 is configured to selectively couple the plurality of inputs to one or more output pairs. In Figure 9, the second switching layer 906 comprises a plurality of optical switches 906-1, 906-2, 906-3, 906-4, 906-5, and 906-6. The second switching layer 906 may comprise any number of optical switches. For example, the second switching layer may comprise 30 optical switches. In some implementations, the number of optical switches in the second switching layer 906 is greater than the number of optical switches in the first switching layer 902. In some implementations, the number of optical switches in the second switching layer 906 is proportional to the number of optical switches in the first switching layer 902. In Figure 9, each optical 906-1, 906-2, 906-3, 906-4, 906-5, and 906-6 of the second switching layer 806 is coupled to two optical pathways, and therefore receives as input optical signals from two optical sources, as determined by the selective coupling of the first switching layer 902 and the optical pathways of the intermediate layer 904. In other implementations, each optical switch of the second switching layer 906 may be configured to couple to more than two optical pathways of the intermediate layer 904. In some implementations, each optical switch 902 may be configured to receive optical signals from a different number of optical sources to each other. The first switching layer 902 and the intermediate layer 904 of the example variable switching system 900 are configured such that couplings between the optical sources and the inputs of the second switching layer 906 are shuffled when the first switching layer is switched between the first configuration and the second configuration. In some implementations, such as illustrated in Figure 9, the couplings between the optical sources and the inputs of the second switching layer cross in the intermediate layer when the first switching layer is switched between the first configuration and the second configuration. Advantageously, the crossing of couplings may enable a more general set of connections between optical switches of the first and second switching layer, and therefore increase the connectivity. In some implementations, the plurality of optical pathways comprise optical fibres. Advantageously, the optical fibres may prevent unwanted coupling between the plurality of optical pathways (e.g., by shielding optical fibres) and thereby reduce the likelihood of error which may occur as a result. For example, a photon travelling in one optical fibre may be prevented from coupling to another optical fibre which crosses it in the intermediate layer, and therefore erroneous coupling may be mitigated. In some implementations, the variable switching system is used as part of a distributed quantum computing system, for example as part of optical coupling region 110 of example system 100 illustrated in Figure 1. In these implementations, the optical sources comprise one or more qubits 220, 222 of one or more quantum processing units 102. In these implementations, the first switching layer 902 of the variable switching system 900 is implemented as a plurality of quantum networking units 104. Each quantum networking unit 104 receives optical signals from one or more of the quantum processing units. For example, the optical sources may be qubit-photon interfaces 222 of quantum processing units 102, wherein each qubit-photon interfaces is configured to generate a photon. The photon generated is entangled with a quantum state of the qubit-photon interfaces. The optical switches 902-1 and 902-2 of the first switching layer 902 may optical switches 340-1 and 340-2 of quantum networking unit 104-1, the optical switch 902-3 of the first switching layer 902 may be optical switch 340-1 of quantum networking unit 104-2, and the optical switch 903-4 of the first switching layer 902 may be first optical switch 340-3 of quantum networking unit 104-3. In implementations in which the variable switching system is used as part of a distributed quantum computing system, for example as part of optical coupling region 110 of example system 100, the output pairs of the variable switching unit 900 may be coupled to one or more entanglement generation units 106. In some implementations, the quantum entanglement generation units 106 may be configured to generate quantum entanglement between optical signals by performing a Bell state measurement. For example, in the example variable switching system 900 illustrated in Figure 9, any two photons received at two different optical switches 902 of the first switching layer 902, can be selectively paired and output to the same entanglement generation unit, and therefore an entangled state between any pair of inputs can be generated. The variable switching system when used as part of an optical coupling region 110 of a distributed quantum system, such as example system 100, may provide advantages over examples in which the optical coupling region 110 is a fixed coupling network (e.g., a fixed network of optical fibres). Advantageously, the variable switching system may allow the network configuration to be selectively varied over a more general set of configurations. A more flexible network configuration may be particularly advantageous by enabling connections between quantum networking units 104, and therefore quantum processing units 102, to be modified. In implementation in which a quantum errorcorrecting code (e.g., topological code, or hyperbolic or semi-hyperbolic Floquet errorcorrecting code) is implemented, modifying connections between quantum processing units may allow one or more Dehn twists to be performed, and therefore perform one or more logical operations. Moreover, the implementation of many quantum error-correcting codes requires the generation of a complex structure of entanglement between a plurality of qubits of a plurality of quantum processing units 102. For example, expander graph states are one such entanglement structure, which are sparse (each qubit need only be entangled with a few other qubits, and so the graph has small degree) and well-connected (the graph of the entanglement structure has low diameter). The strong connectivity and complex network topology which can be created by the variable switching system may be used to generate an expander graph state, and therefore enable one to implement quantum error-correcting codes more easily. However, the coupling from the first switching layer to the intermediate layer and from the intermediate layer to the second switching layer may have an operational cost. In particular, the coupling may introduce additional losses (e.g., a higher rate of photon loss). An increase in losses may significantly affect the performance of the distributed quantum system, reducing the efficiency or accuracy of any simulations. Moreover, the additional losses may increase an error rate for generating entanglement between quantum processing units and for operations between quantum processing units. Quantum error-correcting codes are only able to detect and correct errors up to a certain point (e.g., as quantified by a threshold or distance). The increased error rate may therefore render the distributed quantum system unsuitable for implementing a quantum error-correcting code. In contrast, examples in which the optical coupling region 110 is a fixed coupling network the couplings may be engineered and optimised. For example, the optical coupling region may comprise a plurality of optical fibres, each of which may be balanced such that losses are minimised. The distance from each quantum processing unit 102 via a quantum networking unit 104 to an entanglement generation unit may also be made equal. The benefits and the drawbacks of the variable switching system as compared with a fixed coupling network must therefore be balanced. With reference to Figure 10 an example method 1000 for implementing a quantum error-correcting code in a quantum computing system is described. The quantum computing system may be a distributed quantum system, such as the example distributed quantum system illustrated in Figures 1-4. The quantum computing system comprises one or more distinct quantum processing units. Each of the quantum processing units comprise a plurality of qubits. The method 1000 comprises selecting 1002 a quantum error-correcting code having a multidimensional topology. In some implementations, the quantum error-correcting code may be selected from a family of quantum error correcting codes. For example, the selected quantum error correcting code may be a low-density parity check code. Optionally, the selected quantum error-correcting code may be a topological code or a sub-system code. Optionally, the selected quantum error-correcting code may be a hyperbolic or semi-hyperbolic quantum error correcting code. In some implementations, the selected quantum error-correcting code may be a Floquet quantum error-correcting code. For example, the selected quantum error correcting code may be a hyperbolic Floquet quantum error-correcting code, such as described with reference to Figures 6A, 6B, and 6C. In the case of the octagonal hyperbolic Floquet quantum error-correcting code, the multidimensional topology results from the periodic boundary conditions of the hyperbolic lattice. The method further comprises dividing 1004 the topology into a plurality of tiles. Each tile has one or more connections with one or more other tiles. The method further comprises associating 1006 each tile with one or more of the quantum processing units. The method comprises implementing 1008 connections between tiles by entangling the quantum states of pairs of selected qubits in different quantum processing units. For example, in the case of an octagonal hyperbolic Floquet quantum error-correcting code described with reference to Figures 6A, 6B, and 6C, a plurality of octagons of the hyperbolic lattice may form one tile. Connections between tiles may therefore be the set of edges which connect the plurality of octagons of each tile to the plurality of octagons of other tiles. Entangling the quantum states of a pair of selected qubits comprises controlling one or more switches to define a communications path between the selected qubits and an entanglement generator and receiving signals from the selected qubits at the entanglement generator. Entangling the quantum states further comprises processing the signals at the entanglement generator to create quantum entanglement between the signals. For example, in the example system 100, the selective coupling of one or more quantum networking units 104 and the optical coupling region 110 may define the communication paths between qubits of one or more quantum processing units 102 and an entanglement generation unit 106. The entanglement generation unit 106 which receives the signals via the communication path may be configured to create the entanglement as described with reference to Figure 4. The method 1000 further comprises applying 1010 the quantum error correcting code during a quantum operation. With reference to Figure 11, an example method 1100 for implementing quantum error correction in a quantum computing system is described. The quantum computing system comprises one or more physically distinct qubit arrays (e.g., one or more quantum processing units 102 of example system 100). The quantum computing system may be a distributed quantum system, such as the example distributed quantum system illustrated in Figures 1-4. The method 1100 comprises selecting 1102 an error correcting code having a defined topology. The method 1100 further comprises dividing 1104 the topology into a plurality of tiles. Each tile has one or more connections with one or more other tiles. Dividing the topology is designed to minimise the number of connection with other tiles. For example, when the selected error-correcting code is a hyperbolic Floquet quantum error-correcting code, each tile may be a section of the hyperbolic lattice, and connections between tiles may be a set of edges connecting each section of the hyperbolic lattice to other sections. In some implementations, the method of selecting an error correcting code may be performed as described above with reference to Figure 5. In some implementations, a fine-graining procedure (described above with reference to Figures 6A, 6B, 6C) may be applied to the selected error-correcting code. The fine-graining procedure may make connection within tiles and / or between tiles more planar and the number of connections may be reduced. The method 1100 further comprises associating 1106 each tile with one or more of the qubit arrays. The method 1100 also comprises implementing 1108 the connections between the tiles. Implementing connections between the tiles comprises entangling the quantum states of qubits in each array. The method 1100 further comprises applying 1110 the quantum error correcting code during a quantum operation. With reference to Figure 12, an example method 1200 for designing a quantum computing system is described. The quantum computing system may be a distributed quantum system, such as the example distributed quantum system illustrated in Figures 1-4. The quantum computing system may be a distributed quantum system with one or more network elements, such as described with reference to Figures 7 and 8. The example method 1200 comprises receiving 1202 one or more parameter defining a desired mode of operation of the quantum computing system. The example method 1200 further comprises identifying 1204 a quantum error-correcting code suitable for implementing the desired mode of operation. The process of identifying a suitable quantum error-correcting code may be performed as described above with reference to Figure 5. Moreover, examples of desired modes of operation of the quantum computing system are described above with reference to Figure 5. For example, a desired mode of operation may comprise a quantum information processing task to be performed using the quantum computing system, and / or a configuration of the quantum system which minimises an error parameter. The method 1200 further comprises deriving 1206 a topology associated with the error correcting code. The method 1200 comprises dividing 1208 the topology into a set of tiles. Each tile comprises a subsection of the topology and is connected to one or more further tiles by one or more connections. For example, when the selected error-correcting code is a hyperbolic Floquet quantum error-correcting code, each tile may be a section of the hyperbolic lattice, and connections between a tile and further tiles are the set of edges connecting each section of the hyperbolic lattice to other sections. The method 1200 also comprises identifying 1210 properties of one or more quantum processing units configured to implement each tile, each quantum processing unit comprising a plurality of qubits. For example, the properties of one or more quantum processing units may comprise: a number of qubits in each quantum processing unit, a geometric arrangement of coupling between the qubits of each quantum processing unit (e.g., qubits are arranged in a 2D lattice with coupling between neighbours), and / or any other suitable configuration data (e.g., as described with reference to Figure 5). The method also comprises identifying 1212 required network pathways to implement connections between tiles by entanglement of signals generated by qubits of each tile. For example, in the case of example system 100 described with reference to Figure 1, identifying required network pathways may comprise identifying couplings between one or more quantum processing units 102 and one or more quantum networking units 104, identifying a configuration of coupling provided by the optical coupling region 110 (e.g., a configuration for a fixed coupling network, or a configuration for variable coupling network), and / or identifying coupling between one or more quantum networking units 104 and one or more quantum entanglement units 106. With reference to Figure 13, an example method 1300 for operating the distributed quantum system with a fixed coupling network to entangle qubits of quantum processing units is described. The method may be performed by a control system of the distributed quantum system (e.g., control system 108 of example system 100). In some implementations, the method may be performed by one or more networking elements as described with reference to Figure 7. The example method 1300 comprises determining 1302 a plurality of qubits to entangle based on a topology of a quantum error-correcting code implemented on a distributed quantum system (e.g., example system 100). The distributed quantum system comprises a plurality of quantum processing units, each comprising a plurality of qubits. A plurality of the quantum processing units comprise the plurality of qubits to entangle. In some implementations, determining the plurality of qubits to entangle may be based on a quantum information processing task to be performed. For example, according to the topology of the error correcting code (e.g., a hyperbolic Floquet error correcting-code) a qubit in quantum processing unit 102-1 of example system 100 and a qubit in quantum processing unit 102-3 may need to be in an entangled state. The plurality of qubits are determined to be qubits to be entangled. The example method 1300 comprises determining 1304 how to connect the plurality of quantum processing units which comprise the plurality of qubits to entangle to a plurality of entanglement generation units 106 via the fixed coupling network. Determining how to connect the quantum processing units and the entanglement generation units via the fixed coupling network may be based on configuration data of the distributed quantum system, as described with reference to Figure 5. The example method 1300 further comprises sending 1306 control commands to one or more quantum networking units 104 to control the selective couplings, based on the connections determined in method step 1304. The quantum networking units 104, via the selective coupling, couple the plurality of qubits to entangle of the plurality of quantum processing units 102 to a plurality of inputs of the plurality of entanglement generation units 106 using one or more predefined network pathways of the fixed a fixed coupling network. With reference to Figure 14, an example method 1400 for operating the distributed quantum system with a variable coupling network to entangle qubits of quantum processing unit is described. The method may be performed by a control system of the distributed quantum system (e.g., control system 108 of example system 100). In some implementations, the method may be performed by one or more networking elements as described with reference to Figure 7. The example method 1400 comprises determining 1402 a plurality of qubits to entangle based on a topology of a quantum error-correcting code implemented on a distributed quantum system (e.g., example system 100). The distributed quantum system comprises a plurality of quantum processing units 102, each comprising a plurality of qubits. A plurality of the quantum processing units comprise the plurality of qubits to entangle. In some implementations, determining the plurality of qubits to entangle may be based on a quantum information processing task to be performed. For example, according to the topology of the error correcting code (e.g., a hyperbolic Floquet error correcting-code) a qubit in quantum processing unit 102-2 of example system 100 and a qubit in quantum processing unit 102-3 may need to be in an entangled state. The plurality of qubits are determined to be qubits to be entangled. The example method 1400 comprises determining 1404 how to connect the plurality of quantum processing units which comprise the plurality of qubits to entangle to a plurality of entanglement generation units 106 via the variable coupling network. Determining how to connect the quantum processing units and the entanglement generation units via the variable coupling network may be based on configuration data of the distributed quantum system, as described with reference to Figure 5. The example method 1400 further comprises sending 1406 control commands to one or more quantum networking units 104 to control the selective couplings, based on the connections determined in method step 1404. The example method also comprises sending 1406 control commands to the variable coupling network select one or more variable network pathways between outputs of the quantum networking units 104 and the inputs of the entanglement units 106. The quantum networking units 104, via the selective coupling, and the variable network pathways of the variable coupling network couple the plurality of qubits to entangle of the plurality of quantum processing units 102 to a plurality of inputs of the plurality of entanglement generation units 106. With reference to Figure 15, an example method 1500 for operating a variable switching system (such as the example system illustrated with reference to Figure 9), which, which couples a plurality of optical sources to one or more output pairs, is described. The method may be performed by a control system. The method 1500 comprises determining 1502 a plurality of optical sources to couple to one or more output pairs. Determining may be based on data received by the control system and / or stored in a memory of the control system, and / or may be determined based on a control algorithm. The method 1500 further comprises determining 1504 a coupling configuration of the selective coupling of the first switching layer and a selective coupling of the second switching layer. Determining may be based on configuration data of the system. The configuration data may comprise the selective coupling provided by the first switching layer between the plurality of optical sources and a plurality of intermediate outputs, and a first and second configuration of the selective coupling. The configuration data may also comprise the configuration of a plurality optical fibres of an intermediate layer, which couple to the intermediate outputs of the first switching layer and inputs of the second switching layer. The configuration data may further comprise the selective coupling provided by a plurality of optical pathways of the second switching layer between a plurality of inputs to one or more output pairs. The configuration data may therefore comprise a complete set of coupling provided by the system and / or a shuffle of the coupling between the optical sources and the inputs of the second switching layer which may be provided by switching the first switching layer between the first and second configuration of the selective coupling. The method 1500 also comprises sending 1506 control commands to the first switching layer and the second switching layer, based on the configuration determined in method step 1504 of method 1500. It will be appreciated that the disclosure is not limited to the described examples, and all changes and / or equivalents or replacements thereto also belong to the scope of the disclosure. The same or similar reference denotations may be used to refer to the same or similar elements throughout the specification and the drawings. As used herein, the terms "have," "may have," "include," or "may include" a feature (e.g., a number, function, operation, or a component such as a part) indicate the existence of the feature and do not exclude the existence of other features. Throughout the description and claims of this specification, the words "comprise" and "contain" and variations of them mean "including but not limited to", and they are not intended to (and do not) exclude other components, integers or steps. Throughout the description and claims of this specification, the singular encompasses the plural unless the context otherwise requires. In particular, where the indefinite article is used, the specification is to be understood as contemplating plurality as well as singularity, unless the context requires otherwise. As used herein, the terms "A or B," "at least one of A and / or B," or "one or more of A and / or B" may include all possible combinations of A and B. For example, "A or B," "at least one of A and B," "at least one of A or B" may indicate all of (1) including at least one A, (2) including at least one B, or (3) including at least one A and at least one B. As used herein, the terms "first", "second" and "third" may modify various components and / or features regardless of importance and do not limit the components and / or features. These terms are only used to distinguish one component and / or feature from another. For example, reference to a first component and / or feature and a second component and / or feature may indicate different components and / or features from each other regardless of the order or importance of the components and / or features. It will be understood that when an element (e.g., a first element) is referred to as being (physically, operatively or communicatively) "coupled with / to," or "connected with / to" another element (e.g., a second element), it can be coupled or connected with / to the other element directly or via a third element. The terms as used herein are provided merely to describe some embodiments thereof, but not to limit the scope of other embodiments of the disclosure. It is to be understood that the singular forms "a," "’an," and "the" include plural references unless the context clearly dictates otherwise. All terms including technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiments of the disclosure belong. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealised or overly formal sense unless expressly so defined herein.

Claims

1. A distributed quantum computing system comprising:a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits;a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to couple each qubit to a fixed number of outputs;a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units;a variable coupling network comprising variable network pathways between outputs of the quantum networking units and the inputs of the entanglement units; anda control unit configured to control the plurality of the quantum networking units and the variable coupling network to entangle qubits of the quantum computing units according to a topology associated with an error correcting code.

2. The system of claim 1, wherein the predefined network pathways comprise a plurality of optical fibres.

3. The system of any preceding claim, wherein the quantum error-correcting code is a low-density parity-check quantum error-correcting code.

4. The system of claim 3, wherein the quantum error-correcting code is a hyperbolic quantum error-correcting code or a semi-hyperbolic quantum errorcorrecting code.

5. The system of any preceding claim, wherein the quantum error-correcting code is a Floquet quantum error-correcting code.

6. The system of any preceding claim, wherein the topology associated with the error correcting code comprises a plurality of tiles having connections formed therebetween, and the control unit is configured to control the plurality of the quantum networking units such that entanglement between signals from the quantum networking units is effective to implement the connections.

7. The system of claim 6, wherein the topology is divided into a plurality of tiles according to a process designed to minimise a number of connections between tiles.

8. The system of any preceding claim, wherein the plurality of qubits of each quantum computing unit are trapped ion qubits, cold atom qubits, neutral atom qubits, photon qubits, spin qubits and / or superconducting qubits.

9. The system of any preceding claim, wherein the plurality of quantum networking units comprises a plurality of photonic integrated chips configured to selectively couple each qubit to the fixed number of outputs.

10. The system of any preceding claim, wherein the signals comprise photons.

11. The system of claim 10, wherein the photons have a wavelength in a telecommunications wavelength range.

12. The system of claim 10 or 11, wherein single photons within each signal are entangled with a qubit of a quantum computing unit.

13. The system of any one of the preceding claims, wherein processing the signals at the entanglement generator to create quantum entanglement between the signals comprises performing a Bell state measurement.

14. The system of claim 13, wherein the entanglement units each comprise a Bellstate measurement unit.

15. The system of claim 14, wherein the Bell-state measurement unit comprises: a beam-splitter; andfirst and second photon detectors coupled to the beam splitter.

16. The system of any preceding claim, wherein the variable network pathways comprise:an intermediate layer comprising a plurality of optical pathways coupled to outputs of the quantum processing units; anda switching layer coupled to a plurality of optical pathways and configured to selectively couple the optical pathways to inputs of the entanglement units.

17. The system of claim 16, wherein at least one of the optical pathways in the intermediate layer cross.

18. The system of claim 17, wherein the quantum networking units are configured to operate in at least a first configuration and a second configuration, andwherein the crossing of the optical pathways in the intermediate layer is such that couplings between the quantum processing units and the inputs of the switching layer are shuffled when the quantum networking units are switched between the first configuration and the second configuration.

19. The system of any preceding claim, wherein the distributed quantum computing system is a quantum memory.

20. A method for implementing quantum error correction within a distributed quantum computing system comprising:a plurality of quantum computing units, each of the quantum computing units comprising a plurality of qubits;a plurality of quantum networking units, each quantum networking unit coupled to qubits on one or more of the quantum computing units and being configured to couple each qubit to a fixed number of outputs;a plurality of entanglement units, each entanglement unit having a plurality of inputs to receive signals from the quantum networking units;a variable coupling network comprising variable network pathways between outputs of the quantum networking units and the inputs of the entanglement units; anda control system,the method comprising controlling, by the control system, the plurality of the quantum networking units and the variable coupling network to entangle qubits of the quantum computing units according to a topology associated with an error correcting code.

21. The method of claim 20, wherein the plurality of quantum networking units comprises a plurality of photonic integrated chips configured to selectively couple each qubit to the fixed number of outputs.

22. The method of claim 20 or claim 21, wherein the predefined network pathways comprise a plurality of optical fibres.

23. The method of any of claims 20 to 22 wherein the quantum error-correcting code is a low-density parity-check quantum error-correcting code.

24. The method of claim 23, wherein the quantum error-correcting code is a hyperbolic quantum error-correcting code or a semi-hyperbolic quantum errorcorrecting code.

25. The method of any of claims 20 to 24, wherein the quantum error-correcting code is a Floquet quantum error-correcting code.

26. The method of any of claims 20 to 25, wherein the topology associated with the error correcting code comprises a plurality of tiles having connections formed therebetween, and the method further comprises controlling, by the control system, the plurality of the quantum networking units such that entanglement between signals from the quantum networking units implements the connections.

27. The method of claim 26, wherein the topology is divided into a plurality of tiles according to a process designed to minimise a number of connections between tiles.

28. The method of claims 20 to 27, wherein the signals comprise photons.

29. The method of claim 28, wherein the photons have a wavelength in atelecommunications wavelength range.

30. The method of claim 28 or 29, wherein single photons within each signal are entangled with a qubit of a quantum computing unit.

31. The method of any of claims 20 to 30, wherein processing the signals at the entanglement generator to create quantum entanglement between the signals comprises performing a Bell state measurement.

32. The method of claim 31, wherein the entanglement units each comprise a Bellstate measurement unit.

33. The method of claim 32, wherein the Bell-state measurement unit comprises: a beam-splitter; and first and second photon detectors coupled to the beam splitter.

34. The method of any of claims 20 to 33, wherein the variable network pathways comprise:an intermediate layer comprising a plurality of optical pathways coupled to outputs of the quantum processing units; anda switching layer coupled to a plurality of optical pathways and configured to selectively couple the optical pathways to inputs of the entanglement units.

535. The method of claim 34, wherein at least one of the optical pathways in the intermediate layer cross.

36. The method of claim 35, wherein the quantum networking units are configured 10 to operate in at least a first configuration and a second configuration, andwherein the crossing of the optical pathways in the intermediate layer is such that couplings between the quantum processing units and the inputs of the switching layer are shuffled when the quantum networking units are switched between the first configuration and the second configuration.1537. The method of any of claims 20 to 36, wherein the distributed quantum computing system is a quantum memory.A

Citation Information

Patent Citations

  • Optical quantum networks with connectivity based on regular graphs

    WO2024065032A1