Neutral-Atom QPUs — the Analog Quantum-Computing Mode
Neutral-atom machines are programmed in analog mode — analog
quantum computation, a real computational mode in which a time-dependent Rydberg Hamiltonian
drives the atoms; it is not a classical software simulator. Instead of a gate list you specify
that Hamiltonian and let the atoms evolve under it. The gate-based sample/observe
entry points do not apply here — you describe the evolution instead.
The analog model
You place atoms at sites in a register, then drive them with a global laser described by three
controls — Rabi amplitude Ω, phase φ, and detuning δ — each a function of time supplied by a
schedule. Nearby atoms interact through the Rydberg blockade, which is what makes the dynamics
non-trivial.
import qalgora
# Conceptual API only; not in the open reference implementation.
# Analog neutral-atom mode is a planned/spec interface.
# program = qalgora.analog.RydbergProgram(
# atom_sites=register, # QuEra Aquila — up to 256 atoms
# amplitude=omega,
# phase=phi,
# detuning=delta,
# schedule=schedule)
# result = qalgora.analog.evolve(program, target="quera")Available targets
| Target | Machine | Notes |
|---|---|---|
quera | Aquila | Up to 256 atoms; AWS Braket credentials; defaults to 100 shots. |
pasqal | FRESNEL / EMU_MPS / EMU_FREE | Cloud SDK token; auto-calibration under ~30 qubits. |
infleqtion | cq_sqale_qpu | Via Superstaq; method="dry-run" or "noise-sim". |
Credentials
Each vendor authenticates differently. Pasqal, for example, exchanges your login for a short-lived token that the target reads from the environment:
from pasqal_cloud import SDK
import os
sdk = SDK(username=os.environ.get("PASQAL_USERNAME"),
password=os.environ.get("PASQAL_PASSWORD"))
token = sdk.user_token()
os.environ["PASQAL_AUTH_TOKEN"] = str(token)
os.environ["PASQAL_PROJECT_ID"] = "your project id"
# Planned remote target — not runnable in the reference build:
# qalgora.set_target("pasqal", machine="FRESNEL")qalgora.sample(kernel) against a neutral-atom target will not work — these devices
evolve a Hamiltonian, so build a conceptual qalgora.analog.RydbergProgram +
schedule and call qalgora.analog.evolve. (Conceptual API only; not in the open
reference implementation.)
中性原子 QPU 的模拟量子计算模式
中性原子设备采用模拟(analog)模式编程——这是一种真实的
量子计算模式,由随时间变化的里德堡哈密顿量驱动原子演化,并非经典计算机的软件模拟。
你无需给出门序列,而是指定该哈密顿量,让原子在其作用下演化。基于门的
sample/observe 入口在此并不适用——你应改为描述演化过程。
模拟模型
你先将原子放置到寄存器中的各个位点,再用一束全局激光驱动它们,该激光由三个
控制量描述——拉比幅度 Ω、相位 φ 和失谐 δ——每个量都是随时间变化的函数,由
schedule 提供。相邻原子通过里德堡阻塞相互作用,这正是动力学变得
不平凡的根源。
import qalgora
# 仅为概念性 API 开放参考实现尚未包含。
# 中性原子模拟模式属规划/规范接口。
# program = qalgora.analog.RydbergProgram(
# atom_sites=register, # QuEra Aquila — 最多 256 个原子
# amplitude=omega,
# phase=phi,
# detuning=delta,
# schedule=schedule)
# result = qalgora.analog.evolve(program, target="quera")可用目标
| 目标 | 设备 | 说明 |
|---|---|---|
quera | Aquila | 最多 256 个原子;使用 AWS Braket 凭据;默认 100 次采样。 |
pasqal | FRESNEL / EMU_MPS / EMU_FREE | 使用云端 SDK 令牌;30 量子比特以下自动校准。 |
infleqtion | cq_sqale_qpu | 经由 Superstaq 接入;method="dry-run" 或 "noise-sim"。 |
凭据
各厂商的鉴权方式各不相同。以 Pasqal 为例,它会用你的登录信息换取一个短时效 令牌,目标从环境变量中读取该令牌:
from pasqal_cloud import SDK
import os
sdk = SDK(username=os.environ.get("PASQAL_USERNAME"),
password=os.environ.get("PASQAL_PASSWORD"))
token = sdk.user_token()
os.environ["PASQAL_AUTH_TOKEN"] = str(token)
os.environ["PASQAL_PROJECT_ID"] = "your project id"
# 规划中的远程目标 参考实现不可运行:
# qalgora.set_target("pasqal", machine="FRESNEL")qalgora.sample(kernel) 是无效的——这类设备
演化的是哈密顿量,因此应构建概念性的 qalgora.analog.RydbergProgram + schedule 并调用
qalgora.analog.evolve。(仅为概念性 API,开放参考实现尚未包含。)