Distributed Algorithms
The Algorithms module provides three complete distributed quantum
algorithms that compose the remote gates defined in RemoteGates.
Bell-state entanglement generation
Cross-QPU Bell-state creation using a single noisy remote CNOT. This serves as the foundational benchmark: the measured Bell-state fidelity directly characterises channel quality as a function of fiber length and fiber type, reproducing Figure 5 of the paper.
Grover’s Search
A two-qubit Grover’s algorithm partitioned across two virtual QPUs.
Each QPU holds one processing qubit. The oracle applies a phase flip
via remote_cz; the diffusion operator uses remote_cx. For a
single marked state, one Grover iteration maximises the success
probability.
Qubit register layout (6 physical qubits):
q[0] = QPUA (processing qubit, QPU A)
q[1] = ENA (environment qubit, QPU A)
q[2] = CommA (communication qubit, QPU A)
q[3] = CommB (communication qubit, QPU B)
q[4] = ENB (environment qubit, QPU B)
q[5] = QPUB (processing qubit, QPU B)
from QdcEm.Algorithms import grover_2qubit_annotated_Distributed
qc = grover_2qubit_annotated_Distributed(
marked_states = ['11'],
kappa_Fiber = 0.05,
Steps = 2,
kappa_Transductor = 0.5,
)
Results are validated against published ion-trap experimental data in Section 2.C of the paper.
Quantum Fourier Transform (QFT)
A five-qubit QFT split across two virtual QPUs. QPU A holds two
processing qubits (QA1, QA2); QPU B holds three (QB1, QB2, QB3). Each
controlled-phase rotation that crosses the QPU boundary is implemented
as a noisy remote_cp call. Fidelity is evaluated via quantum state
tomography and compared against both the noiseless ideal and a
monolithic baseline.
To avoid the SWAP layer present in the standard monolithic circuit, the qubit order is rearranged so that QA2 (the most significant qubit) appears first in the circuit, eliminating the final reversal at no extra gate cost.
from QdcEm.Algorithms import qft_5qubit_annotated_Distributed
qc = qft_5qubit_annotated_Distributed(
Steps = 3,
kappa_Fiber = 0.04,
kappa_Transductor = 0.5,
)
Note
All three algorithms return an unmeasured QuantumCircuit. Add
measurement gates and submit to AerSimulator or a live backend
as shown in the Quickstart.