JuliaCon 2023

Qurt.jl: Compiling Quantum Circuits (in Julia)
2023-07-26 , 32-G449 (Kiva)

I'll present Qurt.jl, a package for creating and transforming quantum circuits. I'll do a
brief demo, including the obligatory, slick, macro-enabled builder interface. I'll show how
it is faster than some Python-Rust and C++ implementations.


I'll talk about the design in light of the goals and requirements for Qurt. These include:
It should be easy to round-trip translate between Qurt and Qiskit, and to reproduce Qiskit
functionality, including compiling circuits. The interfaces should be straightforward and
employ familiar concepts, similar to Qiskit or Circ. It should be easy to quickly define
and use a custom gate. It should be designed with minimal barriers to achieving high
performance; for instance runtime dispatch must be avoided when handling circuit elements;
Data should be, to the extent possible, stored in vectors of bitstypes. Obviously some of
these goals are in conflict, so trade-offs will be adjusted as Qurt evolves. In fact,
another goal of Qurt is to explore data structures dictated by these trade-offs and use
this exploration to inform implementations in static languages where experimentation is
expensive.