{ "cells": [ { "cell_type": "markdown", "id": "05bddada-7a84-4269-8da9-f5672d459d35", "metadata": {}, "source": [ "# Compiling Circuits for EeroQ via Qiskit" ] }, { "cell_type": "markdown", "id": "867058d1", "metadata": {}, "source": [ "[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Infleqtion/client-superstaq/blob/main/docs/source/optimizations/eeroq/eeroq_qss.ipynb) [![Launch Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/Infleqtion/client-superstaq/HEAD?labpath=docs/source/optimizations/eeroq/eeroq_qss.ipynb)" ] }, { "cell_type": "markdown", "id": "4ada42a5", "metadata": {}, "source": [ "Below is a brief tutorial on Superstaq compilation for EeroQ Quantum Hardware whose quantum computer uses electrons bound to superfluid helium. For more information on EeroQ, visit their website [here](https://eeroq.com/)." ] }, { "cell_type": "markdown", "id": "d06c9dcf-5ea8-4f3f-92b9-14444be41504", "metadata": {}, "source": [ "## Imports and API Token\n", "\n", "This example tutorial notebook uses `qiskit-superstaq`, our Superstaq client for Qiskit; you can try it out by running `pip install qiskit-superstaq`:" ] }, { "cell_type": "code", "execution_count": null, "id": "c313774b", "metadata": {}, "outputs": [], "source": [ "from __future__ import annotations" ] }, { "cell_type": "code", "execution_count": 1, "id": "bb3fbbd3-986b-4457-8b87-e3cb42363a28", "metadata": {}, "outputs": [], "source": [ "# Required imports\n", "try:\n", " import qiskit\n", " import qiskit_superstaq as qss\n", "except ImportError:\n", " print(\"Installing qiskit-superstaq...\")\n", " %pip install --quiet 'qiskit-superstaq[examples]'\n", " print(\"Installed qiskit-superstaq.\")\n", " print(\"You may need to restart the kernel to import newly installed packages.\")\n", " import qiskit\n", " import qiskit_superstaq as qss\n", "\n", "import qiskit.circuit.random" ] }, { "cell_type": "markdown", "id": "dc3c6580-50e3-4edc-807b-e33dedbf8ca2", "metadata": {}, "source": [ "To interface Superstaq via Qiskit, we must first instantiate a provider in `qiskit-superstaq` with `SuperstaqProvider()`. We then supply a Superstaq API token (or key) by either providing the API token as an argument of `qss.SuperstaqProvider()` or by setting it as an environment variable (see more details [here](https://superstaq.readthedocs.io/en/latest/get_started/basics/basics_qss.html#Set-up-access-to-Superstaq%E2%80%99s-API))" ] }, { "cell_type": "code", "execution_count": 2, "id": "99b54393-f9f0-48c8-be31-033fd62d4624", "metadata": {}, "outputs": [], "source": [ "# Instantiate a qiskit superstaq provider\n", "provider = qss.SuperstaqProvider()" ] }, { "cell_type": "markdown", "id": "275bcdda-0eef-41c0-b7ea-017accab90eb", "metadata": {}, "source": [ "## EeroQ Gates" ] }, { "cell_type": "markdown", "id": "97cd5f77", "metadata": {}, "source": [ "One of the native gates that EeroQ devices operate is the Dipole-Dipole (DD) gate, which couples two electrons. This gate can be applied to electrons within a qubit to perform rotation gates, or across qubits to perform entangling gates. The DD gate is available as a custom gate in `qiskit-superstaq`." ] }, { "cell_type": "code", "execution_count": 3, "id": "702504fe-5a52-425b-a52f-29973c7f94b3", "metadata": {}, "outputs": [], "source": [ "dd_gate = qss.DDGate(1)" ] }, { "cell_type": "code", "execution_count": null, "id": "26d2ae08-3550-4ffe-8e23-5bf226ecad91", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Define a simple circuit with a DD gate\n", "qc = qiskit.QuantumCircuit(2)\n", "qc.append(dd_gate, [0, 1])\n", "qc.draw(\"mpl\")" ] }, { "cell_type": "markdown", "id": "26cd7f88-ab49-48bd-beae-ef6883d61cd0", "metadata": {}, "source": [ "Below is the EeroQ protocol for a CZ Gate." ] }, { "cell_type": "markdown", "id": "0bc3fd9e-8e18-45df-803f-733ca7cc5854", "metadata": {}, "source": [ "![title](images/DD_gate.png)" ] }, { "cell_type": "markdown", "id": "2f73b7e3", "metadata": {}, "source": [ "## Single Circuit Compilation" ] }, { "cell_type": "markdown", "id": "2d540a50", "metadata": {}, "source": [ "With that gateset, we can compile to the EeroQ Wonderlake device by instantiating an EeroQ backend. We can then call the `compile` method on that backend." ] }, { "cell_type": "markdown", "id": "3e0d9606", "metadata": {}, "source": [ "We can compile to the EeroQ Wonderlake device by instantiating an EeroQ backend. We can then call the `backend.compile` method." ] }, { "cell_type": "code", "execution_count": 5, "id": "7797154d", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create a two-qubit qiskit circuit\n", "qc = qiskit.QuantumCircuit(2)\n", "qc.cz(0, 1)\n", "qc.measure_all()\n", "\n", "# Draw circuit for visualization\n", "qc.draw(\"mpl\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "1a1ad80c", "metadata": {}, "outputs": [], "source": [ "# Create the backend to compile for\n", "backend = provider.get_backend(\"eeroq_wonderlake_qpu\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "f3d91dd4", "metadata": {}, "outputs": [], "source": [ "# Compile circuit and retrieve by calling `.circuit`\n", "compiled_circuit = backend.compile(qc).circuit" ] }, { "cell_type": "markdown", "id": "5c7e361d", "metadata": {}, "source": [ "Below we define some helper functions to remove any inactive qubits in the compiled circuit:" ] }, { "cell_type": "code", "execution_count": null, "id": "a52fd87f-681a-4f88-80ef-146f6b9de78e", "metadata": {}, "outputs": [], "source": [ "def count_gates(qc: qiskit.QuantumCircuit) -> dict[object, int]:\n", " gate_count = dict.fromkeys(qc.qubits, 0)\n", " for gate in qc.data:\n", " for qubit in gate.qubits:\n", " gate_count[qubit] += 1\n", " return gate_count\n", "\n", "\n", "def remove_idle_wires(qc: qiskit.QuantumCircuit) -> qiskit.QuantumCircuit:\n", " qc_out = qc.copy()\n", " gate_count = count_gates(qc_out)\n", " for qubit, count in gate_count.items():\n", " if count == 0:\n", " qc_out.qubits.remove(qubit)\n", " return qc_out" ] }, { "cell_type": "code", "execution_count": 9, "id": "79dbf4f5-1fc3-4a9a-af6b-15d0ad102fe8", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Visualize the compiled circuit\n", "remove_idle_wires(compiled_circuit).draw(\"mpl\")" ] }, { "cell_type": "markdown", "id": "7cb64f54-69d8-417f-9b1d-38a5900e5b7f", "metadata": {}, "source": [ "## Multiple Circuit Compilation" ] }, { "cell_type": "markdown", "id": "eb9ab7f7", "metadata": {}, "source": [ "We can repeat the above experiment with larger circuits to see how they compile. Instead of compiling a single circuit at a time, we can also compile a list of circuits in one-go. To illustrate this, let us create two circuits: a Bell circuit, and another randomly generated qiskit circuit: " ] }, { "cell_type": "code", "execution_count": 10, "id": "bc50abac-a3cc-4188-b5c0-3a11822389c7", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bell_qc = qiskit.QuantumCircuit(2)\n", "bell_qc.h(0)\n", "bell_qc.cx(0, 1)\n", "bell_qc.draw(\"mpl\")" ] }, { "cell_type": "code", "execution_count": 11, "id": "8810dfd6", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rand_qc = qiskit.circuit.random.random_circuit(2, 3, measure=False)\n", "rand_qc.draw(\"mpl\")" ] }, { "cell_type": "code", "execution_count": 12, "id": "b3e9a5fa-72ad-4423-a5f2-0a8a82fd4e73", "metadata": {}, "outputs": [], "source": [ "# Pass in a list of circuits to `compile`\n", "compiled_outputs = backend.compile([bell_qc, rand_qc])\n", "\n", "# To get the list of compiled circuits from the compiled outputs list, call `circuits` instead of just `circuit` which was called for the single circuit input\n", "compiled_circuits = compiled_outputs.circuits" ] }, { "cell_type": "markdown", "id": "c535908f", "metadata": {}, "source": [ "Here's the compiled Bell circuit," ] }, { "cell_type": "code", "execution_count": 13, "id": "459c27d5-b70d-416b-a362-b77041718ed2", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "remove_idle_wires(compiled_circuits[0]).draw(\"mpl\")" ] }, { "cell_type": "markdown", "id": "fae341ed", "metadata": {}, "source": [ "And the compiled random circuit, fully expressed in the native gateset of EeroQ:" ] }, { "cell_type": "code", "execution_count": 14, "id": "a5360ac2", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "remove_idle_wires(compiled_circuits[1]).draw(\"mpl\", fold=-1)" ] }, { "cell_type": "markdown", "id": "cd09e5d5-60f2-4361-b879-f2479df82e70", "metadata": {}, "source": [ "## Using the Superstaq Simulator\n", "\n", "Lastly, we will go over how to simulate a circuit to the EeroQ Wonderlake QPU. This feature is available to free trial users, and can be done by passing the `\"dry-run\"` method parameter when calling `backend.run()` to instruct Superstaq to ideally sample the circuit. Let us generate a random circuit again to demonstrate: " ] }, { "cell_type": "code", "execution_count": 15, "id": "81f64cd2-7735-4a95-aada-1efa1a0da946", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Example random circuit including measurements\n", "qc = qiskit.circuit.random.random_circuit(2, 3, measure=True)\n", "qc.draw(\"mpl\")" ] }, { "cell_type": "code", "execution_count": null, "id": "8ab1a516", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'00': 1000}\n" ] } ], "source": [ "# Specify \"dry-run\" as the method to run an ideal Superstaq execution\n", "job = backend.run(qc, shots=1000, method=\"dry-run\")\n", "\n", "# Get the counts from the measurement\n", "print(job.result(0).get_counts())" ] }, { "cell_type": "markdown", "id": "b45eec80", "metadata": {}, "source": [ "We can additionally perform a noisy simulation of the circuit by setting the `method` argument to `\"noise-sim\"` and specifying an error rate." ] }, { "cell_type": "code", "execution_count": 17, "id": "9f4e257f-8d61-4578-a038-3713a5678fbf", "metadata": {}, "outputs": [], "source": [ "noisy_job = backend.run(qc, shots=1000, method=\"noise-sim\", error_rate=0.01)" ] }, { "cell_type": "code", "execution_count": 18, "id": "cf99f946-020d-4108-8aed-a0c3fdb65559", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'00': 892, '12': 16, '10': 21, '20': 31, '22': 6, '02': 9}\n" ] } ], "source": [ "print(noisy_job.result(0).get_counts())" ] }, { "cell_type": "markdown", "id": "e780139f-2969-4e8c-b006-e84cb0860c77", "metadata": {}, "source": [ "With the effect of noise, we no longer just measure $\\ket{00}$ like in the dry-run simulation. Note that a measurement value of 2 refers to an out-of-codespace error." ] } ], "metadata": { "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.9.16" } }, "nbformat": 4, "nbformat_minor": 5 }