/CutQC

Primary LanguagePythonMIT LicenseMIT

CutQC

CutQC is the backend codes for the paper CutQC: using small quantum computers for large quantum circuit evaluations. CutQC cuts a large quantum circuits into smaller subcircuits and run on small quantum computers. By combining classical and quantum computation, CutQC significantly expands the computational reach beyond either platform alone.

Installation

Good news: due to popular feedback about the difficulty to install Intel One API, CutQC now runs on Numpy.

  1. Make a Python virtual environment:
conda create -n cutqc-env python=3
conda deactivate && conda activate cutqc-env
  1. CutQC uses the Gurobi solver. Install Gurobi and obtain a license. To install Gurobi for Python, follow the instructions. Here we copy paste the up-to-date command as of 05/10/2021 for convenience.
conda config --add channels https://conda.anaconda.org/gurobi
conda install gurobi
  1. Install required packages:
pip install numpy qiskit matplotlib pydot

Install the latest Qiskit helper functions.

pip install .

Example Code

For an example, run:

python example.py

Citing CutQC

If you use CutQC in your work, we would appreciate it if you cite our paper:

Tang, Wei, Teague Tomesh, Martin Suchara, Jeffrey Larson, and Margaret Martonosi. "CutQC: using small quantum computers for large quantum circuit evaluations." In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 473-486. 2021.

Questions

Please reach out to Wei Tang (weit@princeton.edu) for any questions and clarifications.

Coming soon

  • Multi-node classical post-processing tools for HPC clusters

TODO

  • Port to GPU