Extending C++ for Heterogeneous Quantum-Classical Computing
arXiv:2010.03935
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.
References in corpus (14)
- Adam: A Method for Stochastic Optimization
- A variational eigenvalue solver on a quantum processor
- Surface codes: Towards practical large-scale quantum computation
- Hardware-efficient Variational Quantum Eigensolver for Small Molecules and Quantum Magnets
- An adaptive variational algorithm for exact molecular simulations on a quantum computer
- Quantum-Classical Computation of Schwinger Model Dynamics using Quantum Computers
- ProjectQ: An Open Source Software Framework for Quantum Computing
- Cloud Quantum Computing of an Atomic Nucleus
- Concrete Categorical Model of a Quantum Circuit Description Language with Measurement
- Efficient Algorithms for Maximum Likelihood Decoding in the Surface Code
- ScaffCC: Scalable Compilation and Analysis of Quantum Programs
- Mitiq: A software package for error mitigation on noisy quantum computers
- Generative model benchmarks for superconducting qubits
- QFAST: Quantum Synthesis Using a Hierarchical Continuous Circuit Space