Extending C++ for Heterogeneous Quantum-Classical Computing

Alexander McCaskey, Thien Nguyen, Anthony Santana, Daniel Claudino, Tyler Kharazi, Hal Finkel

Research output: Contribution to journalArticlepeer-review

12 Scopus citations

Abstract

We present qcor-a language extension to C++ and compiler implementation that enables heterogeneous quantum-classical programming, compilation, and execution in a single-source context. Our work provides a first-of-its-kind C++ compiler enabling high-level quantum kernel (function) expression in a quantum-language agnostic manner, as well as a hardware-agnostic, retargetable compiler workflow targeting a number of physical and virtual quantum computing backends. qcor leverages novel Clang plugin interfaces and builds upon the XACC system-level quantum programming framework to provide a state-of-the-art integration mechanism for quantum-classical compilation that leverages the best from the community at-large. qcor translates quantum kernels ultimately to the XACC intermediate representation, and provides user-extensible hooks for quantum compilation routines like circuit optimization, analysis, and placement. This work details the overall architecture and compiler workflow for qcor, and provides a number of illuminating programming examples demonstrating its utility for near-term variational tasks, quantum algorithm expression, and feed-forward error correction schemes.

Original languageEnglish
Article number6
JournalACM Transactions on Quantum Computing
Volume2
Issue number2
DOIs
StatePublished - Jul 2021

Keywords

  • Quantum computing
  • compilers
  • domain specific languages
  • quantum programming

Fingerprint

Dive into the research topics of 'Extending C++ for Heterogeneous Quantum-Classical Computing'. Together they form a unique fingerprint.

Cite this