Welcome to the Ion(Q) Thruster project, a UnitaryHACK2024 challenge! The goal is to create a custom optimizer/transpiler in Qiskit for IonQ's trapped-ion quantum computers, and outperforms Qiskit's built-in optimization for native gates.
Develop a custom optimizer or transpiler that efficiently optimizes quantum circuits for IonQ's native gates. This optimizer should achieve better performance metrics, such as reduced gate count and circuit depth, compared to Qiskit's default optimizer.
To manage this project effectively, we recommend splitting it into smaller, manageable tasks:
Implement a custom optimizer for Qiskit to work with IonQ's backend. This task involves creating a new pass manager that integrates with Qiskit's transpiler framework and overrides the default optimization passes to apply custom optimizations for IonQ circuits.
Enhance the custom optimizer with specific optimizations for trapped-ion systems. This includes eliminating unnecessary gates, combining gates, and optimizing for IonQ's unique gate capabilities.
Benchmark the custom optimizer against Qiskit's default optimizer using random circuits. Measure and compare performance metrics such as gate count and circuit depth reduction.
Clone the Repository:
git clone https://github.com/ionq-samples/Ion-Q-Thruster.git
cd ion-q-thruster
Install Dependencies:
pip install -r requirements.txt
Run the Demo Notebook:
Open main.ipynb
in Jupyter Notebook and follow the steps to begin writing and testing your custom optimizer.
Ensure that PR descriptions and documentation are reviewed by team members for clarity and completeness.
While this project focuses on Qiskit, the custom optimizer can be potentially ported to other frameworks like Pennylane and Cirq.
For any questions or issues, please open an issue on GitHub or contact us on Discord.