Skip to content

EgrettaThula/qiskit-timeline-debugger

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

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.

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 import QuantumCircuit
from qiskit.test.mock import FakeCasablanca
from qiskit_trebugger import Debugger

debugger = Debugger()
backend = FakeCasablanca()
circuit = QuantumCircuit(3)
circuit.h(0)
circuit.cx(0,1)
circuit.cx(1,2)
circuit.measure_all()
# replace transpile call 
debugger.debug(circuit, backend = backend)
  • 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.

Demo Video

  • Please follow [this](to be added) link for a demonstration of our project.

Contributors

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 81.9%
  • Jupyter Notebook 18.1%