Skip to main content

A timeline debugger for the qiskit transpiler

Project description

Qiskit Trebugger

A new take on debuggers for quantum transpilers. This repository presents a debugger for the qiskit transpiler in the form of a light weight jupyter widget. Built as a project for the Qiskit Advocate Mentorship Program, Fall 2021.

Installation

  1. To install the debugger using pip (a python package manager), use -
pip install qiskit-trebugger
  • PIP will handle the dependencies required for the package automatically and would install the latest version.
  • Currently the project is hosted as a test package and would be hosted on the real index when tests are added.
  1. To directly install via github follow the steps below after using git clone:
git clone https://github.com/TheGupta2012/qiskit-timeline-debugger.git
  • Make sure python3 and pip are installed in your system
  • Use pip install -r requirements to install the debugger dependencies
  • Note : with this method, you can only use the debugger in the installed directory

Usage Instructions

  • After installing the package, import the Debugger instance from qiskit_trebugger package.
  • To run the debugger, simply replace the call to transpile() method of the qiskit module with debug() method of your debugger instance. For an example -
from qiskit.test.mock import FakeCasablanca
from qiskit.circuit.random import random_circuit 
from qiskit_trebugger import Debugger
import warnings

warnings.simplefilter('ignore')
debugger = Debugger()
backend = FakeCasablanca()
circuit = random_circuit(num_qubits = 4, depth = 5 , seed = 44)
# replace transpile call 
debugger.debug(circuit, optimization_level = 2, backend = backend, initial_layout = list(range(4)))
  • On calling the debug method, a new jupyter widget is displayed providing a complete summary and details of the transpilation process for circuits of < 2000 depth
  • With an easy to use and responsive interface, users can quickly see which transpiler passes ran when, how they changed the quantum circuit and what exactly changed.

Feature Highlights

1. Circuit Evolution

  • See your circuit changing while going through the transpilation process for a target quantum processor.
  • A new custom feature enabling visual diffs for quantum circuits, allows you to see what exactly changed in your circuit using the matplotlib drawer of the qiskit module.

Example

  • Circuit 1
  • Circuit 2

2. Circuit statistics

  • Allows users to quickly scan through how the major properties of a circuit transform during each transpilation pass.
  • Helps to quickly isolate the passes which were responsible for the major changes in the resultant circuit.

3. Transpiler Logs and Property sets

  • Easily parse actions of the transpiler with logs emitted by each of its constituent passes and changes to the property set during transpilation
  • Every log record is color coded according to the level of severity i.e. DEBUG, INFO, WARNING and CRITICAL.

Demonstration and Blog

Contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qiskit_trebugger-1.0.1.tar.gz (55.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qiskit_trebugger-1.0.1-py3-none-any.whl (54.0 kB view details)

Uploaded Python 3

File details

Details for the file qiskit_trebugger-1.0.1.tar.gz.

File metadata

  • Download URL: qiskit_trebugger-1.0.1.tar.gz
  • Upload date:
  • Size: 55.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for qiskit_trebugger-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d1a913c7655e6c30a10263d7a42b875e928d0557bb38ff6938b4b9db5869ac79
MD5 8bc7843221b4949afac7302f58a076fb
BLAKE2b-256 5b383f438131f2909dfb5eb35bf0c1bf5bd8eaffafa6b794c30df8231ffeb71f

See more details on using hashes here.

File details

Details for the file qiskit_trebugger-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for qiskit_trebugger-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dc9bca821cfdc89c3d0086e6d07270d819152748dd7161ad6b7393034680740f
MD5 8bbf27f7911ea7f0db3b548a228cf231
BLAKE2b-256 179159f06a4f504467e1c8f90ac1dcd41010f5a0cd3cdaf33fb5934e4aa85fc2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page