Skip to content

Commit

Permalink
Remove cutQC (#605)
Browse files Browse the repository at this point in the history
* Remove cutQC first pass

* Round 2

* typo

* Don't use macos for docker workflow

* Remove modules from package docs

* Remove cutqc reference in workflow

* Release note

* Remove cutqc authors from citation

* Remove cplex from package

* Update releasenotes/notes/remove-cutqc-fe70369bdbe65668.yaml

Co-authored-by: Jim Garrison <garrison@ibm.com>

* Remove notebook flags business

* Update INSTALL.rst

Co-authored-by: Jim Garrison <garrison@ibm.com>

* Update pyproject.toml

Co-authored-by: Jim Garrison <garrison@ibm.com>

* Remove Mac chip discussion from INSTALL

---------

Co-authored-by: Jim Garrison <garrison@ibm.com>
  • Loading branch information
caleb-johnson and garrison committed May 24, 2024
1 parent 68a722b commit 608f9ec
Show file tree
Hide file tree
Showing 25 changed files with 21 additions and 5,136 deletions.
7 changes: 1 addition & 6 deletions .github/workflows/test_latest_versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,4 @@ jobs:
run: |
pver=${{ matrix.python-version }}
tox -epy${pver/./} -- --run-slow
notebook_flags=""
if [ "$pver" = "3.12" ]; then
echo Skipping tutorials that require cplex
notebook_flags="${notebook_flags} --ignore=docs/circuit_cutting/cutqc/tutorials/tutorial_1_automatic_cut_finding.ipynb"
fi
tox -epy${pver/./}-notebook -- ${notebook_flags}
tox -epy${pver/./}-notebook
3 changes: 0 additions & 3 deletions CITATION.bib
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@ @misc{circuit-knitting-toolbox
and Edwin Pednault
and C. D. Pemmaraju
and Pedro Rivero
and Seetharami Seelam
and Ibrahim Shehzad
and Dharmashankar Subramanian
and Wei Tang
and Stefan Woerner
},
title = {{Circuit Knitting Toolbox}},
Expand Down
53 changes: 6 additions & 47 deletions INSTALL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,8 @@ packages. There are three primary ways to do this:
- :ref:`Option 2`
- :ref:`Option 3`

CutQC users should consult the :ref:`Platform Support` section to determine
which installation option is appropriate for them. Users who wish to run within a
containerized environment may skip the pre-installation and move straight
to :ref:`Option 3`.

.. note::

If a user wishes to use the circuit cutting toolbox to
automatically find optimized wire cuts for a circuit too large for
the free version of CPLEX, they should acquire a license and install
the `full
version <https://www.ibm.com/products/ilog-cplex-optimization-studio>`__.
Users who wish to run within a containerized environment may skip the
pre-installation and move straight to :ref:`Option 3`.

Pre-Installation
^^^^^^^^^^^^^^^^
Expand Down Expand Up @@ -61,14 +51,6 @@ Upgrade pip and install the CKT package.
pip install --upgrade pip
pip install circuit-knitting-toolbox
Users intending to use the automatic cut finding functionality in the CutQC package should install the ``cplex`` optional dependency.

Adjust the options below to suit your needs.

.. code:: sh
pip install 'circuit-knitting-toolbox[cplex]'
.. _Option 2:

Expand All @@ -94,13 +76,11 @@ The next step is to install CKT to the virtual environment. If you plan on runni
notebook dependencies in order to run all the visualizations in the notebooks.
If you plan on developing in the repository, you may want to install the ``dev`` dependencies.

Users intending to use the automatic cut finding functionality in the CutQC package should install the ``cplex`` optional dependency.

Adjust the options below to suit your needs.

.. code:: sh
pip install tox notebook -e '.[notebook-dependencies,dev,cplex]'
pip install tox notebook -e '.[notebook-dependencies,dev]'
If you installed the notebook dependencies, you can get started with CKT by running the notebooks in the docs.

Expand Down Expand Up @@ -166,27 +146,6 @@ the only one that will be saved across different container runs.
Platform Support
^^^^^^^^^^^^^^^^

Users of Mac M1 or M2 chips and Windows users may have issues running certain components of CKT.

If you are using Linux or macOS with an Intel chip (i.e., not the
new M1 or M2 chips), everything should work natively, so we
recommend either :ref:`Option 1` or :ref:`Option 2`.

All users on ARM chips, as well as all Windows users, may have to
take care when installing the toolbox, depending on which tools they
intend to use.

- The automatic wire cut search in the ``cutqc`` package depends
on CPLEX, which is only available on Intel chips and is not yet available
for Python 3.12.

In each case, one method that is guaranteed to work is to :ref:`use
the toolbox within Docker <Option 3>`. Other methods include:

- Users on Apple's M series of chips may wish to install an x86
version of Python. For instance, `conda
<https://docs.conda.io/en/latest/miniconda.html>`__ users can run
``CONDA_SUBDIR=osx-64 conda create -n x86_venv python=3`` to
create a virtual environment that uses Python compiled for the x86
instruction set. No matter the installation method, there is a
performance cost due to emulation.
We expect this package to work on `any platform supported by Qiskit <https://docs.quantum.ibm.com/start/install#operating-system-support>`__. If
you are experiencing issues running the software on your device, you
may consider :ref:`using the toolbox within Docker <Option 3>`.
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
Circuit Knitting is the process of decomposing a larger quantum circuit into many smaller circuits, executing those circuits on a quantum processor(s), and then knitting their results into a reconstruction of the original circuit's outcome.

The toolbox currently contains the following tools:
- Circuit Cutting [[1-6]](#references)
- Circuit Cutting [[1-5]](#references)

For a more detailed discussion on circuit cutting, check out our [technical guide](https://qiskit-extensions.github.io/circuit-knitting-toolbox/circuit_cutting/explanation/index.html#overview-of-circuit-cutting).
----------------------------------------------------------------------------------------------------
Expand All @@ -45,10 +45,10 @@ All CKT documentation is available at https://qiskit-extensions.github.io/circui

### Installation

We encourage installing CKT via ``pip``, when possible. Users intending to use the automatic cut finding functionality in the ``CutQC`` package should install the ``cplex`` optional dependency.
We encourage installing CKT via ``pip``, when possible.

```bash
pip install 'circuit-knitting-toolbox[cplex]'
pip install 'circuit-knitting-toolbox'
```

For information on installing from source, running CKT in a container, and platform support, refer to the [installation instructions](https://qiskit-extensions.github.io/circuit-knitting-toolbox/install.html) in the CKT documentation.
Expand All @@ -71,9 +71,7 @@ This project is meant to evolve rapidly and, as such, does not follow [Qiskit's

[4] Lukas Brenner, Christophe Piveteau, David Sutter, [Optimal wire cutting with classical communication](https://arxiv.org/abs/2302.03366), arXiv:2302.03366 [quant-ph].

[5] Wei Tang, Teague Tomesh, Martin Suchara, Jeffrey Larson, Margaret Martonosi, [CutQC: Using small quantum computers for large quantum circuit evaluations](https://doi.org/10.1145/3445814.3446758), Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems. pp. 473 (2021).

[6] K. Temme, S. Bravyi, and J. M. Gambetta, [Error mitigation for short-depth quantum circuits](https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.119.180509), Physical Review Letters, 119(18), (2017).
[5] K. Temme, S. Bravyi, and J. M. Gambetta, [Error mitigation for short-depth quantum circuits](https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.119.180509), Physical Review Letters, 119(18), (2017).

----------------------------------------------------------------------------------------------------

Expand Down
15 changes: 0 additions & 15 deletions circuit_knitting/cutting/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,21 +76,6 @@
qpd.generate_qpd_weights
qpd.decompose_qpd_instructions
qpd.qpdbasis_from_instruction
CutQC
=====
.. autosummary::
:toctree: ../stubs/
:nosignatures:
cutqc.run_subcircuit_instances
cutqc.generate_summation_terms
cutqc.build
cutqc.verify
cutqc.cut_circuit_wires
cutqc.evaluate_subcircuits
cutqc.reconstruct_full_distribution
"""

from .cutting_decomposition import (
Expand Down
45 changes: 0 additions & 45 deletions circuit_knitting/cutting/cutqc/__init__.py

This file was deleted.

Loading

0 comments on commit 608f9ec

Please sign in to comment.