@@ -20,21 +20,98 @@ This documentation is still under development, we welcome contributions! © Open
2020This repository contains the software needed to submit jobs to a remote, cloud server for classical simulations of quantum programs.
2121In addition, it provides a Docker script to self-host a simulation server of the OQD emulator backends.
2222
23- ## Installation
24- To install locally for development or launching a Docker container server:
2523
26- ``` bash
27- git clone https://github.com/OpenQuantumDesign/oqd-cloud.git
28- pip install .
29- ```
3024
31- To start the simulation server, ensure Docker is installed on the machine, navigate to the ` docker ` folder, and run,
32- ``` bash
33- docker compose up
34- ```
25+ ``` mermaid
26+ block-beta
27+ columns 3
28+
29+ block:Interface
30+ columns 1
31+ InterfaceTitle("<i><b>Interfaces</b><i/>")
32+ InterfaceDigital["<b>Digital Interface</b>\nQuantum circuits with discrete gates"]
33+ space
34+ InterfaceAnalog["<b>Analog Interface</b>\n Continuous-time evolution with Hamiltonians"]
35+ space
36+ InterfaceAtomic["<b>Atomic Interface</b>\nLight-matter interactions between lasers and ions"]
37+ space
38+ end
39+
40+ block:IR
41+ columns 1
42+ IRTitle("<i><b>IRs</b><i/>")
43+ IRDigital["Quantum circuit IR\nopenQASM, LLVM+QIR"]
44+ space
45+ IRAnalog["openQSIM"]
46+ space
47+ IRAtomic["openAPL"]
48+ space
49+ end
50+
51+ block:Emulator
52+ columns 1
53+ EmulatorsTitle("<i><b>Classical Emulators</b><i/>")
54+
55+ EmulatorDigital["Pennylane, Qiskit"]
56+ space
57+ EmulatorAnalog["QuTiP, QuantumOptics.jl"]
58+ space
59+ EmulatorAtomic["TrICal, QuantumIon.jl"]
60+ space
61+ end
62+
63+ space
64+ block:RealTime
65+ columns 1
66+ RealTimeTitle("<i><b>Real-Time</b><i/>")
67+ space
68+ RTSoftware["ARTIQ, DAX, OQDAX"]
69+ space
70+ RTGateware["Sinara Real-Time Control"]
71+ space
72+ RTHardware["Lasers, Modulators, Photodetection, Ion Trap"]
73+ space
74+ RTApparatus["Trapped-Ion QPU (<sup>171</sup>Yt<sup>+</sup>, <sup>133</sup>Ba<sup>+</sup>)"]
75+ space
76+ end
77+ space
78+
79+ InterfaceDigital --> IRDigital
80+ InterfaceAnalog --> IRAnalog
81+ InterfaceAtomic --> IRAtomic
82+
83+ IRDigital --> IRAnalog
84+ IRAnalog --> IRAtomic
85+
86+ IRDigital --> EmulatorDigital
87+ IRAnalog --> EmulatorAnalog
88+ IRAtomic --> EmulatorAtomic
89+
90+ IRAtomic --> RealTimeTitle
91+
92+ RTSoftware --> RTGateware
93+ RTGateware --> RTHardware
94+ RTHardware --> RTApparatus
95+
96+ classDef title fill:#d6d4d4,stroke:#333;
97+ classDef digital fill:#E7E08B,stroke:#333;
98+ classDef analog fill:#E4E9B2,stroke:#333;
99+ classDef atomic fill:#D2E4C4,stroke:#333;
100+ classDef realtime fill:#B5CBB7,stroke:#333;
35101
36- To serve the documentation,
37- ``` bash
38- pip install .[docs]
39- mkdocs serve
102+ classDef highlight fill:#f2bbbb,stroke:#333,stroke-dasharray: 5 5;
103+
104+ class InterfaceTitle,IRTitle,EmulatorsTitle,RealTimeTitle title
105+ class InterfaceDigital,IRDigital,EmulatorDigital digital
106+ class InterfaceAnalog,IRAnalog,EmulatorAnalog analog
107+ class InterfaceAtomic,IRAtomic,EmulatorAtomic atomic
108+ class RTSoftware,RTGateware,RTHardware,RTApparatus realtime
109+
110+ class Emulator highlight
40111```
112+ The tools in this repository allow for self-hosting a server to run
113+ quantum programs on classical emulators, highlighted in the stack diagram in red.
114+ A client can specify a quantum program, submit it as a job to the self-hosted server,
115+ and retrieve the emulation results.
116+
117+ Currently, the analog layer backend is supported.
0 commit comments