Welcome to the documentation for Deltaflow-on-ARTIQ. If you use Deltaflow, we would be ever so thankful if you could give us some feedback via a few minute survey.
What is Deltaflow and Deltaflow-on-ARTIQ?¶
Deltaflow sees the quantum computer as a distributed control system with CPUs, FPGAs, analogue units, and qubits working under tight latency constraints. The Deltaflow language lets the user define a graph of nodes representing the different elements of computation and interconnect them. The Deltaflow simulator and runtime take care of mapping a Deltaflow graph onto simulated or real hardware respectively. A Deltaflow programme is portable across qubit technologies via a Hardware Abstraction Layer, a minimal set of instructions through which a Deltaflow programme controls hardware.
Deltaflow-on-ARTIQ is our first step towards achieving our vision of Deltaflow. It lets you write Deltaflow programmes, run them on a hardware simulator and test them on an emulated backend of the popular ARTIQ control system. You can find the corresponding github repo here.
Please find below an architectural diagram that addresses all components individually and provide their relations:
Deltalanguage (The Deltaflow language) allows users to specify compute nodes and data channels facilitating communications. It’s a hosted domain-specific language based on Python: the nodes are filled with code corresponding to the hardware that is represented (currently Python for CPU nodes, Migen for FPGA nodes).
Deltasimulator (The Deltaflow simulator) is a tool for running Deltaflow programs on simulated hardware.
Deltaruntime (The Deltaflow runtime) is a tool for running Deltaflow programs on real hardware. It will be added in the future releases of Deltaflow.
Back-ends are specific real-time data acquisition frameworks that facilitate interaction of hardware at the lowest level.
Various applications are portable on Deltaflow and are provided in this release for illustration purposes.
How can I get started?¶
We recommend to follow these steps:
Please read our Introduction to understand better why we are building Deltaflow, how it can help you, and how you can use it.
Get familiar with Deltalanguage by following its manual. The main steps include:
Going through the interactive tutorials which are aimed on fresh users.
[Optional] Afterwards you can get a flavour of more serious algorithms by working through some of the examples.
Go through Rabi Example to learn about Deltaflow-on-ARTIQ by doing the same Rabi Oscillations Demo in 3 different ways:
Via debugging toolchain of Deltalanguage
Via the ARTIQ Emulator backend
If you are interested in using Deltaflow for experimental control, look at our micromotion and sine wave generation examples.