QUA is an intuitive pulse-level programming language used with Quantum Machines’ OPX hybrid controllers. It is the core of QM’s comprehensive hybrid development platform – which also features automated calibrations via QUAlibrate, and access to a vast library of control applications. QUA seamlessly merges quantum and classical programming. With QUA, quantum builders can easily program complex algorithms that were previously impossible, reaching milestones faster and accelerating the path to breakthrough results.

Comprehensive

QUA unifies quantum operations at the pulse level with classical resources, including Turing-complete computations and rich control flow (if/else, for, while loops and swith cahse, using real-time parameters). Unlike conventional programming models that separate quantum and classical code, QUA integrates both into a single, frictionless framework. This removes latency, optimizes performance, and enables real-time quantum-classical interaction – from simple pulse generation to the most advanced adaptive circuit execution. QUA further provides advanced upper-layer interfaces, ensuring smooth integration with industry-leading frameworks such as Qiskit, OpenQASM3 for circuit-level coding, and CUDA-Q (HPC-QC application development).

#2-point-Ramsey Real-Time Frequency Tracking

def 2-point-Ramsey_Tracking(): 
    with for_(n, 0, n < 2**any_power_of_two, n + 1): 
        assign(f, f_res_corr + plus_delta) 
        update_frequency('qubit', f)   		 
        Ramsey(t_fixed)
        assign(state_1, I > ge_threshold)
        assign(state_1_avg, state_1_avg_avg + (Cast.to_fixed(state_1) >> any_power_of_two))
        assign(f, f_res_corr + minus_delta) 
        update_frequency('qubit', f)   		 
        Ramsey(t_fixed)
        assign(state_2, I > ge_threshold)
        assign(state_2_avg, state_2_avg_avg + (Cast.to_fixed(state_2) >> any_power_of_two))
    corr = calculate_freq_correction(state_1_avg, state_2_avg)  

with program() as any_quantum_sequence:
    with for_(loops, 0, loops_max, loops + 1):
        2-point-Ramsey_Tracking()
        your_advanced_sequence()   

Expressive

Think it, do it! With Its Python-like sentex, program protocol as easily as writing pseudocode. Describe any quantum experiment natively, from active reset to AI-based multi-qubit calibration and quantum error correction.

#2D Ramsey map

def Ramsey(t):
    play('pi_half', 'qubit')
    wait(t)
    play('pi_half', 'qubit')
    align('qubit', 'resonator')
    measure('qubit', 'resonator', …, I)

with program() as 2D_Ramsey_Map:
    with for_(n, 0, n < N_avg, n + 1):
        with for_(f, f_min, f < f_max, f + df):
            update_frequency('qubit', f)
            with for_(t, t_min, t < t_max, D + dt):
                Ramsey(t)
                active_reset('qubit')

Scalable

QUA scales with your roadmap, allowing you to code a thousands of qubits as easily as a single one. No overhead, no rewriting codes – just seamless scaling by OPX controllers and updating your system configuration file. The QUA compiler will orchestrate all controllers as one, handling synchronization and data sharing.

#Multi-qubit Active Reset and Ramsey

for qubit_n in qubits:
    measure(qubit_n, 'resonator', …, I)
    play('pi', qubit_n, condition = I > threshold)

    with for_(t, t_min, t < t_max, D + dt):
        Ramsey(qubit_n, t)
align()

Open Source

QUA is an open-source software. It is used by thousands of users in academia, national labs, and commercial companies worldwide, for quantum research and development. Explore QUA’s capabilities and get started with real-world examples on GitHub.

Benefits

Hybrid Programming

QUA unifies quantum operations at the pulse level with classical resources, including Turing-complete computations and rich control flow.

Executed in Real Time

Hybrid Processing Unit (HPU) executes QUA programs in quantum coherence time cale, ensuring optimal performance with precise synchronization and minimal latency.

Open Source

Researchers and developers from hundreds of academic labs and commercial companies around the world share code, reduce development time, and make the new possible.

Parametric Pulse Programming

No long upload times and only minimal memory usage. Pulses are generated and manipulated on the fly.

A Vast Library of control applications

From characterization to QEC and real-time Bayesian estimation, numerus out-of-the-box workflows.

All Common Qubit Modalities

Superconducting, quantum dots, defect centers and optically addressable qubits.

What’s Possible with QUA?

Quantum Sensing

Quantum Technologies
Research & Development

Quantum Communication

Quantum Computing

Hybrid Quantum –
Classical Algorithmics

Quantum Computing

Quantum Firmware Development

QUA Community and Libraries

SWAP Spectroscopy Improved
with Predistortion Digital Filters

Qubit Frequency Tracking

Performed in the Lab of Prof. David Schuster in the University of Chicago.

Optimized Readout with Optimal Weights.

Cryoscope

Performed in the Lab of Prof. Sorin Paraoanu in Aalto University.

DRAG Pulse Calibration

2D Atom Sorting

Performed in the Lab of Prof. Mark Saffman in the University of Wisconsin-Madison.

High resolution time-tagging

Performed in the lab of Prof. Faraon at Caltech.

CPMG

Performed in the lab of Prof. Sekhar at Darmouth College.

Fast 2D scans using a spiral pattern

Performed in the lab of Prof. Natalia Ares in the University of Oxford.

Find additional QUA examples from labs across the world in the QUA GitHub zone, Access Here >>
Talk to us to learn how QUA can help you, for a QUA demo and for access to the growing QUA community.