{ "cells": [ { "cell_type": "markdown", "id": "6c47ad18", "metadata": { "id": "6c47ad18" }, "source": [ "![Notebook_Header_01.png](data:image/png;base64,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AAAAAIQQlAEAAAAAAAAAAAAAAAAAAAAACCEoAwAAAAAAAAAAAAAAAAAAAAAQQlAGAAAAACgAAAAAAAAAAAAAAAAyCMoAAAAAAAAAAAAAAAAAAAAAAIQQlAEAAAAAAAAAAAAAAAAAAAAACCEoAwAAAAAAAAAAAAAAAAAAAAAQQlAGAAAAAAAAAAAAAAAAAAAAACCEoAwAAAAAAAAAAAAAAAAAAAAAQAhBGQAAAAAAAAAAAAAAAAAAAACAEIIyAAAAAAAAAAAAAAAAAAAAAAAhBGUAAAAAAAAAAAAAAAAAAAAAAEIIygAAAAAAAAAAAAAAAAAAAAAAhBCUAQAAAAAAAAAAAAAAAAAAAAAIISgDAAAAAAAAAAAAAAAAAAAAABBCUAYAAAAAAAAAAAAAAAAAAAAAIISgDAAAAAAAAAAAAAAAAAAAAABACEEZAAAAAAAAAAAAAAAAAAAAAIAQgjIAAAAAAAAAAAAAAAAAAAAAACEEZQAAAAAAAAAAAAAAAAAAAAAAQgjKAAAAAAAAAAAAAAAAAAAAAACEEJQBAAAAAAAAAAAAAAAAAAAAAAghKAMAAAAAAAAAAAAAAAAAAAAAEEJQBgAAAAAAAAAAAAAAAAAAAAAghKAMAAAAAAAAAAAAAAAAAAAAAECIYQEAAAAAAAAAAAAAAAAAAAAA9Ntt0br9BU5eD2C/eK7WAAAAAElFTkSuQmCC)" ] }, { "cell_type": "markdown", "id": "869e0a2b", "metadata": { "id": "869e0a2b" }, "source": [ "# Lab 2: The Transpiler\n", "\n" ] }, { "cell_type": "markdown", "id": "GMWViIAFk0Pz", "metadata": { "id": "GMWViIAFk0Pz" }, "source": [ "# Table of contents\n", "\n", "* [Prologue - What is the transpiler?](#prologue) \n", "* [Transpile with Preset Pass Managers](#preset_passmanager) \n", "* [Optimization levels](#optimization_level)\n", " * [Optimization level = 0](#opt_lv_0)\n", " * [Optimization level = 1](#opt_lv_1)\n", " * [Optimization level = 2](#opt_lv_2)\n", " * [Optimization level = 3](#opt_lv_3) \n", "* [Transpiler Stage Details with Options](#transpiler_options)\n", " * [Init stage](#init)\n", " * [Layout Stage](#layout)\n", " * [Routing Stage](#routing)\n", " * [Translation Stage](#translation)\n", " * [Optimization Stage](#optimization)\n", " * [Scheduling Stage](#scheduling) \n", "* [Build your own Pass Managers with Staged Pass Manager](#staged_pm) \n", " * [Build `Dynamic Decoupling` Pass](#dd)\n", "* [(Bonus) Ecosystem and Qiskit Transpiler Plugin](#plugin) " ] }, { "cell_type": "markdown", "id": "dacee2d4", "metadata": { "id": "dacee2d4" }, "source": [ "\n", "\n", "\n", "# Setup\n", "\n", "To run this lab properly, we need several packages. If you haven't yet installed Qiskit and relevant packages, please run the cells below after uncommenting and restarting the kernel." ] }, { "cell_type": "code", "execution_count": null, "id": "1b8150ce-b900-4adf-a2c7-f5d80a1e6d70", "metadata": { "id": "1b8150ce-b900-4adf-a2c7-f5d80a1e6d70" }, "outputs": [], "source": [ "### Install Qiskit and relevant packages, if needed\n", "\n", "%pip install qiskit[visualization]==1.0.2\n", "%pip install qiskit_ibm_runtime\n", "%pip install qiskit_aer\n", "%pip install qiskit-transpiler-service\n", "%pip install graphviz\n", "%pip install git+https://github.com/qiskit-community/Quantum-Challenge-Grader.git" ] }, { "cell_type": "code", "execution_count": null, "id": "EgHX0RuznCvl", "metadata": { "id": "EgHX0RuznCvl" }, "outputs": [], "source": [ "### Save API Token, if needed\n", "\n", "%set_env QXToken=deleteThisAndPasteYourTokenHere\n", "\n", "# Make sure there is no space between the equal sign\n", "# and the beginning of your token" ] }, { "cell_type": "markdown", "id": "684bbb4a-9576-474c-83fe-31d712ceb87c", "metadata": { "id": "684bbb4a-9576-474c-83fe-31d712ceb87c" }, "source": [ "Now, let's run our imports and setup the grader" ] }, { "cell_type": "code", "execution_count": 1, "id": "9pEFjWUcxKm-", "metadata": { "id": "9pEFjWUcxKm-" }, "outputs": [], "source": [ "# Imports\n", "\n", "from qiskit.circuit.random import random_circuit\n", "from qiskit.circuit.library import XGate, YGate\n", "from qiskit_ibm_runtime.fake_provider import FakeTorino, FakeOsaka\n", "from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler\n", "from qiskit.transpiler import InstructionProperties, PassManager\n", "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", "from qiskit.transpiler.preset_passmanagers.plugin import list_stage_plugins\n", "from qiskit.transpiler.timing_constraints import TimingConstraints\n", "from qiskit.transpiler.passes.scheduling import ASAPScheduleAnalysis,PadDynamicalDecoupling\n", "from qiskit.visualization.timeline import draw, IQXStandard\n", "from qiskit.transpiler import StagedPassManager\n", "from qiskit.visualization import plot_circuit_layout\n", "from qiskit.quantum_info.analysis import hellinger_fidelity\n", "from qiskit.visualization import plot_distribution\n", "from qiskit_aer import AerSimulator\n", "\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": null, "id": "b59eb187", "metadata": { "id": "b59eb187" }, "outputs": [], "source": [ "# Setup the grader\n", "from qc_grader.challenges.iqc_2024 import (\n", " grade_lab2_ex1,\n", " grade_lab2_ex2,\n", " grade_lab2_ex3,\n", " grade_lab2_ex4,\n", " grade_lab2_ex5\n", ")" ] }, { "cell_type": "markdown", "id": "g_Uy-O8nnpNR", "metadata": { "id": "g_Uy-O8nnpNR" }, "source": [ "This lab must use Qiskit v1.0.2. Before we start, let's check your environment." ] }, { "cell_type": "code", "execution_count": null, "id": "rwT3zn80nrOL", "metadata": { "id": "rwT3zn80nrOL" }, "outputs": [], "source": [ "from util import version_check\n", "\n", "version_check()" ] }, { "cell_type": "markdown", "id": "438aa753", "metadata": { "id": "438aa753" }, "source": [ "# Prologue - What is the transpiler?" ] }, { "cell_type": "markdown", "id": "0d18fa3b-416a-4de6-bae4-09dbd863ed90", "metadata": { "id": "0d18fa3b-416a-4de6-bae4-09dbd863ed90" }, "source": [ "Let's start with a hypothetical question:\n", "\n", "When someone hands you their car keys and says \"will you fill my car up with fuel?\" - how do you know what to do?\n", "\n", "Sure, you have your driver's license, but what type of car do they have? Where is their gear shifter? How do you turn on the blinker to turn the corner, or open the fuel tank once your arrive? What if it's an electric car that doesn't even *have* a fuel tank??\n", "\n", "Luckily, the human brain is smart. It is able to take a set of instructions and adapt them to the vehicle being used.\n", "\n", "That, in essence, is the transpiler." ] }, { "cell_type": "markdown", "id": "Xz013UUMKMxk", "metadata": { "id": "Xz013UUMKMxk" }, "source": [ "Transpilation is the process of taking a given input circuit and rewriting it to an equivalent circuit for a specific quantum device, and/or to optimize the circuit for execution on a real quantum system.\n", "\n", "This is necessary because not all quantum devices work the same way. The instructions you send to one device might not be compatible with a different quantum backend. Transpilation operates in terms of a device's basis gate set, the topology of the quantum chips, timing constraints, and more which we will explore in this lab.\n", "\n", "The goal of a transpiler is to get the best performance from noisy quantum hardware. Most circuits must undergo a series of transformations that make them compatible with a given target device, and optimize them to reduce the effects of noise on the resulting outcomes.\n", "\n", "**For example:** the process of transpilation can take a simple looking circuit that contains your instructions:" ] }, { "cell_type": "markdown", "id": "1401a733-a9bb-432b-a2e4-e3160c2ad9ce", "metadata": {}, "source": [ "\"\"" ] }, { "cell_type": "markdown", "id": "79697b94-47d5-4fc7-a007-5fd6df339b69", "metadata": {}, "source": [ "And transform it to provide the circuit you want, but by only using the basis gates or instructions that a given quantum computer is able to accept. It also will optimize those instructions in order to minimize the effects of noise:" ] }, { "cell_type": "markdown", "id": "edf24741-adb2-4d0f-b64f-572ab3ff7657", "metadata": {}, "source": [ "\"\"" ] }, { "cell_type": "markdown", "id": "c1b3564f-b96a-4cf2-9bdb-8fa63b104505", "metadata": { "id": "c1b3564f-b96a-4cf2-9bdb-8fa63b104505" }, "source": [ "A central component of the Qiskit SDK, the transpiler is designed for modularity and extensibility. Its main goal is to write new circuit transformations (known as transpiler passes), and combine them with other existing passes, greatly reducing the depth and complexity of quantum circuits. Which passes are chained together and in which order has a major effect on the final outcome. This pipeline is determined by the [PassManager](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.PassManager) and [StagedPassManager](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.StagedPassManager) objects.\n", "\n", "The `StagedPassManager` orchestrates the execution of one or more `PassManagers` and determines the order in which they are executed, while the `PassManager` object is merely a collection of one or more passes. Think of the `StagedPassManager` as the conductor in an orchestra, the `PassManagers` as the different instrument sections, and the `Pass` objects as the individual musicians.\n", "\n", "In this way, you can compose hardware-efficient quantum circuits that let you execute utility-scale work while keeping noise manageable. For more details, visit the [Transpile](https://docs.quantum.ibm.com/transpile) section in the IBM Quantum Platform docs." ] }, { "cell_type": "markdown", "id": "9f5929ce-0456-47a3-87e1-e24f9877dc4d", "metadata": { "id": "9f5929ce-0456-47a3-87e1-e24f9877dc4d" }, "source": [ "## The six stages\n", "\n", "Rewriting quantum circuits to match hardware constraints and optimizing for performance can be far from trivial. Qiskit provides users the standard six stages of compilation flows with four pre-built transpilation pipelines. By default, the preset pass managers are composed of six stages, with several options in each stages:\n" ] }, { "cell_type": "markdown", "id": "fc0f3d06", "metadata": { "id": "fc0f3d06" }, "source": [ "\n", "- `Init`: This pass runs any initial passes that are required before we start embedding the circuit to the system. This typically involves unrolling custom instructions and converting the circuit to all single- and two-qubit gates. (By default this will just validate the circuit instructions and translate multi-qubit gates into single- and two-qubit gates.)\n", " \n", "- `Layout`: This stage applies a layout, mapping the virtual qubits in the circuit to the physical qubits on a backend.\n", "\n", "- `Routing`: This stage runs after a layout has been applied and will inject gates (i.e. swaps) into the original circuit to make it compatible with the backend’s connectivity.\n", " \n", "- `Translation`: This stage translates the gates in the circuit to the target backend’s basis set.\n", "- `Optimization`: This stage runs the main optimization loop repeatedly until a condition (such as fixed depth) is reached.\n", "- `Scheduling`: This stage is for any hardware-aware scheduling passes.\n", "\n", "\n", "Qiskit also provides four pre-defined levels of transpilation that users can choose according to their needs. You can modify these preset pass managers, and in addition, you can construct a pass manager to build an entirely custom pipeline for transforming input circuits.\n", "\n", "For most users who are not familiar with quantum circuit optimization by transpiling, we suggest to use one of the ready-made routines. However in this lab we will be diving deep (deeeeeeeep!) into each stage and the options within." ] }, { "cell_type": "markdown", "id": "cf273e41-76a0-4986-9257-cd592373f77c", "metadata": { "id": "cf273e41-76a0-4986-9257-cd592373f77c" }, "source": [ "
\n", "\n", "\n", "\n", "### Exercise 1:\n", "\n", "**Your Task:** Please match the description of what happens in each stage with the corresponding transpilation stage name in the code cell below.\n", "\n", "- **A.** This stage centers around reducing the number of circuit operations and the depth of circuits with several optimization options.\n", "- **B.** This stage inserts the appropriate number of SWAP gates in order to execute the circuits using the selected layout.\n", "- **C.** this stage is used to translate any gates that operate on more than two qubits, into gates that only operate on one or two qubits.\n", "- **D.** This stage executes a sequence of gates, a one-to-one mapping from the \"virtual\" qubits to the \"physical\" qubits in an actual quantum device.\n", "- **E.** this pass can be thought of as explicitly inserting hardware-aware operations like delay instructions to account for the idle time between gate executions.\n", "- **F.** This stage translates (or unrolls) the gates specified in a circuit to the native basis gates of a specified backend.\n", "\n", "HINT: The answer will always be a single capital letter with quotation marks. For example: \"A\"\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": null, "id": "3094f28d-79b4-4758-bd0e-1024cc337740", "metadata": { "id": "3094f28d-79b4-4758-bd0e-1024cc337740" }, "outputs": [], "source": [ "ans = {}\n", "\n", "# Place the correct letter next to the corresponding stage, inside a parenthesis\n", "# example: ans[\"test\"] = \"M\"\n", "\n", "ans[\"init\"] =\n", "ans[\"layout\"] =\n", "ans[\"routing\"] =\n", "ans[\"translation\"] =\n", "ans[\"optimization\"] =\n", "ans[\"scheduling\"] =" ] }, { "cell_type": "code", "execution_count": null, "id": "12684450", "metadata": { "id": "12684450" }, "outputs": [], "source": [ "# Submit your answer using following code\n", "\n", "grade_lab2_ex1(ans)" ] }, { "cell_type": "markdown", "id": "MmoeFQ-tS_1k", "metadata": { "id": "MmoeFQ-tS_1k" }, "source": [ "Good work checking your understanding on each transpiling stage. Next let's see how to use Qiskit's six transpile stages with `preset_pass_managers`." ] }, { "cell_type": "markdown", "id": "5f8c1263", "metadata": { "id": "5f8c1263" }, "source": [ "\n", "\n", "# Transpile with preset pass managers" ] }, { "cell_type": "markdown", "id": "1cf174f3", "metadata": { "id": "1cf174f3" }, "source": [ "In this part, we will explore how to use Qiskit's standard six transpiler stages. We will focus first on the four pre-defined transpile pipelines, and see how to build your own PassManager through a practice that uses the features and options of each pass with a pre-defined pipeline.\n", "\n", "First, let's look at what Passmanager and `generate_preset_pass_manager` are. This part and later parts refers frequently to the [IBM Quantum Platform docs](https://docs.quantum.ibm.com/transpile) and the [API reference documentation](https://docs.quantum.ibm.com/api/qiskit/transpiler) on the transpiler, so we recommend you look at them together.\n", "\n", "## What is a (staged) pass manager?\n", "\n", "A pass manager is an object that stores a list of transpiler passes and can execute them on a circuit. You can create a pass manager by initializing a [PassManager](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.PassManager) with a list of transpiler passes. To run the transpilation on a circuit, call the [run](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.PassManager#run) method with a circuit as input.\n", "\n", "A staged pass manager, represented by the [`StagedPassManager`](https://docs.quantum.ibm.com/transpile/transpiler-stages) class, is a special kind of pass manager that represents a level of abstraction above that of a normal pass manager. While a normal pass manager is composed of several transpiler passes, a staged pass manager is composed of several pass managers. This is a useful abstraction because transpilation typically happens in discrete stages, with each stage being represented by a pass manager.\n" ] }, { "cell_type": "markdown", "id": "ubXQdqLjU6mD", "metadata": { "id": "ubXQdqLjU6mD" }, "source": [ "## `Preset Passmanagers`\n", "\n", "Preset Passmanagers (`qiskit.transpiler.preset_passmanagers`) contains functions for generating the preset pass managers for transpiling. The preset pass managers are instances of StagedPassManager, which are used to execute the circuit transformations at the different optimization levels in the pre-defined transpiling pipeline. Here we introduce the functions used to generate the entire pass manager by using `generate_preset_pass_manager`." ] }, { "cell_type": "markdown", "id": "K4i2qhtGWR89", "metadata": { "id": "K4i2qhtGWR89" }, "source": [ "
\n", "\n", "### Metaphors\n", "\n", "It's easy to get lost in the terminology here, so think back to our metaphor about an orchestra conductor, sections, and individual musicians.\n", "\n", "**Bonus Exercise:** Come up with your own metaphor for the relationship between a `StagedPassManager`, a `PassManager`, and a `pass`. \n", "\n", "Feel free to share your metaphor with others in the IBM Quantum Challenge Discord, or with your friends.\n", "
" ] }, { "cell_type": "markdown", "id": "fyAG5j89V8PY", "metadata": { "id": "fyAG5j89V8PY" }, "source": [ "## `generate_preset_pass_manager`\n", "\n", "In Qiskit, `generate_preset_pass_manager` is used to quickly generate a preset pass manager. This function provides a convenient and simple method to construct a standalone `PassManager` object with **optimization** levels and options for each pass. Let's explore those next." ] }, { "cell_type": "markdown", "id": "w5oPSJWPWuO2", "metadata": { "id": "w5oPSJWPWuO2" }, "source": [ "# Optimization levels " ] }, { "cell_type": "markdown", "id": "4A6jQvq2v-T5", "metadata": { "id": "4A6jQvq2v-T5" }, "source": [ "The `generate_preset_pass_manager` function has one required positional argument, optimization_level, that controls how much effort the transpiler spends on optimizing circuits. This argument is an integer taking one of the values 0, 1, 2, or 3.\n", "\n", "Higher optimization levels generate more optimized circuits at the expense of longer compile times, and vice versa." ] }, { "cell_type": "markdown", "id": "417605eb-15ae-47e2-886e-446275648831", "metadata": { "id": "417605eb-15ae-47e2-886e-446275648831" }, "source": [ "
\n", "\n", "\n", "\n", "### Exercise 2: Build a function to `evaluate` transpiled circuit\n", "\n", "\n", "Since the goal of transpiling is to improve the actual execution performance of the circuit, your goal is to create a function that measures the performance of the translated circuit. You will use this function later in this lab.\n", "\n", "**Your Task:** Create a function called `scoring`. The function should receives the transpiled circuit, its *final layout*, and its target backend as its inputs. The function should then return a circuit score. The closer the score is to 0, the better.\n", "\n", "Other notes:\n", "* Please use `FakeTorino` from the `qiskit-ibm-runtime` package for this whole lab.\n", "* The algorithm for calculating the actual score in `util.py` is from [Mapomatic](https://github.com/qiskit-community/mapomatic), and the main code has been updated to suit PrimitiveV2.\n", "* We have constructed some of this function for you.\n", "* You will need to get the final layout of transpiled circuit. These two pages should help you complete the code below to finish the function.\n", " * [The layout section from the QuantumCircuit API documentation](https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.QuantumCircuit#layout)\n", " * [The TranspileLayout section from the Qiskit Transpiler API documentation](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.TranspileLayout)\n", "
" ] }, { "cell_type": "code", "execution_count": null, "id": "768bc71b-be76-4e96-a870-b17f99f1e479", "metadata": { "id": "768bc71b-be76-4e96-a870-b17f99f1e479" }, "outputs": [], "source": [ "### Create the scoring function\n", "\n", "def scoring( qc, backend):\n", " from util import transpile_scoring\n", "\n", " layout = ##your code here\n", " fidelity = transpile_scoring(qc, layout, backend)\n", " score = ##your code here\n", "\n", " return score\n" ] }, { "cell_type": "code", "execution_count": null, "id": "a7b84a84-7c87-4419-adf0-fc646d93effd", "metadata": { "id": "a7b84a84-7c87-4419-adf0-fc646d93effd" }, "outputs": [], "source": [ "# Submit your answer using following code\n", "\n", "grade_lab2_ex2(scoring)" ] }, { "cell_type": "markdown", "id": "cad37e66-b684-419c-9cc0-9f14ef393cff", "metadata": { "id": "cad37e66-b684-419c-9cc0-9f14ef393cff" }, "source": [ "Now you have a function to measure the performance of a transpiled circuit. Before we move on to the next part, let's finish setting up everything we need to properly test our circuit on a fake backend.\n", "\n", "Namely, a circuit, and a fake backend!" ] }, { "cell_type": "code", "execution_count": null, "id": "f16a1d6b-8336-47ed-bf79-8e759679bc09", "metadata": { "id": "f16a1d6b-8336-47ed-bf79-8e759679bc09" }, "outputs": [], "source": [ "### Create a random circuit\n", "\n", "## DO NOT CHANGE THE SEED NUMBER\n", "seed = 10000\n", "\n", "## Create circuit\n", "\n", "num_qubits = 6\n", "depth = 4\n", "qc = random_circuit(num_qubits,depth,measure=False, seed=seed)\n", "\n", "qc.draw('mpl')" ] }, { "cell_type": "markdown", "id": "LO757dUbd3IW", "metadata": { "id": "LO757dUbd3IW" }, "source": [ "
\n", "\n", "Be careful!\n", " \n", "To pass the grader, do not change the seed values for `seed` or `seed_transpiler` throughout this whole lab.\n", "
" ] }, { "cell_type": "markdown", "id": "4cdc7d66-67b0-4988-953f-dfab85139d3c", "metadata": { "id": "4cdc7d66-67b0-4988-953f-dfab85139d3c" }, "source": [ "To test the performance of each optimization level, call `FakeTorino` and save it as `backend`.\n", "\n", "`FakeTorino` has the connectivity and noise features of ibm_torino, which is the latest IBM Quantum backend with a Heron processor." ] }, { "cell_type": "code", "execution_count": null, "id": "a76391b8", "metadata": { "id": "a76391b8" }, "outputs": [], "source": [ "## Save FakeTorino as backend\n", "\n", "backend = FakeTorino()" ] }, { "cell_type": "markdown", "id": "vYeXBPVFhgmG", "metadata": { "id": "vYeXBPVFhgmG" }, "source": [ "We are going to walk through running all four optimization levels and then compare our results at the end. In order to do this, we will create a few arrays to hold the information as we work, then use them later on.\n", "\n", "In the next code cell, we're simply constructing these arrays. You can run it and move on for now." ] }, { "cell_type": "code", "execution_count": null, "id": "j-vk3nR2hk7H", "metadata": { "id": "j-vk3nR2hk7H" }, "outputs": [], "source": [ "circuit_depths = {\n", " 'opt_lv_0': None,\n", " 'opt_lv_1': None,\n", " 'opt_lv_2': None,\n", " 'opt_lv_3': None,\n", "}\n", "gate_counts = {\n", " 'opt_lv_0': None,\n", " 'opt_lv_1': None,\n", " 'opt_lv_2': None,\n", " 'opt_lv_3': None,\n", "}\n", "\n", "scores = {\n", " 'opt_lv_0': None,\n", " 'opt_lv_1': None,\n", " 'opt_lv_2': None,\n", " 'opt_lv_3': None,\n", "}" ] }, { "cell_type": "markdown", "id": "N4vMMKVSh4c6", "metadata": { "id": "N4vMMKVSh4c6" }, "source": [ "## Optimization level = 0 " ] }, { "cell_type": "markdown", "id": "4rhnU1G4iIJm", "metadata": { "id": "4rhnU1G4iIJm" }, "source": [ "
\n", "\n", "If at any point during these four sections you need help or clarification, please refer to this documentation for a better understanding of optimization_level.\n", "\n", "
" ] }, { "cell_type": "markdown", "id": "LHW01CZnhlNq", "metadata": { "id": "LHW01CZnhlNq" }, "source": [ "Optimization level 0 is intended for **device characterization experiments** and, as such, only maps the input circuit to the constraints of the target backend without performing any optimizations. It performs layout/routing with [TrivialLayout](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.TrivialLayout#triviallayout), where it selects the same physical qubit numbers as virtual and inserts SWAPs to make it work (using [StochasticSwap](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.StochasticSwap#stochasticswap)).\n", "\n", "Let's make a pass manager with optimization level = 0 using our FakeTorino backend and see the result." ] }, { "cell_type": "code", "execution_count": null, "id": "b2193548-33ea-4fe7-ade3-8a919c5bf447", "metadata": { "id": "b2193548-33ea-4fe7-ade3-8a919c5bf447" }, "outputs": [], "source": [ "# Make a pass manager with our desired optimization level and backend\n", "pm_lv0 = generate_preset_pass_manager(backend=backend, optimization_level=0, seed_transpiler=seed)\n", "\n", "# Run for our random circuit\n", "tr_lv0 = pm_lv0.run(qc)\n", "\n", "# uncomment the next line to draw circuit\n", "#tr_lv0.draw('mpl', idle_wires=False, fold=60)" ] }, { "cell_type": "markdown", "id": "ce7135c2-a804-4898-baf2-49bad0049f1c", "metadata": { "id": "ce7135c2-a804-4898-baf2-49bad0049f1c" }, "source": [ "As mentioned previously, optimization_level=0 is performing a basic gate decomposition by using basis gates of the backend and mapping logical qubits to physical qubits with a same order of number. It maps logical qubit 0 to physical qubit 0 and maps logical qubit 1 to physical qubit 1." ] }, { "cell_type": "markdown", "id": "A34yXFCFjE1K", "metadata": { "id": "A34yXFCFjE1K" }, "source": [ "
\n", "\n", "\n", "\n", "### Exercise 3: (Start)\n", "\n", "**Your Task:** Find the circuit depth of the random circuit, the sum of the total gate number, and compute the performance score of this circuit using `scoring`. Use the provided code to save each of these results to our previously made array.\n", "\n", "
" ] }, { "cell_type": "markdown", "id": "j4y7E6yvjIZR", "metadata": { "id": "j4y7E6yvjIZR" }, "source": [ "
\n", "\n", "Tips:\n", "- for the `circuit_depths`: [IBM Documentation](https://docs.quantum.ibm.com/api/qiskit/0.42/circuit)\n", "- for the `gate_counts`: Must be a number. [This discussion from stackexchange may help you](https://quantumcomputing.stackexchange.com/questions/25931/qiskit-count-of-each-gates), More powerful handy tip: [Circuit Property](https://docs.quantum.ibm.com/api/qiskit/0.42/circuit#quantum-circuit-properties)\n", "- for the `scores`: Use the `scoring` function you previously made\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": null, "id": "24b96a0c", "metadata": { "id": "24b96a0c" }, "outputs": [], "source": [ "### Your code here ###\n", "\n", "circuit_depths['opt_lv_0'] =\n", "gate_counts['opt_lv_0'] =\n", "scores['opt_lv_0'] =\n", "\n", "### Don't change code after this line ###\n", "\n", "print(\"Optimization level 0 results\")\n", "print(\"====================\")\n", "print(\"Circuit depth:\", circuit_depths['opt_lv_0'])\n", "print(\"Gate count:\", gate_counts['opt_lv_0'])\n", "print(\"Score:\", scores['opt_lv_0'])" ] }, { "cell_type": "markdown", "id": "d2210488", "metadata": { "id": "d2210488" }, "source": [ "\n", "\n", "## Optimization level = 1 \n", "\n", "Optimization level 1 performs a **`light optimization`**. Here's what that means:\n", "\n", "- Layout/Routing: Layout is first attempted with [TrivialLayout](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.TrivialLayout#triviallayout). If additional SWAPs are required, a layout with a minimum number of SWAPs is found by using [SabreSWAP](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.SabreSwap#sabreswap), then it uses [VF2LayoutPostLayout](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.VF2PostLayout)` to try to select the best qubits in the graph.\n", "- [InverseCancellation](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.InverseCancellation#inversecancellation)\n", "- [1Q gate optimization](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.Optimize1qGates#optimize1qgates)\n", "\n", "Try making a pass manager on your own this time. Once again use the FakeTorino backend with `generate_preset_pass_manager`. Please also set the `optimization_level` to 1, and `seed_transpiler` = `seed`" ] }, { "cell_type": "code", "execution_count": null, "id": "c81db96e-aa03-4418-a089-5d5b5ffa90bf", "metadata": { "id": "c81db96e-aa03-4418-a089-5d5b5ffa90bf" }, "outputs": [], "source": [ "# Make a pass manager with our desired optimization level and backend\n", "pm_lv1 = ### your code here ###\n", "\n", "# Run for our random circuit\n", "tr_lv1 = pm_lv1.run(qc)\n", "\n", "# uncomment the next line to draw circuit\n", "#tr_lv1.draw('mpl', idle_wires=False, fold=60)" ] }, { "cell_type": "markdown", "id": "66846d83-15f9-474a-a087-0cba27ce8466", "metadata": { "id": "66846d83-15f9-474a-a087-0cba27ce8466" }, "source": [ "You should now see logical qubits mapped into different physical qubit sets and a smaller number of gates. Just like last time, let's once again find the circuit depth of the random circuit, the sum of the total gate number, and compute the performance score of this circuit using `scoring`." ] }, { "cell_type": "code", "execution_count": null, "id": "1a1e49d1", "metadata": { "id": "1a1e49d1" }, "outputs": [], "source": [ "### Your code here ###\n", "\n", "circuit_depths['opt_lv_1'] =\n", "gate_counts['opt_lv_1'] =\n", "scores['opt_lv_1'] =\n", "\n", "### Don't change code after this line ###\n", "\n", "print(\"Optimization level 1 results\")\n", "print(\"====================\")\n", "print(\"Circuit depth:\", circuit_depths['opt_lv_1'])\n", "print(\"Gate count:\", gate_counts['opt_lv_1'])\n", "print(\"Score:\", scores['opt_lv_1'])" ] }, { "cell_type": "markdown", "id": "723c1bbc", "metadata": { "id": "723c1bbc" }, "source": [ "## Optimization level = 2 \n", "\n", "Optimization level 2 performs a **`medium optimization`**, which means:\n", "\n", "- Layout/Routing: Optimization level 1 (without trivial) + heuristic optimized with greater search depth and trials of optimization function. Because [TrivialLayout](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.TrivialLayout#triviallayout) is not used, there is no attempt to use the same physical and virtual qubit numbers.\n", "- [CommutativeCancellation](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.CommutativeCancellation#commutativecancellation)\n", "\n", "Let's make a pass manager with `optimization_level` of 2 this time, again using `generate_preset_pass_manager` with the FakeTorino backend and `seed_transpiler` = `seed`." ] }, { "cell_type": "code", "execution_count": null, "id": "442d02a6-dbf6-4fdc-b0c0-1809a8a033fe", "metadata": { "id": "442d02a6-dbf6-4fdc-b0c0-1809a8a033fe" }, "outputs": [], "source": [ "# Make a pass manager with our desired optimization level and backend\n", "pm_lv2 = ### your code here ###\n", "\n", "# Run for our random circuit\n", "tr_lv2 = pm_lv2.run(qc)\n", "\n", "# uncomment the next line to draw circuit\n", "#tr_lv2.draw('mpl', idle_wires=False, fold=60)" ] }, { "cell_type": "markdown", "id": "1eb4c089-8a29-4973-af0e-558bcc39def8", "metadata": { "id": "1eb4c089-8a29-4973-af0e-558bcc39def8" }, "source": [ "Even at a glance, we can see that the number of gates has decreased quite a bit. The physical qubit to which the logical qubit is mapped remains unchanged. Now, let's measure the performance of transpiling. It is the same code as above." ] }, { "cell_type": "code", "execution_count": null, "id": "05928c2d", "metadata": { "id": "05928c2d" }, "outputs": [], "source": [ "### Your code here ###\n", "\n", "circuit_depths['opt_lv_2'] =\n", "gate_counts['opt_lv_2'] =\n", "scores['opt_lv_2'] =\n", "\n", "### Don't change code after this line ###\n", "\n", "print(\"Optimization level 2 results\")\n", "print(\"====================\")\n", "print(\"Circuit depth:\", circuit_depths['opt_lv_2'])\n", "print(\"Gate count:\", gate_counts['opt_lv_2'])\n", "print(\"Score:\", scores['opt_lv_2'])" ] }, { "cell_type": "markdown", "id": "ccc3c8b5", "metadata": { "id": "ccc3c8b5" }, "source": [ "## Optimization level = 3 \n", "\n", "Optimization level 3 performs a **`high optimization`**:\n", "\n", "- Optimization level 2 + heuristic optimized on layout/routing further with greater effort/trials\n", "- Resynthesis of two-qubit blocks using [Cartan's KAK Decomposition](https://arxiv.org/abs/quant-ph/0507171).\n", "- Unitarity-breaking passes:\n", " - `OptimizeSwapBeforeMeasure`: Remove swaps in front of measurements by re-targeting\n", " the classical bit of the measure instruction to avoid SWAPs\n", " - `RemoveDiagonalGatesBeforeMeasure`: Remove diagonal gates (like RZ, T, Z, etc.) before\n", " a measurement. Including diagonal 2Q gates.\n", "\n", "You know what to do next!" ] }, { "cell_type": "code", "execution_count": null, "id": "fd852fe6-49c4-49d9-8619-5d326b17a5d3", "metadata": { "id": "fd852fe6-49c4-49d9-8619-5d326b17a5d3" }, "outputs": [], "source": [ "pm_lv3 =### your code here ###\n", "\n", "tr_lv3 =### your code here ###\n", "\n", "# uncomment to draw circuit\n", "#tr_lv3.draw('mpl', idle_wires=False, fold=60)" ] }, { "cell_type": "markdown", "id": "e83bc48a-398b-49a0-bbb0-ddcf0fa3057e", "metadata": { "id": "e83bc48a-398b-49a0-bbb0-ddcf0fa3057e" }, "source": [ "Surprising! Now we have a smaller number of gates! Let's see how it worked..." ] }, { "cell_type": "code", "execution_count": null, "id": "c926c527-37c9-4b9c-8fbf-2ceaf0555668", "metadata": { "id": "c926c527-37c9-4b9c-8fbf-2ceaf0555668" }, "outputs": [], "source": [ "### Your code here ###\n", "\n", "circuit_depths['opt_lv_3'] =\n", "gate_counts['opt_lv_3'] =\n", "scores['opt_lv_3'] =\n", "\n", "### Don't change code after this line ###\n", "\n", "print(\"Optimization level 3 results\")\n", "print(\"====================\")\n", "print(\"Circuit depth:\", circuit_depths['opt_lv_3'])\n", "print(\"Gate count:\", gate_counts['opt_lv_3'])\n", "print(\"Score:\", scores['opt_lv_3'])" ] }, { "cell_type": "markdown", "id": "cc0ea866-27ef-4557-8135-56c7899eae16", "metadata": { "id": "cc0ea866-27ef-4557-8135-56c7899eae16" }, "source": [ "Now that we have all our results, let's graph how much the depth of the circuit, the number of gates, and the evaluation score have changed according to each optimization level." ] }, { "cell_type": "code", "execution_count": null, "id": "1f9ba7c4-0b6f-4b9c-a454-0edffc20becb", "metadata": { "id": "1f9ba7c4-0b6f-4b9c-a454-0edffc20becb" }, "outputs": [], "source": [ "colors = ['#FF6666', '#66B2FF']\n", "ax = [\"opt_lv_0\", \"opt_lv_1\", \"opt_lv_2\", \"opt_lv_3\"]\n", "fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(10, 12))\n", "\n", "# Plot 1: Circuit Depth\n", "ax1.semilogy(ax, [circuit_depths[key] for key in ax],'o-',markersize=9, color='#FF6666', label=\"Depth\")\n", "ax1.set_xlabel(\"Optimization Level\", fontsize=12)\n", "ax1.set_ylabel(\"Depth\", fontsize=12)\n", "ax1.set_title(\"Circuit Depth\", fontsize=14)\n", "ax1.legend(fontsize=10)\n", "\n", "# Plot 2: Total Number of Gates\n", "ax2.semilogy(ax, [gate_counts[key] for key in ax],'^-',markersize=9, color='#66B2FF', label=\"Counts\")\n", "ax2.set_xlabel(\"Optimization Level\", fontsize=12)\n", "ax2.set_ylabel(\"Gate Count\", fontsize=12)\n", "ax2.set_title(\"Gate Count\", fontsize=14)\n", "ax2.legend(fontsize=10)\n", "\n", "# Plot 3: Score of Transpiled Circuit\n", "ax3.semilogy(ax, [scores[key] for key in ax],'*-',markersize=9, label=\"Score\")\n", "ax3.set_xlabel(\"Optimization Level\", fontsize=12)\n", "ax3.set_ylabel(\"Score\", fontsize=12)\n", "ax3.set_title(\"Score\", fontsize=14)\n", "ax3.legend(fontsize=10)\n", "\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "29f2d8e9-0bda-43f7-86a6-d0e81396fee1", "metadata": { "id": "29f2d8e9-0bda-43f7-86a6-d0e81396fee1" }, "source": [ "
\n", "\n", "### Exercise 3: (Finish)\n", "\n", "**Your Task:** Above you did a great amount of work to construct your different pass managers, test them, and save information about each one to it's corresponding array. You graphed that information to visibly compare your results. Now, submit all four pass managers to the grader.\n", "\n", "Make sure you didn't change any seed values!\n", "\n", "
\n" ] }, { "cell_type": "code", "execution_count": null, "id": "540ae47a", "metadata": { "id": "540ae47a" }, "outputs": [], "source": [ "# Submit your answer using following code\n", "\n", "ans = [pm_lv0, pm_lv1, pm_lv2, pm_lv3]\n", "\n", "grade_lab2_ex3(ans)" ] }, { "cell_type": "markdown", "id": "3ed3972d", "metadata": { "id": "3ed3972d" }, "source": [ "# Transpiler stage details with options \n", "\n", "So far, we've looked at four predefined transpiler pipelines offered by Qiskit using random circuits. One of the key features of the Qiskit SDK v1.0 transpiler is the ease with which users can build and configure a custom passmanager. Configure your own pass manager by using six standard passes along with the optimization level discussed above, but also choosing the option or plug-in for each pass as you like. Another way is to create your pass manager with as many passes as you want by using `StagedPassManager`. In addition, you can create and deploy a new pass manager and implement it in the the form of a [plugin](https://docs.quantum.ibm.com/transpile/create-a-transpiler-plugin) in Qiskit so that other users can use it.\n", "\n", "Let's look at all three methods in the following sections, starting with the easiest way first." ] }, { "cell_type": "markdown", "id": "NZoH_tc3zm1m", "metadata": { "id": "NZoH_tc3zm1m" }, "source": [ "## Init stage \n", "\n", "This first stage does very little by default and is primarily useful if you want to include your own initial optimizations. Because most layout and routing algorithms are only designed to work with single- and two-qubit gates, this stage is also used to translate any gates that operate on more than two qubits, into gates that only operate on one or two qubits.\n", "\n", "If you specify an argument at this stage for the qubits you want to use, that value overrides all the passes that could change it. You can find more details in the [Default settings and configuration options documentation](https://docs.quantum.ibm.com/transpile/defaults-and-configuration-options).\n", "\n", "First, let's check the possible options of the init stage we can use." ] }, { "cell_type": "code", "execution_count": null, "id": "1669b5e4-b560-4138-a732-03e5c49a0d87", "metadata": { "id": "1669b5e4-b560-4138-a732-03e5c49a0d87" }, "outputs": [], "source": [ "list_stage_plugins(\"init\")" ] }, { "cell_type": "markdown", "id": "97a46352-d341-4780-b67c-034f4ceb09db", "metadata": { "id": "97a46352-d341-4780-b67c-034f4ceb09db" }, "source": [ "Without extra plugins, only default options exist. This process includes several transpiler pass plugins depending on the `optimization_level` - let's take a look inside it.\n", "\n", "For this, let's create a pass manager with `init_method=\"default\"` options." ] }, { "cell_type": "code", "execution_count": null, "id": "f3ed5d78-c784-4a14-8c1d-e70ee1da274d", "metadata": { "id": "f3ed5d78-c784-4a14-8c1d-e70ee1da274d" }, "outputs": [], "source": [ "print(\"Plugins run by default init stage\")\n", "print(\"=================================\")\n", "\n", "for i in range(4):\n", " print(f\"\\nOptimization level {i}:\")\n", " pm = generate_preset_pass_manager(backend=backend, optimization_level=i, init_method=\"default\", seed_transpiler=1000)\n", " for task in pm.init.to_flow_controller().tasks:\n", " print(\" -\", type(task).__name__)" ] }, { "cell_type": "markdown", "id": "ef6244cb", "metadata": { "id": "ef6244cb" }, "source": [ "Here is a table of each plugin's API docs. Take a look if you want to dive more deeply into any of them.\n", "\n", "| Plugin | Description | API docs link|\n", "|---- | ---- | ------|\n", "|UnitarySynthesis| Synthesize unitaries over some basis gates | https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.UnitarySynthesis#unitarysynthesis |\n", "|HighLevelSynthesis |Synthesize higher-level objects and unroll custom definitions| https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.HighLevelSynthesis#highlevelsynthesis |\n", "| BasisTranslator | Translates gates to a target basis by searching for a set of translations from a given EquivalenceLibrary | https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.BasisTranslator#basistranslator |\n", "| InverseCancellation| Cancel specific gates which are inverses of each other when they occur back-to- back | https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.InverseCancellation#inversecancellation |\n", "| OptimizeSwapBeforeMeasure | Moves the measurements around to avoid SWAPs | NA |\n", "| RemoveDiagonalGatesBeforeMeasure | Remove diagonal gates (including diagonal 2Q gates) before a measurement | https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.RemoveDiagonalGatesBeforeMeasure |\n" ] }, { "cell_type": "markdown", "id": "981276aa", "metadata": { "id": "981276aa" }, "source": [ "## Layout stage \n", "\n", "The next stage involves the layout or connectivity of the backend a circuit will be sent to. In general, quantum circuits are abstract entities whose qubits are \"virtual\" or \"logical\" representations of actual qubits used in computations. To execute a sequence of gates, a one-to-one mapping from the \"virtual\" qubits to the \"physical\" qubits in an actual quantum device is necessary. This mapping is stored as a Layout object and is part of the constraints defined within a backend's instruction set architecture (ISA).\n" ] }, { "cell_type": "markdown", "id": "cb01b502", "metadata": { "id": "cb01b502" }, "source": [ "![layout_mapping](data:image/webp;base64,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)" ] }, { "cell_type": "markdown", "id": "b8c37f20", "metadata": { "id": "b8c37f20" }, "source": [ "\n", "The choice of mapping is extremely important for minimizing the number of SWAP operations needed to map the input circuit onto the device topology and ensure the most well-calibrated qubits are used. Due to the importance of this stage, the preset pass managers try a few different methods to find the best layout. Typically this involves two steps: first, try to find a \"perfect\" layout (a layout that does not require any SWAP operations), and then, a heuristic pass that tries to find the best layout to use if a perfect layout cannot be found. There are two Passes typically used for this first step:\n", "\n", "- [TrivialLayout](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.TrivialLayout#triviallayout): Naively maps each virtual qubit to the same numbered physical qubit on the device (i.e., [0,1,1,3] -> [0,1,1,3]). This is historical behavior only used in optimzation_level=1 to try to find a perfect layout. If it fails, VF2Layout is tried next.\n", "- [VF2Layout](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.VF2Layout): This is an AnalysisPass that selects an ideal layout by treating this stage as a subgraph isomorphism problem, solved by the VF2++ algorithm. If more than one layout is found, a scoring heuristic is run to select the mapping with the lowest average error.\n", " \n", "Then for the heuristic stage, two passes are used by default:\n", "\n", "- [DenseLayout](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.DenseLayout): Finds the sub-graph of the device with the greatest connectivity and that has the same number of qubits as the circuit (used for optimization level 1 if there are control flow operations (such as IfElseOp) present in the circuit).\n", "- [SabreLayout](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.SabreLayout): This pass selects a layout by starting from an initial random layout and repeatedly running the SabreSwap algorithm. This pass is only used in optimization levels 1, 2, and 3 if a perfect layout isn't found via the VF2Layout pass. For more details on this algorithm, refer to the paper [arXiv:1809.02573](arXiv:1809.02573).\n", "\n", "We can find these four passes by using the same code as the init stage." ] }, { "cell_type": "code", "execution_count": null, "id": "5426f911-6672-410e-9ea2-c9bc43a7cd7a", "metadata": { "id": "5426f911-6672-410e-9ea2-c9bc43a7cd7a" }, "outputs": [], "source": [ "list_stage_plugins(\"layout\")" ] }, { "cell_type": "markdown", "id": "28b4724c-00e7-4716-87ae-ca32bfca6b9c", "metadata": { "id": "28b4724c-00e7-4716-87ae-ca32bfca6b9c" }, "source": [ "First, let's check which tasks will be enabled by which optimization_level with the `layout_method='default'` option by running the code below." ] }, { "cell_type": "code", "execution_count": null, "id": "bae1c796-5625-4b3d-96ef-27db476510d3", "metadata": { "id": "bae1c796-5625-4b3d-96ef-27db476510d3" }, "outputs": [], "source": [ "print(\"Plugins run by default layout stage\")\n", "print(\"=================================\")\n", "for i in range(4):\n", " print(f\"\\nOptimization level {i}:\")\n", " pm = generate_preset_pass_manager(backend=backend, optimization_level=i, layout_method='default', seed_transpiler=seed)\n", " qc_tr = pm.run(qc)\n", "\n", " for controller_group in pm.layout.to_flow_controller().tasks:\n", " tasks = getattr(controller_group, \"tasks\", [])\n", " for task in tasks:\n", " print(\" - \" , str(type(task).__name__))\n", " print(qc_tr.layout.final_index_layout())\n", " display(plot_circuit_layout(pm.run(qc), backend))" ] }, { "cell_type": "markdown", "id": "5718018f-1970-410c-9e5d-a6700d5e13f9", "metadata": { "id": "5718018f-1970-410c-9e5d-a6700d5e13f9" }, "source": [ "Now let's compare the score and layout of each option with optimization_level=3." ] }, { "cell_type": "code", "execution_count": null, "id": "8ca85ae0", "metadata": { "id": "8ca85ae0" }, "outputs": [], "source": [ "for option in list_stage_plugins(\"layout\"):\n", " pm = generate_preset_pass_manager(backend=backend, optimization_level=3, layout_method=option, seed_transpiler=seed)\n", " qc_tr = pm.run(qc)\n", " score = scoring(qc_tr, backend)\n", "\n", " print(f\"Layout method = {option}\")\n", " print(f\"Score: {score:.6f}\")\n", " print(f\"Layout: {qc_tr.layout.final_index_layout()}\\n\")" ] }, { "cell_type": "markdown", "id": "067950f8", "metadata": { "id": "067950f8" }, "source": [ "## Routing stage \n", "\n", "In order to implement a two-qubit gate between qubits that are not directly connected on a quantum device, one or more SWAP gates must be inserted into the circuit to move the qubit states around until they are adjacent on the device gate map. Each SWAP gate represents an expensive and noisy operation to perform. Thus, finding the minimum number of SWAP gates needed to map a circuit onto a given device is an important step in the transpilation process. For efficiency, this stage is typically computed alongside the Layout stage by default, but they are logically distinct from one another. The Layout stage selects the hardware qubits to be used, while the Routing stage inserts the appropriate amount of SWAP gates in order to execute the circuits using the selected layout.\n", "\n", "However, finding the optimal SWAP mapping is hard. In fact, it is an NP-hard problem, and is thus prohibitively expensive to compute for all but the smallest quantum devices and input circuits. To work around this, Qiskit uses a stochastic heuristic algorithm called SabreSwap to compute a good, but not necessarily optimal, SWAP mapping. The use of a stochastic method means that the circuits generated are not guaranteed to be the same over repeated runs. Indeed, running the same circuit repeatedly results in a distribution of circuit depths and gate counts at the output. It is for this reason that many users choose to run the routing function (or the entire StagedPassManager) many times and select the lowest-depth circuits from the distribution of outputs." ] }, { "cell_type": "code", "execution_count": null, "id": "0132fbf8-481d-4c08-acf8-280531f01a34", "metadata": { "id": "0132fbf8-481d-4c08-acf8-280531f01a34" }, "outputs": [], "source": [ "list_stage_plugins(\"routing\")" ] }, { "cell_type": "code", "execution_count": null, "id": "4ae60079-2425-4979-bcaf-128ca52e8476", "metadata": { "id": "4ae60079-2425-4979-bcaf-128ca52e8476" }, "outputs": [], "source": [ "print(\"Number of each gates of transpiled circuit and the score\")\n", "print(\"=================================\")\n", "for i in range(4):\n", " print(f\"\\nOptimization level {i}:\")\n", " pm = generate_preset_pass_manager(backend=backend, optimization_level=i, routing_method='basic', seed_transpiler=seed)\n", " qc_tr = pm.run(qc)\n", " score = scoring(qc_tr, backend)\n", " for key, value in qc_tr.count_ops().items():\n", " print(key, \":\", value)\n", " print(f\"Score: {score:.6f}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "9a6d8504-9ed0-4045-bd09-d9b1aac2d262", "metadata": { "id": "9a6d8504-9ed0-4045-bd09-d9b1aac2d262" }, "outputs": [], "source": [ "print(\"Plugins run by basic routing stage\")\n", "print(\"=================================\")\n", "for i in range(4):\n", " print(f\"\\nOptimization level {i}:\")\n", " pm = generate_preset_pass_manager(backend=backend, optimization_level=i, routing_method='basic', seed_transpiler=seed)\n", "\n", " for controller_group in pm.routing.to_flow_controller().tasks:\n", " tasks = getattr(controller_group, \"tasks\", [])\n", " for task in tasks:\n", " print(\" - \" , str(type(task).__name__))\n", " display(pm.routing.draw())\n", " print(pm.run(qc).layout.final_index_layout())" ] }, { "cell_type": "code", "execution_count": null, "id": "6f8a2443", "metadata": { "id": "6f8a2443" }, "outputs": [], "source": [ "## process stopped due to lookahead\n", "options = ['basic','sabre', 'stochastic']\n", "\n", "for option in options:\n", " print(f\"Layout option = {option}:\")\n", " pm = generate_preset_pass_manager(backend=backend, optimization_level=3, routing_method=option, seed_transpiler=seed)\n", " qc_tr = pm.run(qc)\n", " score = scoring(qc_tr, backend)\n", "\n", " print(f\"Score: {score:.6f}\")\n", "\n", " for key, value in qc_tr.count_ops().items():\n", " print(key, \":\", value)\n", " print(\"\\n\")" ] }, { "cell_type": "markdown", "id": "adb4ca35", "metadata": { "id": "adb4ca35" }, "source": [ "## Translation stage \n", "\n", "When writing a quantum circuit, you are free to use any quantum gate (unitary operation) that you like, along with a collection of non-gate operations such as qubit measurement or reset instructions. However, most quantum devices only natively support a handful of quantum gate and non-gate operations. These native gates are part of the definition of a target's ISA and this stage of the preset PassManagers translates (or unrolls) the gates specified in a circuit to the native basis gates of a specified backend. This is an important step, as it allows the circuit to be executed by the backend, but typically leads to an increase in the depth and number of gates.\n", "\n", "Two special cases are especially important to highlight, and help illustrate what this stage does.\n", "\n", "1. If a SWAP gate is not a native gate to the target backend, this requires three CNOT gates: As a product of three CNOT gates, a SWAP is an expensive operation to perform on noisy quantum devices. However, such operations are usually necessary for embedding a circuit into the limited gate connectivities of many devices. Thus, minimizing the number of SWAP gates in a circuit is a primary goal in the transpilation process.\n", "\n", "2. A Toffoli, or controlled-controlled-not gate (ccx), is a three-qubit gate. Given that our basis gate set includes only single- and two-qubit gates, this operation must be decomposed. However, it is quite costly: For every Toffoli gate in a quantum circuit, the hardware may execute up to six CNOT gates and a handful of single-qubit gates. This example demonstrates that any algorithm making use of multiple Toffoli gates will end up as a circuit with large depth and will therefore be appreciably affected by noise.\n", "\n", "Let's check how many options we can use." ] }, { "cell_type": "code", "execution_count": null, "id": "74c0f1fa-1d61-4cfb-bdb7-7ffc4c85ef61", "metadata": { "id": "74c0f1fa-1d61-4cfb-bdb7-7ffc4c85ef61" }, "outputs": [], "source": [ "list_stage_plugins(\"translation\")" ] }, { "cell_type": "markdown", "id": "9b414c44-0d88-4526-885e-54a8d92e84cb", "metadata": { "id": "9b414c44-0d88-4526-885e-54a8d92e84cb" }, "source": [ "The basic options in Qiskit are 'translator' and 'synthesis'. Let's count the total gate numbers, circuit depth, and scores of transpiled circuits with the default option ('translator') and each optimization level." ] }, { "cell_type": "code", "execution_count": null, "id": "ba72bf95-812c-44e1-add0-919beb411c7b", "metadata": { "id": "ba72bf95-812c-44e1-add0-919beb411c7b" }, "outputs": [], "source": [ "print(\"Number of each gates of transpiled circuit\")\n", "print(\"=================================\")\n", "\n", "for i in range(4):\n", " print(f\"\\nOptimization level {i}:\")\n", " pm = generate_preset_pass_manager(backend=backend, optimization_level=i, translation_method='translator', seed_transpiler=seed)\n", " qc_tr = pm.run(qc)\n", " score = scoring(qc_tr, backend)\n", " for key, value in qc_tr.count_ops().items():\n", " print(key, \":\", value)\n", " print(f\"Score: {score:.6f}\")" ] }, { "cell_type": "markdown", "id": "838b6721-0a37-4926-a09a-a43b3629c60e", "metadata": { "id": "838b6721-0a37-4926-a09a-a43b3629c60e" }, "source": [ "Let's count total gate numbers, circuit depth, and scores of transpiled circuits with each option and optimization_level=3." ] }, { "cell_type": "code", "execution_count": null, "id": "88abac73-ba3b-4591-9909-5fb558d4a587", "metadata": { "id": "88abac73-ba3b-4591-9909-5fb558d4a587" }, "outputs": [], "source": [ "options = ['translator', 'synthesis']\n", "\n", "print(\"Number of each gates of transpiled circuit\")\n", "print(\"=================================\")\n", "\n", "for option in options:\n", " print(f\"Layout option = {option}:\")\n", " pm = generate_preset_pass_manager(backend=backend, optimization_level=3, translation_method=option, seed_transpiler=seed)\n", " qc_tr = pm.run(qc)\n", " score = scoring(qc_tr, backend)\n", " for key, value in qc_tr.count_ops().items():\n", " print(key, \":\", value)\n", " print(f\"Score: {score:.6f}\")\n", " print(\"\\n\")" ] }, { "cell_type": "markdown", "id": "5f67bb31-95da-4e2e-b83a-272d294aaef6", "metadata": { "id": "5f67bb31-95da-4e2e-b83a-272d294aaef6" }, "source": [ "Let's plot it on a graph." ] }, { "cell_type": "code", "execution_count": null, "id": "de289df4-9df1-4b72-99cc-d39162cc6dfa", "metadata": { "id": "de289df4-9df1-4b72-99cc-d39162cc6dfa" }, "outputs": [], "source": [ "tr_depths = []\n", "tr_gate_counts = []\n", "tr_scores = []\n", "\n", "options = ['translator', 'synthesis']\n", "\n", "for i in range(4):\n", " for option in options:\n", " pm = generate_preset_pass_manager(backend=backend, optimization_level=i, translation_method=option, seed_transpiler=seed)\n", "\n", " tr_depths.append(pm.run(qc).depth())\n", " tr_gate_counts.append(sum(pm.run(qc).count_ops().values()))\n", " tr_scores.append(scoring(pm.run(qc), backend))" ] }, { "cell_type": "code", "execution_count": null, "id": "e764e25f", "metadata": { "id": "e764e25f" }, "outputs": [], "source": [ "colors = ['#FF6666', '#66B2FF']\n", "markers = [ '^', '*']\n", "linestyles = ['-.', ':']\n", "\n", "opt_list = []\n", "for i in range(4):\n", " opt_list.append(f\"Optimization Level {i}\")\n", "\n", "ax = opt_list\n", "fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(10, 12))\n", "\n", "# Plot 1: Circuit Depth\n", "for i in range(2):\n", " ax1.plot(ax, tr_depths[i::2], label=options[i], marker=markers[i], markersize=9, linestyle=linestyles[i], color=colors[i], linewidth=2)\n", "ax1.set_xlabel(\"translation options\", fontsize=12)\n", "ax1.set_ylabel(\"Depth\", fontsize=12)\n", "ax1.set_title(\"Circuit Depth of Transpiled Circuit\", fontsize=14)\n", "ax1.legend(fontsize=10)\n", "\n", "# Plot 2: Total Number of Gates\n", "for i in range(2):\n", " ax2.plot(ax, tr_gate_counts[i::2], label=options[i], marker=markers[i], markersize=9, linestyle=linestyles[i], color=colors[i], linewidth=2)\n", "ax2.set_xlabel(\"translation options\", fontsize=12)\n", "ax2.set_ylabel(\"# of Total Gates\", fontsize=12)\n", "ax2.set_title(\"Total Number of Gates of Transpiled Circuit\", fontsize=14)\n", "ax2.legend(fontsize=10)\n", "\n", "# Plot 3: Score of Transpiled Circuit\n", "for i in range(2):\n", " ax3.plot(ax, tr_scores[i::2], label=options[i], marker=markers[i],markersize=9, linestyle=linestyles[i], color=colors[i], linewidth=2)\n", "ax3.set_xlabel(\"translation options\", fontsize=12)\n", "ax3.set_ylabel(\"Score of Transpiled Circuit\", fontsize=12)\n", "ax3.set_title(\"Score of Transpiled Circuit\", fontsize=14)\n", "ax3.legend(fontsize=10)\n", "\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "a8b1d224", "metadata": { "id": "a8b1d224" }, "source": [ "## Optimization stage \n", "\n", "Decomposing quantum circuits into the basis gate set of the target device, and the addition of swap gates needed to match hardware topology, conspire to increase the depth and gate count of quantum circuits. Fortunately many routines for optimizing circuits by combining or eliminating gates exist. In some cases these methods are so effective the output circuits have lower depth than the inputs. In other cases, not much can be done, and the computation may be difficult to perform on noisy devices. Different gate optimizations are turned on with different optimization_level values.\n", "\n", "- For optimization_level=1, this stage prepares [Optimize1qGatesDecomposition](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.Optimize1qGatesDecomposition) and [CXCancellation](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.CXCancellation), which combine chains of single-qubit gates and cancel any back-to-back CNOT gates.\n", "- For optimization_level=2, this stage uses the [CommutativeCancellation](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.CommutativeCancellation) pass instead of `CXCancellation`, which removes redundant gates by exploiting commutation relations.\n", "- For optimization_level=3, this stage prepares the following passes- [Collect2qBlocks](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.Collect2qBlocks), [ConsolidateBlocks](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.ConsolidateBlocks), [UnitarySynthesis](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.UnitarySynthesis), [Optimize1qGateDecomposition](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.Optimize1qGatesDecomposition), [CommutativeCancellation](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.CommutativeCancellation).\n", "Additionally, this stage also executes a few final checks to make sure that all instructions in the circuit are composed of the basis gates available on the target backend.\n", "\n", "\n", "At this stage, we can set up two options:\n", "\n", "- approximation_degree (float, in the range 0-1 | None) - Heuristic dial used for circuit approximation (1.0 = no approximation, 0.0 = maximal approximation). The default value is 1.0. Specifying None sets the approximation degree to the reported error rate. See the [Approximation degree section](https://docs.quantum.ibm.com/transpile/common-parameters#approximation-degree) for more details.\n", "- optimization_method (str) - The plugin name to use for the optimization stage. By default an external plugin is not used. You can see a list of installed plugins by running list_stage_plugins() with optimization for the stage_name argument.\n", "\n" ] }, { "cell_type": "markdown", "id": "QNmgZ8owogWI", "metadata": { "id": "QNmgZ8owogWI" }, "source": [ "
\n", " \n", "#### Bonus exercise (not graded)\n", "\n", "As this stage is strongly related to optimizing gates of circuits, let's try to plot the following with each optimization_level\n", "\n", "1. total gate number\n", "2. circuit depth\n", "3. score of the transpiled circuit\n", "\n", "with different approximation_degree values - $[ 0, 0.1, 0.2, ... ,0.9, 1]$ by finishing below codes.\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": null, "id": "a3117ff4-32c6-4e8f-ba5e-b63d8fcb78d2", "metadata": { "id": "a3117ff4-32c6-4e8f-ba5e-b63d8fcb78d2" }, "outputs": [], "source": [ "tr_depths = []\n", "tr_gate_counts = []\n", "tr_scores = []\n", "\n", "approximation_degree_list = np.linspace(0,1,10)\n", "\n", "for i in range(4):\n", " for j in approximation_degree_list:\n", " # your code here #\n", "\n", "\n", " # your code here #" ] }, { "cell_type": "code", "execution_count": null, "id": "8b1651cc", "metadata": { "id": "8b1651cc" }, "outputs": [], "source": [ "colors = ['#FF6666', '#FFCC66', '#99FF99', '#66B2FF']\n", "markers = ['o', 's', '^', '*']\n", "linestyles = ['-', '--', '-.', ':']\n", "\n", "ax = approximation_degree_list\n", "fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(10, 12))\n", "\n", "# Plot 1: Circuit Depth\n", "for i in range(4):\n", " ax1.plot(ax, tr_depths[i*10:i*10+10], label=f\"Optimization Level {i}\", marker=markers[i], markersize=9, linestyle=linestyles[i], color=colors[i], linewidth=2)\n", "ax1.set_xlabel(\"Approximation Degree\", fontsize=12)\n", "ax1.set_ylabel(\"Depth\", fontsize=12)\n", "ax1.set_title(\"Circuit Depth of Transpiled Circuit\", fontsize=14)\n", "ax1.legend(fontsize=10)\n", "\n", "# Plot 2: Total Number of Gates\n", "for i in range(4):\n", " ax2.plot(ax, tr_gate_counts[i*10:i*10+10], label=f\"Optimization Level {i}\", marker=markers[i], markersize=9, linestyle=linestyles[i], color=colors[i], linewidth=2)\n", "ax2.set_xlabel(\"Approximation Degree\", fontsize=12)\n", "ax2.set_ylabel(\"# of Total Gates\", fontsize=12)\n", "ax2.set_title(\"Total Number of Gates of Transpiled Circuit\", fontsize=14)\n", "ax2.legend(fontsize=10)\n", "\n", "# Plot 3: Score of Transpiled Circuit\n", "for i in range(4):\n", " ax3.plot(ax, tr_scores[i*10:i*10+10], label=f\"Optimization Level {i}\", marker=markers[i],markersize=9, linestyle=linestyles[i], color=colors[i], linewidth=2)\n", "ax3.set_xlabel(\"Approximation Degree\", fontsize=12)\n", "ax3.set_ylabel(\"Score of Transpiled Circuit\", fontsize=12)\n", "ax3.set_title(\"Score of Transpiled Circuit\", fontsize=14)\n", "ax3.legend(fontsize=10)\n", "\n", "fig.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "694f1109-676b-4567-9a8a-f645956dfde7", "metadata": {}, "source": [ "Looking at the graph above, what do you think? Looking at the total gate number, depth, and score of the circuit, it seems like approximation_degree=0.5 returns the best performance, so did you think we should set the approximation_degree to 0.5 in the future?\n", "\n", "Here is the important feature of optimization stage comes. \n", "\n", "As you can see through an [official document about Approximation Degree](https://docs.quantum.ibm.com/transpile/common-parameters#approximation-degree), it is about \"approximating\" circuit if the value is not 1. To see what this means, let's see the difference by comparing the ideal simulation result of this target circuit and transpiled circuits with approximation_degree=[0, 0.5, 1] by using [Hellinger fidelity](https://docs.quantum.ibm.com/api/qiskit/0.31/qiskit.quantum_info.hellinger_fidelity), wich returns fidelity between two counts distributions.\n", "\n", "First, let's compute the ideal noisyless measurement, by using `AerSimulator with `statevector` method.\n" ] }, { "cell_type": "code", "execution_count": null, "id": "cacf0f99-2a9d-4395-bf1a-fa7e4d4b3146", "metadata": {}, "outputs": [], "source": [ "#declair ideal simulator and sampler with options\n", "\n", "aer_sim = AerSimulator(method='statevector')\n", "sampler = Sampler(backend=aer_sim)\n", "sampler.options.default_shots = 20000\n", "\n", "qc_m = qc.measure_all(inplace=False)\n", "\n", "pm_sim = generate_preset_pass_manager(backend=aer_sim, optimization_level=3, seed_transpiler=seed)\n", "\n", "result = sampler.run([pm_sim.run(qc_m)]).result()[0]\n", "ideal_counts = result.data.meas.get_counts()" ] }, { "cell_type": "markdown", "id": "13d501cb-39a2-468c-924e-7d9414a34a6d", "metadata": {}, "source": [ "Next, let's create 3 circuits by using `optimization_level=3` and `approximation_degree = [0, 0.5, 1]` with our FakeTorino() and get counts with 20000 shots." ] }, { "cell_type": "code", "execution_count": null, "id": "2ed30a44-ae38-42f6-a17b-20674e19b9d6", "metadata": {}, "outputs": [], "source": [ "pm_0 = generate_preset_pass_manager(backend=backend, optimization_level=3, approximation_degree=0, seed_transpiler=seed)\n", "pm_05 = generate_preset_pass_manager(backend=backend, optimization_level=3, approximation_degree=0.5, seed_transpiler=seed) \n", "pm_1 = generate_preset_pass_manager(backend=backend, optimization_level=3, approximation_degree=1, seed_transpiler=seed) \n", "\n", "noisy_sampler = Sampler(backend=backend)\n", "noisy_sampler.options.default_shots = 20000\n", "\n", "noisy0 = noisy_sampler.run([pm_0.run(qc_m)]).result()[0].data.meas.get_counts()\n", "noisy05 = noisy_sampler.run([pm_05.run(qc_m)]).result()[0].data.meas.get_counts()\n", "noisy1 = noisy_sampler.run([pm_1.run(qc_m)]).result()[0].data.meas.get_counts()\n" ] }, { "cell_type": "markdown", "id": "9fa5d350-d1e1-45ac-a159-eda2a41f68aa", "metadata": {}, "source": [ "Now let's compute the fidelity of each counts by using `Hellinger fidelity`." ] }, { "cell_type": "code", "execution_count": null, "id": "f237ac8f-0e37-4e8d-b0f1-6f518b527f0b", "metadata": {}, "outputs": [], "source": [ "print(\"approximation_degree = 0 fidelity\", round(hellinger_fidelity(ideal_counts, noisy0), 4))\n", "print(\"approximation_degree = 0.5 fidelity\", round(hellinger_fidelity(ideal_counts, noisy05), 4))\n", "print(\"approximation_degree = 1 fidelity\", round(hellinger_fidelity(ideal_counts, noisy1), 4))" ] }, { "cell_type": "markdown", "id": "ea1fe0df-56ca-4f99-b5b8-8ae14fb0d30a", "metadata": {}, "source": [ "It shows even we can get the smallest circuit by using approximation_degree = 0.5, the transpiled circuit is too much approximated from original circuit. \n", "\n", "Please remember that, when you create or customize transpiler which affect on enrolling circuit, there are more to consider." ] }, { "cell_type": "markdown", "id": "812ffa80", "metadata": { "id": "812ffa80" }, "source": [ "## Scheduling stage \n", "\n", "This last stage is only run if it is explicitly called for (similar to the init stage) and does not run by default (though a method can be specified by setting the 1scheduling_method1 argument when calling `generate_preset_pass_manager`). The scheduling stage is typically used once the circuit has been translated to the target basis, mapped to the device, and optimized. These passes focus on accounting for all the idle time in a circuit. At a high level, the scheduling pass can be thought of as explicitly inserting delay instructions to account for the idle time between gate executions and to inspect how long the circuit will be running on the backend.\n", "\n", "First, let'sc check which options we can use." ] }, { "cell_type": "code", "execution_count": null, "id": "4432b76a-8b08-4be3-907a-2afddc752cab", "metadata": { "id": "4432b76a-8b08-4be3-907a-2afddc752cab" }, "outputs": [], "source": [ "list_stage_plugins(\"scheduling\")" ] }, { "cell_type": "markdown", "id": "f9dc83cd-9497-4a61-83a8-463ea7e51efd", "metadata": { "id": "f9dc83cd-9497-4a61-83a8-463ea7e51efd" }, "source": [ "To use scheduling options, let's first prepare `timing_constraints`, which contains relevant information about the backend to get the optimized pulse schedule." ] }, { "cell_type": "code", "execution_count": null, "id": "b8a3687e-575c-45ab-85f0-52eda3456916", "metadata": { "id": "b8a3687e-575c-45ab-85f0-52eda3456916" }, "outputs": [], "source": [ "backend_timing = backend.target.timing_constraints()\n", "timing_constraints = TimingConstraints(\n", " granularity=backend_timing.granularity,\n", " min_length=backend_timing.min_length,\n", " pulse_alignment=backend_timing.pulse_alignment,\n", " acquire_alignment=backend_timing.acquire_alignment )" ] }, { "cell_type": "code", "execution_count": null, "id": "af52f511-c0dd-42cd-94ef-c175761ca96b", "metadata": { "id": "af52f511-c0dd-42cd-94ef-c175761ca96b" }, "outputs": [], "source": [ "# Run with optimization level 3 and 'asap' scheduling pass\n", "pm_asap = generate_preset_pass_manager(\n", " optimization_level=3,\n", " backend=backend,\n", " timing_constraints=timing_constraints,\n", " scheduling_method=\"asap\",\n", " seed_transpiler=seed,\n", ")" ] }, { "cell_type": "code", "execution_count": null, "id": "e74e1652-0910-4a6c-8415-44ea7f1339df", "metadata": { "id": "e74e1652-0910-4a6c-8415-44ea7f1339df" }, "outputs": [], "source": [ "my_style = {\n", " 'formatter.general.fig_width': 40,\n", " 'formatter.general.fig_unit_height': 1,\n", "}\n", "\n", "draw(pm_asap.run(qc), style=IQXStandard(**my_style), show_idle=False, show_delays=True)" ] }, { "cell_type": "code", "execution_count": null, "id": "e9ab99c2-c7a1-4b82-a8af-10045d633e10", "metadata": { "id": "e9ab99c2-c7a1-4b82-a8af-10045d633e10" }, "outputs": [], "source": [ "pm_alap = generate_preset_pass_manager(\n", " optimization_level=3,\n", " backend=backend,\n", " timing_constraints=timing_constraints,\n", " scheduling_method=\"alap\",\n", " seed_transpiler=seed,\n", ")\n", "draw(pm_alap.run(qc), style=IQXStandard(**my_style), show_idle=False, show_delays=True)" ] }, { "cell_type": "markdown", "id": "e89663c0-8818-4b22-bfe6-705d5b709e27", "metadata": { "id": "e89663c0-8818-4b22-bfe6-705d5b709e27" }, "source": [ "As you can see, these two circuits have a lot of delays, but the position and order are different. Depends on circuit and backend, this scheduling can bring differences in performance. Let's check and compare the scores of these two circuits." ] }, { "cell_type": "code", "execution_count": null, "id": "58f43a87-69bc-4a39-a31e-e2b035e9937d", "metadata": { "id": "58f43a87-69bc-4a39-a31e-e2b035e9937d" }, "outputs": [], "source": [ "print(\"Score\")\n", "print(\"===============\")\n", "print(f\"asap: {scoring(pm_asap.run(qc), backend):.6f}\")\n", "print(f\"alap: {scoring(pm_alap.run(qc), backend):.6f}\")" ] }, { "cell_type": "markdown", "id": "042fa34d-da5d-4771-8f5f-85694cc6c0b9", "metadata": { "id": "042fa34d-da5d-4771-8f5f-85694cc6c0b9" }, "source": [ "
\n", "\n", "\n", "\n", "### Exercise 4:\n", "\n", "**Your Task:** At this point, you should feel like a professional at constructing different pass managers. Please make a pass manager with the following options:\n", "\n", "1. optimization level = 3\n", "2. \"sabre\" layout\n", "3. \"sabre\" routing\n", "4. \"synthesis\" translation\n", " \n", "
" ] }, { "cell_type": "code", "execution_count": null, "id": "c66fc960-522c-491a-a715-22a75c896ebc", "metadata": { "id": "c66fc960-522c-491a-a715-22a75c896ebc" }, "outputs": [], "source": [ "pm_ex4 = generate_preset_pass_manager(\n", " backend=backend,\n", "\n", " ### Write your code below here ###\n", "\n", "\n", "\n", " ### Don't change any code past this line ###\n", ")" ] }, { "cell_type": "code", "execution_count": null, "id": "41581917", "metadata": { "id": "41581917" }, "outputs": [], "source": [ "# Submit your answer using following code\n", "\n", "grade_lab2_ex4(pm_ex4)" ] }, { "cell_type": "markdown", "id": "c538e3cb", "metadata": { "id": "c538e3cb" }, "source": [ "# Build your own pass managers with staged pass manager \n", "\n", "One of the powerful features of the Qiskit v1.0 transpiler is its flexibility. It allows you compose a `PassManager` with only two or three stages. It also allows you to put your own `Pass` at desired stages." ] }, { "cell_type": "markdown", "id": "Hrv08ixi0ZCD", "metadata": { "id": "Hrv08ixi0ZCD" }, "source": [ "## Build `Dynamical Decoupling` pass \n", "\n", "Here, we will try to build a custom `scheduling` pass to perform `Dynamical Decoupling`, which works by adding pulse sequences (known as dynamical decoupling sequences) to idle qubits to flip them around the Bloch sphere, cancelling the effect of noise channels and thereby suppressing decoherence. These pulse sequences are similar to refocusing pulses used in nuclear magnetic resonance. For a full description, see [A Quantum Engineer's Guide to Superconducting Qubits](https://arxiv.org/abs/1904.06560). To learn more, you can hear from Nick Bronn about dynamic decoupling in this [Qiskit video](https://www.youtube.com/watch?v=67jRWQuW3Fk).\n", "\n", "For more details, you can check out the [Create a pass manager for dynamical decoupling](https://docs.quantum.ibm.com/transpile/dynamical-decoupling-pass-manager) documentation.\n", "\n", "We will continue to use our same quantum circuit. A dynamical decoupling sequence is a series of gates that compose to the identity and are spaced regularly in time. For example, start by creating a simple sequence called XY4 consisting of four gates." ] }, { "cell_type": "code", "execution_count": null, "id": "23547853-16a3-40fd-ad87-a5ab538a8164", "metadata": { "id": "23547853-16a3-40fd-ad87-a5ab538a8164" }, "outputs": [], "source": [ "X = XGate()\n", "Y = YGate()\n", "\n", "dd_sequence = [X, Y, X, Y]" ] }, { "cell_type": "markdown", "id": "b24db346-b8c5-4f78-bf49-3f45149ed019", "metadata": { "id": "b24db346-b8c5-4f78-bf49-3f45149ed019" }, "source": [ "Because of the regular timing of dynamical decoupling sequences, information about the YGate must be added to the target because it is not a basis gate, whereas the XGate is. We know a priori that the YGate has the same duration and error as the XGate, however, so we can just retrieve those properties from the target and add them back for the YGate. This is also why the basis_gates were saved separately, since we are adding the YGate instruction to the target, although it is not an actual basis gate of our ibm_torino backend (here FakeTorino, which has a same configurations including basis gate sets of real ibm_torino)." ] }, { "cell_type": "code", "execution_count": null, "id": "322b1ee1-da0b-404c-ac58-eb9c98cd5ffc", "metadata": { "id": "322b1ee1-da0b-404c-ac58-eb9c98cd5ffc" }, "outputs": [], "source": [ "backend=FakeTorino()\n", "\n", "target = backend.target\n", "\n", "y_gate_properties = {}\n", "for qubit in range(target.num_qubits):\n", " y_gate_properties.update(\n", " {\n", " (qubit,): InstructionProperties(\n", " duration=target[\"x\"][(qubit,)].duration,\n", " error=target[\"x\"][(qubit,)].error,\n", " )\n", " }\n", " )\n", "\n", "target.add_instruction(YGate(), y_gate_properties)" ] }, { "cell_type": "markdown", "id": "c0129f62-3355-45a7-bdee-ed3f4e1b6c0b", "metadata": { "id": "c0129f62-3355-45a7-bdee-ed3f4e1b6c0b" }, "source": [ "Next, execute the custom passes." ] }, { "cell_type": "markdown", "id": "80da4e56-d66e-44e1-8d55-77646e8beda3", "metadata": { "id": "80da4e56-d66e-44e1-8d55-77646e8beda3" }, "source": [ "
\n", "\n", "\n", "\n", "### Exercise 5:\n", "\n", "**Your Task:** Instantiate the PassManager with `ASAPScheduleAnalysis`s and `PadDynamicalDecoupling`. Run `ASAPScheduleAnalysis` first to add timing information about the quantum circuit before the regularly-spaced dynamical decoupling sequences can be added. These passes are run on the circuit with .run().\n", "
" ] }, { "cell_type": "code", "execution_count": null, "id": "b3253737-730c-4922-87ae-5d8c22b74719", "metadata": { "id": "b3253737-730c-4922-87ae-5d8c22b74719" }, "outputs": [], "source": [ "dd_pm = PassManager(\n", " [\n", " ## your code here\n", "\n", " ## your code here\n", "\n", " ]\n", ")" ] }, { "cell_type": "markdown", "id": "8964f016-bcd3-46ac-97d0-76ff52ca8f21", "metadata": { "id": "8964f016-bcd3-46ac-97d0-76ff52ca8f21" }, "source": [ "Now let's see how it works by comparing it with a `Timing` of `asap` scheduling option. First, let's bring the timing drawing from above.\n" ] }, { "cell_type": "code", "execution_count": null, "id": "bd96def6-31fc-4cec-a0e1-e33f14cc29e5", "metadata": { "id": "bd96def6-31fc-4cec-a0e1-e33f14cc29e5" }, "outputs": [], "source": [ "draw(pm_asap.run(qc), style=IQXStandard(**my_style), show_idle=False, show_delays=True)" ] }, { "cell_type": "markdown", "id": "3bb39b5e-717a-4844-87e1-35ce48131b1d", "metadata": { "id": "3bb39b5e-717a-4844-87e1-35ce48131b1d" }, "source": [ "Now, let's make a custom scheduling `Pass` by using the function we've created.\n", "\n", "For this new `scheduling pass` we will use `StagedPassManager`. We can make a PassManager that only has one pass. After making a custom staged PassManager, we will apply this to the transpiled circuit with pm_asap, that we already created above." ] }, { "cell_type": "code", "execution_count": null, "id": "bd5a1de6-5a79-4ba2-b094-cb86d8204589", "metadata": { "id": "bd5a1de6-5a79-4ba2-b094-cb86d8204589" }, "outputs": [], "source": [ "staged_pm_dd = StagedPassManager(\n", " stages=[\"scheduling\"],\n", " scheduling=dd_pm\n", ")" ] }, { "cell_type": "code", "execution_count": null, "id": "3a4372c1-ee09-4ff3-9f39-803c18632af6", "metadata": { "id": "3a4372c1-ee09-4ff3-9f39-803c18632af6" }, "outputs": [], "source": [ "qc_tr = pm_asap.run(qc)\n", "draw(staged_pm_dd.run(qc_tr), style=IQXStandard(**my_style), show_idle=False, show_delays=True)" ] }, { "cell_type": "code", "execution_count": null, "id": "b0b108a6", "metadata": { "id": "b0b108a6" }, "outputs": [], "source": [ "# Submit your answer using following code\n", "\n", "grade_lab2_ex5(staged_pm_dd)" ] }, { "cell_type": "markdown", "id": "4baba9e4-e53a-49e5-828e-1d444395584d", "metadata": { "id": "4baba9e4-e53a-49e5-828e-1d444395584d" }, "source": [ "## (Bonus) Ecosystem and Qiskit Transpiler plugin \n", "\n", "To facilitate the development and reuse of custom transpilation code by the wider community of Qiskit users, the Qiskit SDK supports a plugin interface that enables third-party Python packages to declare that they provide extended transpilation functionality accessible via Qiskit.\n", "\n", "Currently, third-party plugins can provide extended transpilation functionality in three ways:\n", "\n", "- [A transpiler stage plugin](https://docs.quantum.ibm.com/api/qiskit/transpiler_plugins) provides a pass manager that can be used in place of one of the six stages of a preset staged pass manager: init, layout, routing, translation, optimization, and scheduling.\n", "- [A unitary synthesis plugin](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin) provides extended functionality for unitary gate synthesis.\n", "- [A high-level synthesis plugin](https://docs.quantum.ibm.com/api/qiskit/qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin) provides extended functionality for synthesizing \"high-level objects\" such as linear functions or Clifford operators. High-level objects are represented by subclasses of the [Operation](https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.Operation) class.\n", "\n", "\n", "Refer to [this page](https://docs.quantum.ibm.com/transpile/transpiler-plugins) for more details, including how to install and use plugins.\n", "\n", "Also, you can be a `contributor` of these plugins! Creating a transpiler plugin is a great way to share your transpilation code with the wider Qiskit community, allowing other users to benefit from the functionality you've developed. [Here](https://docs.quantum.ibm.com/transpile/create-a-transpiler-plugin) you can find guidelines and instructions on how to contribute to the Qiskit community by providing nice transpiler plugins." ] }, { "cell_type": "markdown", "id": "ac270f3d", "metadata": { "id": "ac270f3d" }, "source": [ "# Additional information\n", "\n", "**Created by:** Sophy Shin, Sumit Suresh Kale, Abby Cross\n", "\n", "**Advised by:** Va Barbosa, Junye Huang, Brian Ingmanson\n", "\n", "**Version:** 1.2.2" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.14" } }, "nbformat": 4, "nbformat_minor": 5 }