Catalyst: a Python JIT compiler for auto-differentiable hybrid quantum programs
David Ittah, Ali Asadi, Erick Ochoa Lopez, Sergei Vladimirovich Mironov, Samuel Banning, Romain Moyard, Mai Jacob Peng, Josh Izaac · The Journal of Open Source Software · 2024
Catalyst is a software package for capturing Python-based hybrid quantum programs (that is, programs that contain both quantum and classical instructions), and just-in-time (JIT) compiling them down to an MLIR and LLVM representation and generating binary code.As a result, Catalyst enables the ability to rapidly prototype quantum algorithms in Python alongside efficient compilation, optimization, and execution of the program on classical and quantum accelerators.In addition, Catalyst allows for advanced quantum programming features essential for fault-tolerant hardware support and advanced algorithm design, such as mid-circuit measurement with arbitrary post-processing, support for classical control flow in and around quantum algorithms, built-in measurement statistics, and hardware-compatible automatic differentiation (AD).