Photonic Quantum Computing
Most quantum computers use superconducting qubits (IBM, Google) or trapped ions (IonQ, Quantinuum). Xanadu takes a fundamentally different approach: encoding quantum information in light.
Advantages of photonic quantum computing:
- Operates at room temperature (no dilution refrigerator)
- Photons naturally resist some forms of decoherence
- Integrates with existing fiber optic infrastructure for quantum networking
- Gaussian operations are deterministic; the challenge is non-Gaussian gates
Gaussian Boson Sampling (GBS)
GBS is the photonic equivalent of random circuit sampling. The task: send squeezed light through a programmable optical interferometer and record the photon-number detection outcomes.
Simulating the GBS output distribution classically requires computing the permanent of a large matrix - a problem believed to be classically hard (#P-hard). As the number of modes and photons grows, classical simulation time grows exponentially.
Borealis
Borealis has 216 programmable squeezed modes connected by a series of beamsplitters and delay loops. The programmable elements are:
- Squeezing amplitude per mode
- Beamsplitter angle at each coupling
- Phase shift per loop
This gives full programmability - unlike earlier GBS demonstrations that used fixed optical circuits.
import strawberryfields as sf
from strawberryfields import ops
import numpy as np
# A simplified 4-mode GBS program
prog = sf.Program(4)
with prog.context as q:
# Squeezed inputs
ops.Sgate(1.0) | q[0]
ops.Sgate(1.0) | q[1]
ops.Sgate(1.0) | q[2]
ops.Sgate(1.0) | q[3]
# Interferometer: beamsplitters + phase shifts
ops.BSgate(np.pi/4, 0) | (q[0], q[1])
ops.BSgate(np.pi/4, 0) | (q[2], q[3])
ops.BSgate(np.pi/4, 0) | (q[1], q[2])
ops.Rgate(np.pi/3) | q[0]
# Photon-number detection
ops.MeasureFock() | q
# Run on Xanadu Cloud hardware
eng = sf.RemoteEngine("borealis")
result = eng.run(prog, shots=1000)
print(result.samples)
The Advantage Demonstration
The Nature paper measured Borealis running GBS with up to 219 photons detected across 216 modes. For a representative problem instance:
- Borealis: 36 microseconds per sample
- Best classical algorithm (Metropolis sampling): estimated 9000 years for equivalent problem
The comparison used state-of-the-art classical algorithms, not naive simulation. Xanadu and collaborators developed new classical GBS algorithms specifically to provide a rigorous baseline.
Applications of GBS
Beyond the demonstration, GBS has proposed applications:
Molecular vibronic spectra: The mathematical structure of GBS matches the Franck-Condon factors governing molecular vibrations. Xanadu’s team used GBS to simulate the vibronic spectrum of formic acid.
Graph problems: GBS samples from distributions over graph matchings, connecting to problems in graph theory, drug discovery, and network analysis.
Quantum machine learning: GBS output distributions can serve as features for kernel-based classification.
# Using GBS for molecular vibronic spectra
from strawberryfields.apps import vibronic
# Formic acid molecular data
freq, Udisplace, alpha = vibronic.sample.formic_acid_data()
# Generate GBS program for vibronic spectra
prog = vibronic.sample.gbs_params(freq, Udisplace, alpha, n_mean=2)
Accessing Borealis
Borealis is available via Xanadu Cloud using Strawberry Fields:
pip install strawberryfields
sf configure --token YOUR_API_TOKEN
eng = sf.RemoteEngine("borealis")
result = eng.run(prog, shots=100)
Academic access is available for researchers. The hardware is genuinely different from superconducting systems and offers unique access to continuous-variable quantum computing.
Learn more: Strawberry Fields Reference