Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

OQD

Program the world's first open-source, full-stack quantum computer.

doc PyPI Version ci versions black License: Apache 2.0

About

Open Quantum Design (OQD) is a non-profit foundation supporting the development of full-stack, open-source quantum computers. OQD's current designs are based on laser-cooled trapped ion quantum computing hardware, including real-time control, backend and frontend software. This documentation covers the software components of the OQD stack, including the core programming interfaces, classical emulation backends, compiler infrastructure, and cloud server containers.

equilux is the top-level package to access the full OQD software suite in a single place.

What's here

Quick start

Installation

To install equilux and the suite Open Quantum Design software tools,

pip install equilux

Alternatively, the repository can be cloned and installed locally,

git clone https://github.com/OpenQuantumDesign/equilux
pip install .

The stack

Open Quantum Design's quantum computing stack can be interfaced at different levels, including the digital, analog, and atomic layers.

block-beta
 columns 3
 block:Interface
 columns 1
 InterfaceTitle("<i><b>Interfaces</b><i/>")
 InterfaceDigital["<b>Digital Interface</b>\nQuantum circuits with discrete gates"]
 space
 InterfaceAnalog["<b>Analog Interface</b>\n Continuous-time evolution with Hamiltonians"]
 space
 InterfaceAtomic["<b>Atomic Interface</b>\nLight-matter interactions between lasers and ions"]
 space
 end
 block:IR
 columns 1
 IRTitle("<i><b>IRs</b><i/>")
 IRDigital["Quantum circuit IR\nopenQASM, LLVM+QIR"]
 space
 IRAnalog["openQSIM"]
 space
 IRAtomic["openAPL"]
 space
 end
 block:Emulator
 columns 1
 EmulatorsTitle("<i><b>Classical Emulators</b><i/>")
 EmulatorDigital["Pennylane, Qiskit"]
 space
 EmulatorAnalog["QuTiP, QuantumOptics.jl"]
 space
 EmulatorAtomic["TrICal, QuantumIon.jl"]
 space
 end
 space
 block:RealTime
 columns 1
 RealTimeTitle("<i><b>Real-Time</b><i/>")
 space
 RTSoftware["ARTIQ, DAX, OQDAX"]
 space
 RTGateware["Sinara Real-Time Control"]
 space
 RTHardware["Lasers, Modulators, Photodetection, Ion Trap"]
 space
 RTApparatus["Trapped-Ion QPU (<sup>171</sup>Yb<sup>+</sup>, <sup>133</sup>Ba<sup>+</sup>)"]
 space
 end
 space
 InterfaceDigital --> IRDigital
 InterfaceAnalog --> IRAnalog
 InterfaceAtomic --> IRAtomic
 IRDigital --> IRAnalog
 IRAnalog --> IRAtomic
 IRDigital --> EmulatorDigital
 IRAnalog --> EmulatorAnalog
 IRAtomic --> EmulatorAtomic
 IRAtomic --> RealTimeTitle
 RTSoftware --> RTGateware
 RTGateware --> RTHardware
 RTHardware --> RTApparatus
 classDef title fill:#23627D,stroke:#141414,color:#FFFFFF;
 classDef digital fill:#c3e1ee,stroke:#141414,color:#141414;
 classDef analog fill:#afd7e9,stroke:#141414,color:#141414;
 classDef atomic fill:#9ccee3,stroke:#141414,color:#141414;
 classDef realtime fill:#88c4dd,stroke:#141414,color:#141414;
 classDef highlight fill:#F19D19,stroke:#141414,color:#141414,stroke-dasharray: 5 5;
 classDef normal fill:#fcebcf,stroke:#141414,color:#141414;
 class InterfaceTitle,IRTitle,EmulatorsTitle,RealTimeTitle title
 class InterfaceDigital,IRDigital,EmulatorDigital digital
 class InterfaceAnalog,IRAnalog,EmulatorAnalog analog
 class InterfaceAtomic,IRAtomic,EmulatorAtomic atomic
 class RTSoftware,RTGateware,RTHardware,RTApparatus realtime
 class Emulator normal
 class IR normal
 class RealTime normal
 class Interface normal
Loading

Software

OQD's software stack components include Python interfaces at the digital, analog, and atomic layers, classical emulators, compiler infrastructure, and cloud server components.

Hardware

Planned supported hardware backends include the Bloodstone processor based on171Yb+ ions and the Beryl processor based on133Ba+ ions.

Getting started

Below is a short example of how to use the analog interface to specify, serialize, and simulate an analog quantum program - here, a single-qubit Rabi-flopping experiment.

from oqd_core.interface.analog.operator import PauliZ, PauliX
from oqd_core.interface.analog.operation import AnalogCircuit, AnalogGate
from oqd_core.backend.metric import Expectation
from oqd_core.backend.task import Task, TaskArgsAnalog
from oqd_analog_emulator.qutip_backend import QutipBackend
X = PauliX()
Z = PauliZ()
Hx = AnalogGate(hamiltonian=X)
circuit = AnalogCircuit()
circuit.evolve(duration=10, gate=Hx)
circuit.measure()
args = TaskArgsAnalog(
 n_shots=100,
 fock_cutoff=4,
 metrics={"Z": Expectation(operator=Z)},
 dt=1e-3,
)
task = Task(program=circuit, args=args)
backend = QutipBackend()
results = backend.run(task=task)

Documentation

Documentation can be found at docs.openquantumdesign.org.

About

Program the world's first open-source quantum computer

Resources

Code of conduct

Contributing

Stars

54 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

AltStyle によって変換されたページ (->オリジナル) /