From 1a19c0f923c0d9496999afea8318014dcd2d1fc0 Mon Sep 17 00:00:00 2001 From: Jim Garrison Date: Thu, 2 May 2024 21:40:01 -0400 Subject: [PATCH] Create how-to optimize transpilation guide --- .../how_to_optimize_transpilation.ipynb | 345 ++++++++++++++++++ test/cutting/test_cutting_workflows.py | 2 +- 2 files changed, 346 insertions(+), 1 deletion(-) create mode 100644 docs/circuit_cutting/how-tos/how_to_optimize_transpilation.ipynb diff --git a/docs/circuit_cutting/how-tos/how_to_optimize_transpilation.ipynb b/docs/circuit_cutting/how-tos/how_to_optimize_transpilation.ipynb new file mode 100644 index 000000000..c760e4d8f --- /dev/null +++ b/docs/circuit_cutting/how-tos/how_to_optimize_transpilation.ipynb @@ -0,0 +1,345 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9c9bf2e6-78a5-4e30-8f13-ed3b84e820e6", + "metadata": {}, + "source": [ + "# How to optimize transpilation\n", + "\n", + "In the tutorials, the subexperiments were generated and then each one was transpiled independently.\n", + "\n", + "It is possible instead to optimize the workflow by performing the bulk of transpilation up front, followed by some minor passes over the generated circuits (e.g., to ensure they uses the basis gates available on the hardware, or to perform local optimizations). This guide provides one way to do this.\n", + "\n", + "NOTE: The steps in this guide only work if the circuit is _separated_ by the cut gates. If you are performing circuit cutting to reduce a circuit's depth, then this will not work. See open issue." + ] + }, + { + "cell_type": "markdown", + "id": "c39383ce-d68a-4b09-8caf-29e585ba4c76", + "metadata": {}, + "source": [ + "### Specify a backend\n", + "\n", + "You can provide either a fake backend or a hardware backend from Qiskit Runtime." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "4912e4a4-1230-41d7-ac1b-c30b8e8cee9d", + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit_ibm_runtime.fake_provider import FakeManilaV2\n", + "\n", + "backend = FakeManilaV2()" + ] + }, + { + "cell_type": "markdown", + "id": "f6e27f6f-12ca-445d-9777-f955e616fa92", + "metadata": {}, + "source": [ + "### Create a circuit and observable; partition the problem\n", + "\n", + "See the first tutorial for details on these steps." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "eb24d70f-43b0-4006-9a7a-e786de056255", + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit.circuit.library import EfficientSU2\n", + "from qiskit.quantum_info import SparsePauliOp\n", + "from circuit_knitting.cutting import partition_problem\n", + "\n", + "qc = EfficientSU2(4, entanglement=\"linear\", reps=2).decompose()\n", + "qc.assign_parameters([0.4] * len(qc.parameters), inplace=True)\n", + "\n", + "observable = SparsePauliOp([\"ZZII\", \"IXIX\"])\n", + "\n", + "partitioned_problem = partition_problem(\n", + " circuit=qc, partition_labels=\"AABB\", observables=observable.paulis\n", + ")\n", + "subcircuits = partitioned_problem.subcircuits\n", + "subobservables = partitioned_problem.subobservables\n", + "bases = partitioned_problem.bases" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "38b23f0c-513b-420e-9367-64c46d20b89b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subcircuits[\"A\"].draw(\"mpl\", scale=0.8)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "319625c1-44f8-48ae-9700-f7e45d0dd949", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subcircuits[\"B\"].draw(\"mpl\", scale=0.8)" + ] + }, + { + "cell_type": "markdown", + "id": "09b0c774-a41e-4da0-a904-4bd630b2e883", + "metadata": {}, + "source": [ + "### Transpile the subcircuits\n", + "\n", + "Create a fake backend, and modify the target gate set so it thinks a `SingleQubitQPDGate` is allowed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9df9bccf-11b3-47fa-9013-379e70cebe2e", + "metadata": {}, + "outputs": [], + "source": [ + "from copy import deepcopy\n", + "from qiskit.circuit.library import CXGate\n", + "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", + "from circuit_knitting.cutting.qpd import SingleQubitQPDGate, QPDBasis\n", + "\n", + "# Create a fake backend, and modify the target gate set so it thinks a\n", + "# SingleQubitQPDGate is allowed.\n", + "target = deepcopy(backend.target)\n", + "sample_qpd_instruction = SingleQubitQPDGate(QPDBasis.from_instruction(CXGate()), 1)\n", + "target.add_instruction(\n", + " sample_qpd_instruction,\n", + " {(i,): None for i in range(target.num_qubits)},\n", + ")\n", + "pass_manager = generate_preset_pass_manager(3, target=target)" + ] + }, + { + "cell_type": "markdown", + "id": "944b6f58-5920-4f52-9f2b-325298a584a8", + "metadata": {}, + "source": [ + "Run each subcircuit through the pass manager." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "24265243-1b9c-4e23-8b52-99f4770a0979", + "metadata": {}, + "outputs": [], + "source": [ + "transpiled_subcircuits = {\n", + " label: pass_manager.run(subcircuits[label])\n", + " for label, circuit in subcircuits.items()\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "b950f127-b9ef-4300-83ac-6991ec98af0c", + "metadata": {}, + "source": [ + "Notice that the `SingleQubitQPDGate`s pass through untouched." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4458f4e9-518f-4d4f-b6e4-cfa438ccc86a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "transpiled_subcircuits[\"A\"].draw(\"mpl\", scale=0.8)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d2901fc5-0f18-489a-98dc-ea29d0e28fb0", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "transpiled_subcircuits[\"B\"].draw(\"mpl\", scale=0.8)" + ] + }, + { + "cell_type": "markdown", + "id": "21bcc995-2a61-4932-9f29-bd1055cac74c", + "metadata": {}, + "source": [ + "### Transform the subobservables\n", + "\n", + "The subobservables need to have their qubits mapped to the physical qubits in the transpiled subcircuits." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f1496792-caba-4c79-b1a3-dad9ca5b32ba", + "metadata": {}, + "outputs": [], + "source": [ + "transpiled_subobservables = {\n", + " label: SparsePauliOp(subobservables[label]).apply_layout(transpiled_subcircuits[label].layout).paulis\n", + " for label, circuit in subobservables.items()\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "2aa82f23-799d-47e7-8925-092856ca01c4", + "metadata": {}, + "source": [ + "### Generate subexperiments" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "16563bba-3cf7-4079-a93b-08254111179c", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from circuit_knitting.cutting import generate_cutting_experiments\n", + "\n", + "subexperiments, coefficients = generate_cutting_experiments(\n", + " circuits=transpiled_subcircuits, observables=transpiled_subobservables, num_samples=np.inf\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e259b150-4766-450e-a13d-5c22b909c00d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Xjt27JC3t7fZWL1795aHh4fGjh2r6OhoTZs2TU888YTefvttjR49WgMHDtQLL7ygefPmqX///qpWrZoefvhh0/6fffaZBgwYoIYNG+q///2v3N3dtWbNGg0cOFAnTpxIVyQ6e/asmjdvrg4dOuj999/Xnj179Omnn+rq1atavXq1JKl///66evWqli9frunTp6tEiRKSpFq1auXb55qSmqr4+JzPKLx246a2hh+UJDWqW01Xr13PYg8AAAAAKFraPNJAC77/Xa2b1ldyUrLikuItdmwPDzfZ2+V8vpNNF6Tee+89HTt2TJ988ompwCRJtWvX1uDBg/Xee+/p7bffNtsnJiZGe/fuNf0lP+0vyCNGjFDXrl3l6uqq33//XTdu3NC3336r+vXr3/P4b775pk6ePKmtW7fqwQcfNLX36dNHNWvW1Pjx49PNorl586bCw8Pl5uZmaqtcubKGDx+ur776yqwgde3aNa1YsUKtW7dWyZIlJUnOzs46f/68XF1dTf0GDBig//znP+rbt69WrFihLl26mB1zz549+vvvv1W3bl1J0uDBg9WxY0ctWLBA/fv3NxXY8uscs+PcuXM6ePCgKQ8tWrTQgw8+qI4dO+r7779Xx44dTecWGhqqTz75xKwg9cILLygwMFB///23WdHx0UcfVceOHfX111+bCow9e/bUgAEDzI4/fPhwtWjRQu+++65GjRolR0dHxcXFad26dRo4cKA++uijHJ9TZi5duqT//ve/euedd8zaX3nlFSUlJSk8PFxlypQxtT/zzDNq2LChpk+fnu4tiWlFxbSKdokSJTR06FANGjRIBw4cUFBQkCSpa9euCgoK0ieffGIqSJ0/f15DhgzRs88+q2+++cY05ssvv6yhQ4fqgw8+0MCBA1W+fHnTtuPHj2vJkiVm3ys7OzvNmjVLR44cUeXKldWoUSPVqlVLy5cvV/v27RUcHGzqm1+fa3z8DU2e/U3WHTOx5Of1edofAAAAAAqzpb9usPgxXx/YXd65WK/Kph/ZW758ufz8/PTSSy+Ztffv319+fn5avnx5un0GDhxoNuPE29tbAwYM0JUrV7RhwwZTmyStXLlSCQkJGR7baDTq66+/VtOmTVW6dGnFxMSY/ri7u6thw4am2SN3H//OYpQk+fr6qm3btvrpp5/MFoT+/vvvdePGDfXu3dvUZjAYTMWo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Dh0/rXMXLslgMKhMYMkCPx4AAAAAIG+YIVUIxMbGqmnTpoqIiNCAAQNUrVo1bdy4UY888ohu3sz4EaVdu3bp+++/V79+/dSrVy+tX79eM2fO1P79+7VmzRrZ2d2uRf7zzz9q0qSJEhMTNXjwYAUFBemnn35Sq1at8hRzeHi4fvrpJ7300kvq1auXli5dqjFjxsjFxUVffvmlgoODNWHCBB0/flwzZ85Ur169FBYWZto/Li5O//nPf3TmzBm98MILql69us6fP69Zs2apQYMG2rFjh8qVKydJOnv2rObOnatOnTqpe/fucnBw0MaNG/Xee+8pPDxcv//+u2nciRMn6s0331Tbtm01YMAA2dvb659//tGPP/6oxMREOTo65vqce/ToIVdXV40cOVIGg0GBgYFKSkpSq1at9Oeff6pnz54aPHiw4uLi9Pnnn6tx48batGmT6tWrZzbOJ598oitXrqhv375ycXHRzJkz1aFDB3333Xfq16+funXrpvbt22v16tX66KOPVLJkSY0bN860/86dO9WiRQv5+Piof//+Kl26tPbs2aOZM2fqjz/+0MaNG9Od5xNPPCE/Pz+9+eabunTpkj744AO1adNG//zzjzw9PdW0aVONHTtWkyZN0ksvvaQmTZpIkvz9/fPtc01JTVV8/I0s+93NKKN+37RdklS3ekUlJycr7mr6wisAAAAAIP95eLjJ3i7n850MRqPRWADxIB+NHTtWkydP1hdffKHnn3/e1D5s2DDNmDFDzZo1M5uxYzAYJEnLly9X+/btTe1Dhw7VzJkz9e233+rZZ5+VJHXv3l3ffvut1q1bZ5oBYzQa1bFjR61YsUK9e/fWggULchRv2uyZv/76Sw0aNJAk3bp1S+XKldOFCxc0ePBgzZw509R/xIgRmj59ug4fPqzKlSubYv3ss8+0detWPfjgg6a+p0+fVs2aNdWxY0dTXLdu3ZLBYEhX9HjjjTf0zjvvaNu2bapfv74kqW7dukpISNDBgwezPIeMzn3BggV6/vnntX79etPsoAkTJuitt95Ss2bNFBYWJgeHf+u806dP14gRI7Rq1So98cQTpvarV6+qRo0aKl++vCl3GzZs0COPPKJSpUrp4MGD8vb2liTt3btXDz74oAwGg77//nt17NjRNE5oaKjOnTun8+fPm9oefPBBJSYm6u+//5anp6epffny5erYsaPmz59vmv3Vp08fffnllxo4cKBmzZpl6vvdd9+pS5cumjNnjvr3728W3537p8nu55qZuKvxmjz7m1zvDwAAAACwvNcHdpe3l0eO9+ORvUJgxYoV8vf3V69evczaX3vttXvuU7lyZbNilCSNGTNG0u3ChHT7MauffvpJ9erVMxWjpNvFmNGjR+cp5kaNGpmKUZLk5OSk+vXry2g0asiQIWZ902bbHDt2TNLtgtjXX3+tpk2bqnTp0oqJiTH9cXd3V8OGDbV69WqzsdOKUcnJybpy5YpiYmL02GOPSZLZo2fe3t46e/astmzZkqfzy8iwYcPMilGStGjRIlWpUkWhoaFm53Hr1i21bNlSW7ZsSTfLrU+fPqZilCTVqlVLXl5eKlWqlFkxSpIefvhhRUVFmR7F3Ldvn/bu3avu3bsrMTHR7JgPP/yw3N3dzT67NMOHDzf7vUWLFpL+zUlWCvJzBQAAAAAUPTyyVwicPHlSDz30kOzt7c3aAwMD5ePjk+E+VatWTdeW1j9tDaaLFy8qPj5eVapUSde3WrVqeYq5fPny6dqKFSsmSQoJCcmw/dKlS5Kk6OhoXbp0SatXr5afn1+G49vdNR1w1qxZmjNnjg4cOKDU1FSzbVeuXDH9PGnSJLVv315NmjRRqVKl1Lx5c7Vp00adO3eWk5NTDs/SXKVKldK1HTp0SDdv3rzneUhSTEyMgoKCTL/f67O7s8+d7dLtz87Dw0OHDh2SJI0fP17jx4/P8HgXLlxI13b3MYsXL24aNzvy43P18HDT6wO7Z6tvmqP/ROqHVZvk6Oigl59rJzcX5xztDwAAAADIGw8Pt1ztR0EKBeLu4ll2tqU9PZr2v4899lims8DSfPDBBxo5cqQef/xxDRkyRKVKlZKTk5POnj2rPn36mBWoGjVqpBMnTuj333/X+vXrtX79en3zzTd65513tGXLFvn6+mZ6rOTk5Htuc3NLfxEajUbVrFlTH3zwwT33u7tYda/PJ7PP9O7PbuTIkfdcByytiJWdsbP7RG9eP9fcMMqoLTv2SpJCa1SiGAUAAAAAhQgFqUKgfPnyOnbsmFJSUswKB+fPn1dsbGyG+6TNlLlTWv+02TB+fn7y8PDQ4cOH0/XNy1pAeeXn5ycfHx9dvXrV9NhdZhYuXKjg4GD99ttvZjOnVq1alWF/Dw8PderUSZ06dZJ0e3bVoEGDNG/ePL366quSJF9fX12+fDndvne/4S8rFStWVHR0tFq0aJFuVldBqFixoqTbBabsfHY5kbY22b1k53PNTHz8jVyvIbU1/KC2hlvvOwsAAAAA9yvWkCrC2rVrpwsXLuirr74ya58yZco99zly5IhWrFiRYf+0taXs7e311FNPaceOHVq/fr2pn9Fo1HvvvZc/weeCnZ2devTooe3bt+v777/PsM/FixdNP9vb28tgMJjN5klOTta7776bbr+YmJh0bXXr1pUkswJUpUqV9Ndff+nGjX/f+nblyhXNnz8/R+fSq1cvRUVF3XOGVEaPz+VFnTp1VKNGDc2ZMyfD4llycnKGhbbs8PC4fYPJaP/sfq4AAAAAAEjMkCoURo8erW+++Ub9+vXTzp07Vb16dW3YsEF//fWXSpQokeE+NWvW1HPPPad+/fqpYsWKWr9+vb7//ns1a9ZMXbt2NfV755139Ntvv+mpp57SK6+8ojJlyuinn35SdHS0pU4vQxMnTtQff/yhLl26qEuXLmrYsKGcnJx0+vRp/frrrwoNDTW9Aa9z5856/fXX1bp1a3Xs2FFXr17VN998k+6te9LttbUaNmyoBg0aqFSpUjp//rw+++wzOTk5md48KEmDBw/Wc889pxYtWqhnz56KjY3V559/rnLlyikqKirb5zF06FCtWbNGr776qtatW6cWLVrIy8tLZ86c0dq1a+Xi4mJWDMwrg8GghQsXqkWLFqpVq5ZeeOEFVa9eXTdu3NDx48e1bNkyTZ48Od1b8rKjWrVq8vT01KxZs+Tm5iYfHx+VLFlSLVq0yPbnmpmcrCHF2lEAAAAAYBtYQ6oIK1asmDZv3qwRI0aYZkk1a9ZM69ev16OPPprhPnXr1tUHH3yg//73v5ozZ468vLw0ePBgTZo0yezRsQceeECbN2/WyJEj9dFHH8nZ2VmtW7fWwoUL5e/vb5Hzy4i3t7f++OMPTZs2TUuXLtXKlSvl4OCgMmXK6OGHH1bfvn1NfV999VUZjUbNmzdPQ4cOVUBAgLp27arnn38+3eLsI0eO1K+//qqZM2cqLi5OJUuWVMOGDfX666/rwQcfNPXr0aOHzp07p48//lgjRoxQ+fLl9eabb8rOzs7srX1ZcXR01C+//KJZs2Zp4cKFpoXGS5Uqpfr166t37955/KTSq127tsLDwzV58mT9+OOPmjNnjjw9PRUcHKw+ffrc8zuTFVdXVy1evFjjxo3TsGHDlJiYqGbNmqlFixbZ/lwzY29nl61pnkajUX+FH5AkNQ6tocCSxXN1PgAAAAAA6zEYs7tqMWxScHCwgoODtWHDBlObwWBQ7969TTOIgKIk4txFfbJwhZycHPVa/25yd3OxdkgAAAAAgBxihhSAQiWoVEkNe6GzoqIvU4wCAAAAgEKKghSyJTo6WikpKZn28fDwMC18DRSkAD9fBfj5WjsMAAAAAEAuUZBCtjz00EM6ffp0pn3Gjx+vCRMmWCYgAAAAAABQaLGGFLLljz/+0M2bNzPtU758eZUvX95CEQEAAAAAgMKKghQAAAAAAAAsys7aAQAAAAAAAOD+QkEKAAAAAAAAFkVBCgAAAAAAABZFQQoAAAAAAAAWRUEKAAAAAAAAFkVBCgAAAAAAABZFQQoAAAAAAAAWRUEKAAAAAAAAFkVBCgAAAAAAABZFQQoAAAAAAAAWRUEKAAAAAAAAFkVBCgAAAAAAABZFQQoAAAAAAAAWRUEKAAAAAAAAFkVBCgAAAAAAABZFQQoAAAAAAAAWRUEKAAAAAAAAFkVBCgAAAAAAABZFQQoAAAAAAAAWRUEKAAAAAAAAFkVBCgAAAAAAABZFQQoAAAAAAAAWRUEKAAAAAAAAFkVBCgAAAAAAABZFQQoAAAAAAAAWRUEKAAAAAAAAFkVBCgAAAAAAABZFQQoAAAAAAAAWRUEKAAAAAAAAFkVBCgAAAAAAABb1f3i5LetbuLu8AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subexperiments[\"A\"][0].draw(\"mpl\", scale=0.8)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "13187d18-488b-414d-bdf3-39597bcb2dd7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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YmLk4+OjgQMHas6cOZlew72vkapv375avHix2UP4WrRooU2bNumdd97Rhx9+aNa/Q4cO2rp1q/bs2aMyZcqY2nft2qWGDRtq3LhxplXHqfl55pln9OOPP5p+U5f699XT01MHDx5UQMDdvYOioqIUEBCgTp066dtvv5V0d3V2UFCQOnfurG+++cYslqFDh2rWrFk6fvy4ypcvL+nuiukzZ86Y/b2SpEGDBmnOnDk6cuSIqlSpYhbfvX9/JGX5fc1MzI04TZ77TeYdAQAAAAAAYDPGDOwpby+PbJ9n01t5rFixQr6+vnr11VfN2l977TX5+vpqxYoVac4ZOHCg2QpUb29vDRgwQNevX9fGjRtNbZK0atUqxcfHp/vaRqNRX3/9tZo1a6bSpUvrypUrpj/u7u5q2LChaTXp/a9/b1FakooWLar27dvrp59+Mntw3A8//KBbt26pT58+pjaDwWAqSicnJys6OlpXrlxRy5YtJUnbt29P85qtW7c2FaVTxxg9erQkpfse5fYas6Jv375meahdu7a8vLxUqlQps6K0JDVp0kQXL15UXNzd3+bs379ff/31l3r27KmEhASzuJo0aSJ3d3ezuO4tSsfHx+vq1au6du2annzySd24cUNHjhyRJLm6usrZ2Vnbt2/X6dOnc3RdGRk5cqTZ9zExMfr555/17LPPysXFxew6AgMDVbFixXTf3yFDhph9fKRp06aSpGeffdZUlJYkX19fValSRcePHze1/fDDD0pISNArr7xi9npXrlxR+/btlZKSorCwMLPXK1WqlFlRWpLp79u9Yz9Ifr+vAAAAAAAAKHxseiuPU6dOqX79+nJwMA/TwcFBlStX1p49e9KcU61atTRt1atXlyTTnsnPP/+8li5dqkmTJmn69Olq2LChnnrqKT3//POmbSuioqJ09epVrVmzRr6+vunGZ5fOEvXKldPfKL1Pnz7673//q9DQUFOh/auvvlKRIkXUvn17s76hoaGaNm2awsPD0+y9fP369Rxdc3pyeo1Zkboi915FihQxK6ze2y5JV69elYeHhw4fPixJGj9+vMaPH5/u+JcuXTJ9HRcXp5CQEIWGhioiIiJN39T3zMnJSZ988omGDh2qoKAgVa9eXS1btlTHjh31xBNPZP8i7+Hr6ysfHx+ztqNHjyolJUVffPGFvvjii3TPS+99ur8t9f0JCgpK07dIkSI6c+aM6fvU965Vq1YPjPXe9+5BMRQrdnefpYz2NU+VV++rq5uLBvXqmOX+krR551/668jf8iteRF3aNpNBBXM/KAAAAAAAgILK1c0lR+fZdGE6vzg7O2vt2rXasWOHfvvtN/3+++967733FBISom+++UadOnUybdXQqlUrvfXWW1ke+/7V0qnatm0rX19fffXVV3r11Vd19uxZbdq0SQMGDDDbM3r58uXq3r27GjRooBkzZiggIEAuLi5KTk5WmzZtlJKSkruLv0dOrzEr7O3ts9V+bzyp/x0xYoTatGmTbt/UYq0k9ezZUz///LNeffVVNWvWTMWKFZO9vb3+97//afr06Wbv2YABA9ShQwf98ssv2rRpk3744QfNmjVL3bt3Nz0kM6PN7h/0QMn08p56HS+++KLZqvh73b9li5T99+7ebUVSv/7qq69UsmTJdPvfX4jOSk4yk5X3NTO3b8Vr9pKVWep7v0tXrmvOklU5OhcAAAAAAAA5N2ZgTznlYCsPmy5Mly9fXkePHlVSUpLZqumkpCQdO3Ys3ZWehw8fVocOHczaDh06ZBrvXg0aNDDtMR0REaG6detq3Lhx6tSpk2kF7I0bNzJcfZpVqQ84nDFjhv7++299++23MhqNaQqWS5YskYuLizZs2GBW7EzdjiI9qatk7/Wga75XXl9jXqlUqZKkuwXTzOKKjo7Wzz//rF69emnevHlmx+7fsiJVyZIl1a9fP/Xr10/Jycnq1auXvv32W40YMUKPPvqoihYtKunu3uD3y2gF+v0qVqwog8GgO3fuWOz9TX3vihcvnuevmdnTaTN7XwEAAAAAAIBUNl2Y7tixoyZNmqQFCxZowIABpvbPP/9cUVFReu2119KcM3fuXLN9pmNiYjRv3jz5+PioefPmkqQrV66oePHiZueVKVNGvr6+pmKknZ2dXnjhBc2ePVs//PCDunbtmua1Ll++rBIlSmT5evr06aMZM2boq6++0nfffacqVaroscceM+tjb28vg8FgtsrXaDSmeajevdauXas9e/aYPfzwo48+knT3PXyQ/LjGvFC3bl3VrFlT8+bN02uvvZamuJ6UlKQbN26oaNGiptW+96/svXDhghYsWGDWduvWLUnmq5vt7e1Vu3Ztffvtt6bcBwUFycHBQWFhYRo+fLip759//qlt27Zl+TqKFSum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ob9sUNS1GL3YoZWqVChr7ZAAAAAAAACQAVZMFxARERHq1q2bvL295eXlpfbt2+vkyZMKDAxMs51B6t7QYWFhatiwodzc3OTv76+hQ4cqLi4uzdgHDx5UmzZt5O7urqJFi+qFF17Q5cuXcxxr6uuvX79ejRo1kpubm8qUKaMpU6ZIkq5fv65XXnlFJUqUkJubm5555hmdP38+zTgxMTF66623VLFiRTk7O8vX11c9evTQ33//bdYvNjZW48aN02OPPabixYvL2dlZFStW1Ntvv61bt26Z9U1JSdEnn3yi2rVry9PTU15eXqpSpYpeeeUVJSYmprmG+y1atEgGg0EbN240tYWEhMhgMOjgwYMaPny4ypQpIxcXF23btk2SlJCQoEmTJqlGjRpycXGRj4+P2rdvr/DwcLOxN27cKIPBoEWLFmnOnDmqUqWKXFxcVKtWLf3888+SpP3796tNmzby8vJSsWLFNGTIELO4Ux0/fly9evVSyZIl5eTkpMDAQI0aNUo3b94069e3b18ZDAbFxMRo4MCBKlGihFxcXNS4cWNt377d7Loff/xxSdJLL70kg8Egg8Fg+ruX1fc1vxw+cUbnL12VwWBQmZIl8v31AAAAAAAAkDusmC4AoqOj1axZM0VERGjAgAGqXr26Nm3apMcff1y3b6e/dcGePXv0ww8/qH///urdu7c2bNigmTNn6sCBA1q7dq3s7O7+TuLUqVNq2rSpEhISNHjwYAUEBOinn35SmzZtchVzeHi4fvrpJ7366qvq3bu3QkND9fbbb8vFxUWLFy9WYGCgQkJCdOLECc2cOVO9e/dWWFiY6fyYmBj961//0tmzZ/Xyyy+rRo0aunDhgubMmaPHHntMu3btUrly5SRJ586d04IFC9SlSxf17NlTDg4O2rRpkz766COFh4frt99+M407ceJEvffee2rfvr0GDBgge3t7nTp1Sj/++KMSEhLk6OiY42t+4YUX5OrqqhEjRshgMKhkyZJKTExUmzZt9Oeff6pXr14aPHiwYmJi9Pnnn6tx48b6/fffVb9+fbNxZs+erevXr6tfv35ycXHRzJkz1alTJ33//ffq37+/evTooY4dO2rNmjX69NNPVaJECY0bN850/u7du9WyZUv5+PjotddeU+nSpbVv3z7NnDlTf/zxhzZt2pTmOp966in5+vrqvffe09WrV/Wf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", + "text/plain": [ + "
" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subexperiments[\"B\"][0].draw(\"mpl\", scale=0.8)" + ] + }, + { + "cell_type": "markdown", + "id": "45592c1b-37b9-4015-a2f8-346fd52bf863", + "metadata": {}, + "source": [ + "### Transform to target basis gate set\n", + "\n", + "Not yet possible, but in progress in pull request [#517](https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/pull/517)." + ] + } + ], + "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.11.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/test/cutting/test_cutting_workflows.py b/test/cutting/test_cutting_workflows.py index 25d361320..ffbed7965 100644 --- a/test/cutting/test_cutting_workflows.py +++ b/test/cutting/test_cutting_workflows.py @@ -59,7 +59,7 @@ def test_transpile_before_realizing_basis_id(): # Pass each subcircuit through the pass manager. subcircuits = { - label: pass_manager.run(subcircuits["A"]) + label: pass_manager.run(subcircuits[label]) for label, circuit in subcircuits.items() }