IQM Pulla#

Pulla (pulse-level access) is a client-side Python library which enables the generation and execution of pulse-level jobs on an IQM quantum computer. Within the existing IQM QCCSW stack, Pulla is somewhere between circuit-level execution and EXA experiments.

An interactive user guide is available as a Jupyter notebook in the docs folder.

Installation#

Create and activate a virtual environment, and install Pulla with some extras:

$ uv pip install "iqm-pulla[notebook, qiskit, qir]"

The [notebook] option is to be able to run the example Jupyter notebooks:

$ jupyter-notebook

The [qiskit] option is to enable Qiskit-related features and utilities, like converting Qiskit circuits to Pulla circuits, or constructing a Qiskit-compatible compiler instance.

The [qir] option is to enable QIR support, e.g. the qir_to_pulla function.

Note

uv is highly recommended for practical Python environment and package management.

Documentation#

Documentation for the latest version is available online.

Testing#

If you want to run a particular notebook and see the output cells printed in the terminal, you can use nbconvert with jq (https://jqlang.github.io/jq/download/) like so:

jupyter nbconvert --to notebook --execute  docs/Quick\ Start.ipynb --stdout | jq -r '.cells[] | select(.outputs) | .outputs[] | select(.output_type == "stream") | .text[]'