qiskit-community / qiskit-hackathon-taiwan-20

32 stars 10 forks source link

Making Qiskit transpiler more powerful (Adding a new pass) #11

Closed itoko closed 3 years ago

itoko commented 3 years ago

Abstract

Qiskit (Terra) manages its transpilation (circuit to circuit transformation) processes as passes. The pass framework allows you to easily add a task you want to be done when transpiling. Let's come up with a useful (but currently missing) pass, implement it and push it to Qiskit.

Description

When you execute() a circuit, the circuit is always transpiled (transpile() is called) behind the scenes. Within the transpiration process, many passes are called and do their tasks.

Are passes currently available sufficient for transiling your circuits? If you think of any functionality to be added in transpiler, please implement it as a pass so that all Qiskit users can use it!

For example, how about a pass that removes unnecessary gates on qubits which are not measured without changing the measurement results? If you know any paper which proposes a good algorithm for optimizing a transpiler task, e.g. Layout Selection (Placement) or Qubit Routing (Swap Mapping), implementing them would be good. Those are just examples. Please implement a new pass you really need!

Members

Deliverable

A jupyter notebook to demonstrate the pass. (Draft a pull request to Terra if possible)

GitHub repo

A link to a repo.

aoowweenn commented 3 years ago

It is very important to design a good pass to improve the performance of quantum program. I just have a little bit studying about LLVM. Other from Openpulse, compiler is somehow my interest. What a pity that no member choose this topic. Hope we can have some cooperation after the camp.