Skip to content

Draft: Resolve "Add Qiskit and Quantify Integration"

Ksenia Shagalov requested to merge 329-add-qiskit-and-quantify-integration into main

Description

Qiskit and Quantify are two software frameworks with similar purposes, but different capabilities. Both are open-source frameworks and describe quantum algorithms at different abstraction levels (gate-level, pulse-level, instrument level). Qiskit is used to execute quantum algorithms and Quantify is used to perform calibration and characterization experiments. The goal is to integrate both frameworks so that an algorithm that is defined in Qiskit can be translated into a Quantify schedule. Then a user can write their experiment in Qiskit and it will be reliably translated by the module (within the operations supported by the translation layer) to native Quantify to be executed in hardware backends supported by Quantify. Closes #329.

Current state

The interface consists of:

  1. Quantify backend class for Qiskit: defines the gates that are available in Quantify and the run function.
  2. The following functions:
  • Translation of a Qiskit circuit into a list of operations.
  • Execution of the Quantify schedule using the operation list.
  • Analysis of the results for up to two qubits.

The prototypes include:

  1. Characterization and calibration experiments: T1, Ramsey, Echo.
  2. Variational quantum algorithm that finds a state generated by a random rotation.
  3. Variational quantum eigensolver that attempts to find the ground energy of H2 (doesn't achieve very good results).

The tests are mainly based on the prototypes but there are also some additional ones that test different functionalities.

Future work:

  1. Add Qiskit-Pulse operations.
  2. Add two-qubit gates other than CZ.
  3. Extend the implementation for more qubits.

Merge checklist

See also merge request guidelines

  • Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer.
  • New code is covered by unit tests (or N/A).
  • New code is documented and docstrings use numpydoc format (or N/A).
  • New functionality: considered making private instead of extending public API (or N/A).
  • Public API changed: added @deprecated (or N/A).
  • Tested on hardware (or N/A).
  • CHANGELOG.md and AUTHORS.md have been updated (or N/A).
  • Windows tests in CI pipeline pass (manually triggered by maintainers before merging).

For reference, the issues workflow is described in the contribution guidelines.

Edited by Ksenia Shagalov

Merge request reports