From 24ba644da131df783aad47171818da06b0b559c8 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Mon, 22 Sep 2025 16:19:25 -0500 Subject: [PATCH 01/33] Add timing visualization page --- docs/guides/_toc.json | 5 + docs/guides/visualize-circuit-timing.ipynb | 203 +++++++++++++++++++++ docs/guides/visualize-circuits.ipynb | 5 +- qiskit_bot.yaml | 3 + scripts/config/notebook-testing.toml | 1 + 5 files changed, 215 insertions(+), 2 deletions(-) create mode 100644 docs/guides/visualize-circuit-timing.ipynb diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 47cde6e86fc..a2903a36099 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -620,6 +620,11 @@ "title": "Visualize circuits", "url": "/docs/guides/visualize-circuits" }, + { + "title": "Visualize circuit timing", + "url": "/docs/guides/visualize-circuit-timing" + }, + { "title": "Plot quantum states", "url": "/docs/guides/plot-quantum-states" diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb new file mode 100644 index 00000000000..e421bdbe301 --- /dev/null +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -0,0 +1,203 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0af88701-d9bc-47f2-8ceb-2ae51f567934", + "metadata": {}, + "source": [ + "{/* cspell:ignore mactex, backgroundcolor, lightgreen */}" + ] + }, + { + "cell_type": "markdown", + "id": "8d75dc24-b8d2-45f8-830b-48e45f794a31", + "metadata": {}, + "source": [ + "# Visualize circuit timing" + ] + }, + { + "cell_type": "markdown", + "id": "7ea76afb-aecf-4ea2-b173-5d5e7e7d68ec", + "metadata": { + "tags": [ + "version-info" + ] + }, + "source": [ + "
\n", + "Package versions\n", + "\n", + "The code on this page was developed using the following requirements.\n", + "We recommend using these versions or newer.\n", + "\n", + "```\n", + "qiskit[all]~=2.1.1\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition to [visualizing instructions on a circuit](/docs/guidesvisualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example. \n", + "\n", + "## Examples\n", + "\n", + "To visualize a scheduled circuit program, you can call this function with a set of control arguments. Most of the output image's appearance can be modified by a stylesheet, but this is not required.\n", + "\n", + "### Draw with the default stylesheet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit import QuantumCircuit, transpile\n", + "from qiskit.visualization.timeline import draw\n", + "from qiskit.providers.fake_provider import GenericBackendV2\n", + "\n", + "qc = QuantumCircuit(2)\n", + "qc.h(0)\n", + "qc.cx(0,1)\n", + "\n", + "backend = GenericBackendV2(5)\n", + "\n", + "qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')\n", + "draw(qc, target=backend.target)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Draw with a simple stylesheet" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit import QuantumCircuit, transpile\n", + "from qiskit.visualization.timeline import draw, IQXSimple\n", + "from qiskit.providers.fake_provider import GenericBackendV2\n", + "\n", + "qc = QuantumCircuit(2)\n", + "qc.h(0)\n", + "qc.cx(0,1)\n", + "\n", + "backend = GenericBackendV2(5)\n", + "\n", + "qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')\n", + "draw(qc, style=IQXSimple(), target=backend.target)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Draw with a stylesheet suited for program debugging" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit import QuantumCircuit, transpile\n", + "from qiskit.visualization.timeline import draw, IQXDebugging\n", + "from qiskit.providers.fake_provider import GenericBackendV2\n", + "\n", + "qc = QuantumCircuit(2)\n", + "qc.h(0)\n", + "qc.cx(0,1)\n", + "\n", + "backend = GenericBackendV2(5)\n", + "qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')\n", + "draw(qc, style=IQXDebugging(), target=backend.target)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Draw with a modified stylesheet\n", + "\n", + "You can customize some parts of a preset stylesheet when you call it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "my_style = {\n", + " 'formatter.general.fig_width': 16,\n", + " 'formatter.general.fig_unit_height': 1\n", + "}\n", + "style = IQXStandard(**my_style)\n", + "\n", + "# draw\n", + "draw(qc, style=style)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, you can create custom generator or layout functions and update an existing stylesheet with the custom functions. This way, you can control the most of the appearance of the output image without modifying the codebase of the scheduled circuit drawer." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Qiskit Runtime support\n", + "\n", + "While the timeline drawer built in to Qiskit is useful for static circuits, it might not accurately reflect the timing of [dynamic circuits](/docs/guides/classical-feedforward-and-control-flow) due to implicit operations such as broadcasting and branch determination. As part of dynamic circuits support, Qiskit Runtime returns the accurate circuit timing information inside the job results when requested. " + ] + }, + { + "cell_type": "markdown", + "id": "0761df2f-183f-48e3-9070-766a9920c2b9", + "metadata": {}, + "source": [ + "## Next steps\n", + "\n", + "\n", + " - Related information\n", + "" + ] + } + ], + "metadata": { + "description": "Visualize scheduling on a circuit by using the Qiskit timeline_drawer method.", + "kernelspec": { + "display_name": "Python 3", + "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" + }, + "title": "Visualize circuit timing" + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/guides/visualize-circuits.ipynb b/docs/guides/visualize-circuits.ipynb index c1a4feda4b2..18d58f666e6 100644 --- a/docs/guides/visualize-circuits.ipynb +++ b/docs/guides/visualize-circuits.ipynb @@ -454,8 +454,9 @@ "\n", "\n", " - See an example of circuit visualization in the [Grover's Algorithm](/docs/tutorials/grovers-algorithm) tutorial.\n", - " - Visualize simple circuits using [IBM Quantum Composer](/docs/guides/composer).\n", - " - Review the [Qiskit visualizations API documentation](/docs/api/qiskit/visualization).\n", + " - Visualize simple circuits using [IBM Quantum Composer.](/docs/guides/composer)\n", + " - [Visualize circuit timing.](/docs/guides/visualize-circuit-timing)\n", + " - Review the [Qiskit visualizations API documentation.](/docs/api/qiskit/visualization)\n", "" ] } diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index 944a9eb283d..e2707d9c677 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -370,6 +370,9 @@ notifications: - "@kaelynj" "docs/migration-guides/qiskit-algorithms-module": - "@ElePT" + "docs/guides/visualize-circuit-timing": + - "@jyu00" + - "@beckykd" "docs/migration-guides/external-providers-primitives-v2": - "@ElePT" - "@jyu00" diff --git a/scripts/config/notebook-testing.toml b/scripts/config/notebook-testing.toml index cbd5d748c91..4339db63902 100644 --- a/scripts/config/notebook-testing.toml +++ b/scripts/config/notebook-testing.toml @@ -39,6 +39,7 @@ notebooks = [ "docs/guides/transpiler-plugins.ipynb", "docs/guides/transpiler-stages.ipynb", "docs/guides/visualize-circuits.ipynb", + "docs/guides/visualize-circuit-timing.ipynb", "docs/guides/qiskit-addons-cutting-wires.ipynb", "docs/guides/qiskit-addons-utils.ipynb", "docs/guides/bit-ordering.ipynb", From e2ae1e1f0229c64402eaccccde91ff99301a8db3 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Mon, 29 Sep 2025 10:08:49 -0500 Subject: [PATCH 02/33] add to index page --- docs/guides/map-problem-to-circuits.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/guides/map-problem-to-circuits.mdx b/docs/guides/map-problem-to-circuits.mdx index 4c8f956ba7c..a623e0b4198 100644 --- a/docs/guides/map-problem-to-circuits.mdx +++ b/docs/guides/map-problem-to-circuits.mdx @@ -30,6 +30,7 @@ The output of this step in a Qiskit pattern is normally a collection of circuits * [Construct circuits](./construct-circuits) * [Measure qubits](./measure-qubits) * [Visualize circuits](./visualize-circuits) +* [Visualize circuit timing](./visualize-circuit-timing) * [Fractional gates](./fractional-gates) * [Classical feedforward and control flow](./classical-feedforward-and-control-flow) * [Deferred timing resolution using stretch](./stretch) From 88646b92611ba61f76e95dd74c4c6919fbc833f6 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Mon, 29 Sep 2025 10:18:38 -0500 Subject: [PATCH 03/33] Add sections for new content --- docs/guides/visualize-circuit-timing.ipynb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index e421bdbe301..8b8e69d5044 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -164,6 +164,22 @@ "While the timeline drawer built in to Qiskit is useful for static circuits, it might not accurately reflect the timing of [dynamic circuits](/docs/guides/classical-feedforward-and-control-flow) due to implicit operations such as broadcasting and branch determination. As part of dynamic circuits support, Qiskit Runtime returns the accurate circuit timing information inside the job results when requested. " ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example\n", + "\n", + "This example shows you how to enable the option, get it from the metadata, display it, and save it to a file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "id": "0761df2f-183f-48e3-9070-766a9920c2b9", From 330384497feb9fe150231f50f489a0abc09c4b38 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Mon, 29 Sep 2025 10:25:12 -0500 Subject: [PATCH 04/33] link fix --- docs/guides/visualize-circuit-timing.ipynb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 8b8e69d5044..6c8ddb3581e 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -41,7 +41,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In addition to [visualizing instructions on a circuit](/docs/guidesvisualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example. \n", + "In addition to [visualizing instructions on a circuit](/docs/guides/visualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example. \n", "\n", "## Examples\n", "\n", @@ -180,6 +180,15 @@ "outputs": [], "source": [] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understand the output\n", + "\n", + "For example, what does AWGR1_1 mean; what instructions does a Qiskit measure map to" + ] + }, { "cell_type": "markdown", "id": "0761df2f-183f-48e3-9070-766a9920c2b9", From a910172d9b0fe5457da08d97d88cd81b6d687fc1 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Mon, 29 Sep 2025 10:34:20 -0500 Subject: [PATCH 05/33] squeaky --- docs/guides/visualize-circuit-timing.ipynb | 39 ++++++++++++---------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 6c8ddb3581e..ee7cd144ccf 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -39,9 +39,10 @@ }, { "cell_type": "markdown", + "id": "0c5a21eb-3af2-4d00-be04-53525ab5ac19", "metadata": {}, "source": [ - "In addition to [visualizing instructions on a circuit](/docs/guides/visualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example. \n", + "In addition to [visualizing instructions on a circuit](/docs/guides/visualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example.\n", "\n", "## Examples\n", "\n", @@ -53,6 +54,7 @@ { "cell_type": "code", "execution_count": null, + "id": "59ded42f-f090-4be3-a519-ca77f289de62", "metadata": {}, "outputs": [], "source": [ @@ -62,16 +64,17 @@ "\n", "qc = QuantumCircuit(2)\n", "qc.h(0)\n", - "qc.cx(0,1)\n", + "qc.cx(0, 1)\n", "\n", "backend = GenericBackendV2(5)\n", "\n", - "qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')\n", + "qc = transpile(qc, backend, scheduling_method=\"alap\", layout_method=\"trivial\")\n", "draw(qc, target=backend.target)" ] }, { "cell_type": "markdown", + "id": "5bdb1520-3760-4e7f-833b-69fed26a770a", "metadata": {}, "source": [ "### Draw with a simple stylesheet" @@ -80,6 +83,7 @@ { "cell_type": "code", "execution_count": null, + "id": "d003cdda-f348-431f-8d86-0f1f24136019", "metadata": {}, "outputs": [], "source": [ @@ -89,16 +93,17 @@ "\n", "qc = QuantumCircuit(2)\n", "qc.h(0)\n", - "qc.cx(0,1)\n", + "qc.cx(0, 1)\n", "\n", "backend = GenericBackendV2(5)\n", "\n", - "qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')\n", + "qc = transpile(qc, backend, scheduling_method=\"alap\", layout_method=\"trivial\")\n", "draw(qc, style=IQXSimple(), target=backend.target)" ] }, { "cell_type": "markdown", + "id": "0761da5b-517c-4ca6-805c-b8f6e91a1e05", "metadata": {}, "source": [ "### Draw with a stylesheet suited for program debugging" @@ -107,6 +112,7 @@ { "cell_type": "code", "execution_count": null, + "id": "928f58dd-e144-48cf-900d-468f47bee9b1", "metadata": {}, "outputs": [], "source": [ @@ -116,15 +122,16 @@ "\n", "qc = QuantumCircuit(2)\n", "qc.h(0)\n", - "qc.cx(0,1)\n", + "qc.cx(0, 1)\n", "\n", "backend = GenericBackendV2(5)\n", - "qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')\n", + "qc = transpile(qc, backend, scheduling_method=\"alap\", layout_method=\"trivial\")\n", "draw(qc, style=IQXDebugging(), target=backend.target)" ] }, { "cell_type": "markdown", + "id": "2a5578e5-0124-473a-a13f-4a4b2b466b1c", "metadata": {}, "source": [ "### Draw with a modified stylesheet\n", @@ -135,12 +142,13 @@ { "cell_type": "code", "execution_count": null, + "id": "82e06dc4-6f2f-4852-b2cc-3ee7a9b8234b", "metadata": {}, "outputs": [], "source": [ "my_style = {\n", - " 'formatter.general.fig_width': 16,\n", - " 'formatter.general.fig_unit_height': 1\n", + " \"formatter.general.fig_width\": 16,\n", + " \"formatter.general.fig_unit_height\": 1,\n", "}\n", "style = IQXStandard(**my_style)\n", "\n", @@ -150,6 +158,7 @@ }, { "cell_type": "markdown", + "id": "539fe309-5b11-4d00-b826-d92c21c0925c", "metadata": {}, "source": [ "Similarly, you can create custom generator or layout functions and update an existing stylesheet with the custom functions. This way, you can control the most of the appearance of the output image without modifying the codebase of the scheduled circuit drawer." @@ -157,15 +166,17 @@ }, { "cell_type": "markdown", + "id": "fd59c92f-a37f-4f4f-9cc0-86f4023bf645", "metadata": {}, "source": [ "## Qiskit Runtime support\n", "\n", - "While the timeline drawer built in to Qiskit is useful for static circuits, it might not accurately reflect the timing of [dynamic circuits](/docs/guides/classical-feedforward-and-control-flow) due to implicit operations such as broadcasting and branch determination. As part of dynamic circuits support, Qiskit Runtime returns the accurate circuit timing information inside the job results when requested. " + "While the timeline drawer built in to Qiskit is useful for static circuits, it might not accurately reflect the timing of [dynamic circuits](/docs/guides/classical-feedforward-and-control-flow) due to implicit operations such as broadcasting and branch determination. As part of dynamic circuits support, Qiskit Runtime returns the accurate circuit timing information inside the job results when requested." ] }, { "cell_type": "markdown", + "id": "4c3181fd-e4fa-40c2-85ee-a51780c525cf", "metadata": {}, "source": [ "### Example\n", @@ -173,15 +184,9 @@ "This example shows you how to enable the option, get it from the metadata, display it, and save it to a file." ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", + "id": "5ed2acb7-99cd-47bf-bfe1-0e69ad95f428", "metadata": {}, "source": [ "### Understand the output\n", From 0b73cf8ef4bf0dfbd8c38df55d3b66758a4ec835 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Mon, 29 Sep 2025 10:40:49 -0500 Subject: [PATCH 06/33] add missing imports --- docs/guides/visualize-circuit-timing.ipynb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index ee7cd144ccf..8065b72fd3b 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -146,6 +146,8 @@ "metadata": {}, "outputs": [], "source": [ + "from qiskit.visualization.timeline import draw, IQXStandard\n", + "\n", "my_style = {\n", " \"formatter.general.fig_width\": 16,\n", " \"formatter.general.fig_unit_height\": 1,\n", From 0b30e052ab4975226551485f97cfce85390870a8 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Tue, 30 Sep 2025 14:13:03 -0500 Subject: [PATCH 07/33] add to qiskit bot again --- qiskit_bot.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index e8fe9a2ba00..3c4fd3924b0 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -80,6 +80,10 @@ notifications: - "`@mtreinish`" "docs/guides/composer": - "@abbycross" + "docs/guides/visualize-circuit-timing": + - "@jyu00" + - "@beckykd" + - "@abbycross" "docs/guides/configure-error-mitigation": - "@jyu00" - "@beckykd" From fd53840138e4c701eac116f3eb61d340e9ed0547 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Wed, 1 Oct 2025 09:51:44 -0500 Subject: [PATCH 08/33] updates --- docs/guides/visualize-circuit-timing.ipynb | 142 ++++++++++++++++++++- 1 file changed, 140 insertions(+), 2 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 8065b72fd3b..17b04d915ee 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -176,14 +176,152 @@ "While the timeline drawer built in to Qiskit is useful for static circuits, it might not accurately reflect the timing of [dynamic circuits](/docs/guides/classical-feedforward-and-control-flow) due to implicit operations such as broadcasting and branch determination. As part of dynamic circuits support, Qiskit Runtime returns the accurate circuit timing information inside the job results when requested." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Enable timing data retrieval\n", + "\n", + "To enable timing data retrieval, set the `scheduler_timing_info` flag to `True`:\n", + "\n", + "```python\n", + "sampler = SamplerV2(backend)\n", + "sampler.options.experimental = { \n", + " \"execution\": {\n", + " \"scheduler_timing_info\": True,\n", + " },\n", + "}\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Access the circuit schedule data \n", + "\n", + "Access the circuit's schedule data from the job's result metadata as follows. This function uses the `CircuitSchedule` class to load, parse, preprocess, and trace the data for plotting using a Plotly supported interface.\n", + "\n", + "```python\n", + "job_result: SamplerPubResult = job.result()\n", + " circuit_schedule = job_result[0].metadata[\"compilation\"][\"scheduler_timing_info\"]\n", + " circuit_schedule_timing = circuit_schedule[\"timing\"]\n", + "```\n", + "\n" + ] + }, { "cell_type": "markdown", "id": "4c3181fd-e4fa-40c2-85ee-a51780c525cf", "metadata": {}, "source": [ - "### Example\n", + "### End-to-end example\n", + "\n", + "This example shows you how to enable the option, get it from the metadata, display it, and save it to a file.\n", + "\n", + "First, set up the environment, define and transpile the circuits, and define and run the jobs. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2\n", + "from qiskit.circuit import QuantumCircuit\n", + "from qiskit.qasm3 import dumps\n", + "from qiskit import transpile\n", + "\n", + "import qiskit\n", + "import qiskit_ibm_runtime\n", + "\n", + "service = QiskitRuntimeService()\n", + "backend = service.least_busy(operational=True, simulator=False)\n", + "\n", + "# Create a Bell circuit\n", + "qc = QuantumCircuit(2)\n", + "qc.h(0)\n", + "qc.cx(0, 1)\n", + "qc.measure_all()\n", + "\n", + "qc.draw()\n", + "\n", + "# Transpile the circuit for the given backend\n", + "transpiled_circuits = []\n", + "transpiled_circuit = transpile(qc, backend)\n", + "transpiled_circuits.append(transpiled_circuit)\n", + "\n", + "# Print transpiled circuits qasm code \n", + "for circ in transpiled_circuits:\n", + " print(f\"====== Transpiled circuit ({backend_name}) ======:\\n{dumps(circ)}\\n\")\n", + "\n", + "# Generate samplers for backend targets\n", + "sampler = SamplerV2(backend)\n", + "sampler.options.experimental = { \n", + " \"image\": \"qiskit-ibm-primitives:4ee9f0c18aa7bf1da12cc660f65036a921efd679\", # this should be removed once the feature is enabled by default on main\n", + " \"execution\": {\"scheduler_timing\": True},\n", + "}\n", + "\n", + "# Submit jobs\n", + "sampler_job = sampler.run(transpiled_circuits)\n", + "\n", + "print(f\">>> {' Job ID:':<10} {sampler_job.job_id()} ({sampler_job.status()})\")\n", + "\n", + "result = sampler_job.result()\n", + "print(f\">>> {' Job:':<10} {sampler_job.job_id()} finished with:\\n{result}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, get the circuit schedule timing:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get the circuit schedule timing\n", + "result[0].metadata[\"compilation\"][\"scheduler_timing\"][\"timing\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, you can visualize and save the timing:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing\n", + "\n", + "circuit_schedule = result[0].metadata[\"compilation\"][\"scheduler_timing\"][\"timing\"].split(\"\\n\")\n", + "fig = draw_circuit_schedule_timing(\n", + " circuit_schedule=circuit_schedule,\n", + " included_channels=None,\n", + " filter_readout_channels=False,\n", + " filter_barriers=False,\n", + " width=1000,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Input arguments\n", "\n", - "This example shows you how to enable the option, get it from the metadata, display it, and save it to a file." + "- **scheduler_timing_info** - Set to `True` to retrieve timing data from the job.\n", + "- **\n" ] }, { From 484f7f3fba427de0f784829f8d66519249bd889e Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Wed, 1 Oct 2025 13:25:53 -0500 Subject: [PATCH 09/33] more bits --- docs/guides/visualize-circuit-timing.ipynb | 60 ++++++++++++++++++---- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 17b04d915ee..be899e49336 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -182,7 +182,7 @@ "source": [ "### Enable timing data retrieval\n", "\n", - "To enable timing data retrieval, set the `scheduler_timing_info` flag to `True`:\n", + "To enable timing data retrieval, set the `scheduler_timing_info` flag to `True` when running the primitive job:\n", "\n", "```python\n", "sampler = SamplerV2(backend)\n", @@ -200,16 +200,61 @@ "source": [ "### Access the circuit schedule data \n", "\n", - "Access the circuit's schedule data from the job's result metadata as follows. This function uses the `CircuitSchedule` class to load, parse, preprocess, and trace the data for plotting using a Plotly supported interface.\n", + "Access the circuit's schedule data from the job's result metadata as follows. This function uses the `CircuitSchedule` class to load, parse, preprocess, and trace the data for plotting with a Plotly supported interface.\n", "\n", "```python\n", "job_result: SamplerPubResult = job.result()\n", " circuit_schedule = job_result[0].metadata[\"compilation\"][\"scheduler_timing_info\"]\n", " circuit_schedule_timing = circuit_schedule[\"timing\"]\n", "```\n", + "\n", + "All of the data is returned under `compilation`. Therefore, you will use that option, along with various sub-arguments to access specific data. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualize the timings\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Arguments\n", "\n" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understand the output\n", + "\n", + "For example, what does AWGR1_1 mean; what instructions does a Qiskit measure map to?\n", + "\n", + "The output is a list of strings, where each string represent a single instruction on some channel.\n", + "The instruction data will be comma separated into `Branch`, `Instruction`, `Channel`, `T0`, `Duration`, and `Pulse` data types.\n", + "\n", + "- `Branch` - determines if the instruction is in a control flow (then / else) or a main branch\n", + "- `Instruction` - the gate and the qubit to operate on\n", + "- `Channel` - the channel that is being assigned with the instruction (Qubit x / AWGRx_y / ...)\n", + "- `T0` - the instruction start time within the complete schedule\n", + "- `Duration` - the duration of the instruction\n", + "- `Pulse` - the type of pulse operation being used\n", + "\n", + "\n", + "Example:\n", + "\n", + "```python\n", + "main,barrier,Qubit 0,7,0,barrier # A barrier on the main branch on qubit 0 at time 7 with 0 duration\n", + "main,reset_0,Qubit 0,7,64,play # A reset instruction on the main branch on qubit 0 at time 7 with duration 64 and a play operation\n", + "...\n", + "```" + ] + }, { "cell_type": "markdown", "id": "4c3181fd-e4fa-40c2-85ee-a51780c525cf", @@ -318,21 +363,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Input arguments\n", - "\n", - "- **scheduler_timing_info** - Set to `True` to retrieve timing data from the job.\n", - "- **\n" + "\n" ] }, { "cell_type": "markdown", "id": "5ed2acb7-99cd-47bf-bfe1-0e69ad95f428", "metadata": {}, - "source": [ - "### Understand the output\n", - "\n", - "For example, what does AWGR1_1 mean; what instructions does a Qiskit measure map to" - ] + "source": [] }, { "cell_type": "markdown", From 5ea4e32931739c4b26138db9a0de89846b5ef76f Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Wed, 1 Oct 2025 14:58:44 -0500 Subject: [PATCH 10/33] more edits --- docs/guides/visualize-circuit-timing.ipynb | 38 ++++++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index be899e49336..c924e61635b 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -216,14 +216,29 @@ "metadata": {}, "source": [ "### Visualize the timings\n", - "\n" + "\n", + "You can display the output figure, save it to a file, or both.\n", + "\n", + "- Run `fig.show()` display the figure.\n", + "- Run `fig.write_image(\"\")` download the figure. For example: `fig.write_html(\"scheduler_timing.html\")` or `fig.write_image(\"scheduler_timing.png\")`." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Arguments\n", + "\n", + "`result[0].metadata[\"compilation\"][]`\n", + "\n", + "- `compilation`\n", + "- `scheduler_timing` - Feature flag, set to `True` to enable. \n", + "- `stretch_values` - Feature flag, set to `True` to enable.\n", "\n" ] }, @@ -231,11 +246,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Understand the output\n", + "### Understand the `circuit_schedule` input\n", "\n", "For example, what does AWGR1_1 mean; what instructions does a Qiskit measure map to?\n", "\n", - "The output is a list of strings, where each string represent a single instruction on some channel.\n", + "The output from the job (input to `circuit_schedule`) is a list of strings, where each string represents a single instruction on some channel.\n", + "\n", "The instruction data will be comma separated into `Branch`, `Instruction`, `Channel`, `T0`, `Duration`, and `Pulse` data types.\n", "\n", "- `Branch` - determines if the instruction is in a control flow (then / else) or a main branch\n", @@ -255,6 +271,22 @@ "```" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understand the output\n", + "\n", + "For example, what does AWGR1_1 mean; what instructions does a Qiskit measure map to?\n", + "\n", + "\n", + "\n", + "### AWGRX_Y definition\n", + "\n", + "AWGR stands for Arbitrary Wave Generator Readout (AWGR) and is used for readout channels communication for measuring qubits,\n", + "as opposed to drive channels which are for driving the qubits. The `X` and `Y` arguments corresponds to the readout instrument id and the qubit number respectively. " + ] + }, { "cell_type": "markdown", "id": "4c3181fd-e4fa-40c2-85ee-a51780c525cf", From 8cd0a2022773036e7cae9ff648bab4f242b8c040 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Wed, 1 Oct 2025 17:27:07 -0500 Subject: [PATCH 11/33] more changes --- docs/guides/visualize-circuit-timing.ipynb | 24 +++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index c924e61635b..1bf3e6d8716 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -204,13 +204,27 @@ "\n", "```python\n", "job_result: SamplerPubResult = job.result()\n", - " circuit_schedule = job_result[0].metadata[\"compilation\"][\"scheduler_timing_info\"]\n", + " circuit_schedule = job_result[0].metadata[\"compilation\"][\"scheduler_timing\"]\n", " circuit_schedule_timing = circuit_schedule[\"timing\"]\n", "```\n", "\n", "All of the data is returned under `compilation`. Therefore, you will use that option, along with various sub-arguments to access specific data. " ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Access the stretch data\n", + "\n", + "Access the strech data directly from the metadata as follows:\n", + "\n", + "```python\n", + "job_result: SamplerPubResult = job.result()\n", + " circuit_stretch_values = job_result[0].metadata[\"compilation\"][\"stretch_values\"]\n", + "```" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -234,11 +248,11 @@ "source": [ "### Arguments\n", "\n", - "`result[0].metadata[\"compilation\"][]`\n", + "- `scheduler_timing` - Feature flag that specifies whether the compiler should output the circuits' schedule timing information. If enabled, the metadata is forwarded to `SamplerPubResult metadata[\"compilation\"]`. set to `True` to enable.\n", + "- `stretch_values` - Feature flag that specifies whether the compiler should output the circuits' resolved stretch values. If enabled, the metadata is forwarded to `SamplerPubResult metadata[\"compilation\"]`. set to `True` to enable.\n", + "- `compilation` - Used to retrieve values from circuit-timing related feature flags, in the format `result[0].metadata[\"compilation\"][]`.\n", + "- `timing` - Used to retrieve circuit timing data after it has been retrieved from the metadata.\n", "\n", - "- `compilation`\n", - "- `scheduler_timing` - Feature flag, set to `True` to enable. \n", - "- `stretch_values` - Feature flag, set to `True` to enable.\n", "\n" ] }, From 6529391b48db46c36a801c60f09ac984af947aff Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 2 Oct 2025 12:04:53 -0500 Subject: [PATCH 12/33] add stretch content --- docs/guides/stretch.mdx | 24 ++++++++++++ docs/guides/visualize-circuit-timing.ipynb | 44 ++++------------------ 2 files changed, 32 insertions(+), 36 deletions(-) diff --git a/docs/guides/stretch.mdx b/docs/guides/stretch.mdx index 65f5c8e653f..bfda92140a6 100644 --- a/docs/guides/stretch.mdx +++ b/docs/guides/stretch.mdx @@ -95,6 +95,30 @@ qc.barrier() Stretch resolution equation: $a + 8 + a + 8 + a + 8 = 100 = 3*a + 24$ +## View stretch values in Qiskit Runtime + +When using a Qiskit Runtime primitive, you can view the stretch values. To view this data, enable its retrieval, then access the data directly from the metadata as follows: + +```python +# enable stretch value retrieval +sampler.options.experimental = { + "execution": { + "stretch_values": True, + }, +} + +# Access the stretch values from the metadata +job_result: SamplerPubResult = job.result() + circuit_stretch_values = job_result[0].metadata["compilation"]["stretch_values"] +``` + +### Visualize the stretch values + +You can display the output figure, save it to a file, or both. + +- Run `fig.show()` display the figure. +- Run `fig.write_image("")` download the figure. For example: `fig.write_html("scheduler_timing.html")` or `fig.write_image("scheduler_timing.png")`. + ## Qiskit Runtime limitations Support for `stretch` in Qiskit Runtime is currently experimental and has the following constraints: diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 1bf3e6d8716..94dea76d63e 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -200,7 +200,7 @@ "source": [ "### Access the circuit schedule data \n", "\n", - "Access the circuit's schedule data from the job's result metadata as follows. This function uses the `CircuitSchedule` class to load, parse, preprocess, and trace the data for plotting with a Plotly supported interface.\n", + "Access the circuit's schedule data from the job's result metadata as follows. \n", "\n", "```python\n", "job_result: SamplerPubResult = job.result()\n", @@ -211,20 +211,6 @@ "All of the data is returned under `compilation`. Therefore, you will use that option, along with various sub-arguments to access specific data. " ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Access the stretch data\n", - "\n", - "Access the strech data directly from the metadata as follows:\n", - "\n", - "```python\n", - "job_result: SamplerPubResult = job.result()\n", - " circuit_stretch_values = job_result[0].metadata[\"compilation\"][\"stretch_values\"]\n", - "```" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -237,23 +223,16 @@ "- Run `fig.write_image(\"\")` download the figure. For example: `fig.write_html(\"scheduler_timing.html\")` or `fig.write_image(\"scheduler_timing.png\")`." ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Arguments\n", "\n", - "- `scheduler_timing` - Feature flag that specifies whether the compiler should output the circuits' schedule timing information. If enabled, the metadata is forwarded to `SamplerPubResult metadata[\"compilation\"]`. set to `True` to enable.\n", - "- `stretch_values` - Feature flag that specifies whether the compiler should output the circuits' resolved stretch values. If enabled, the metadata is forwarded to `SamplerPubResult metadata[\"compilation\"]`. set to `True` to enable.\n", - "- `compilation` - Used to retrieve values from circuit-timing related feature flags, in the format `result[0].metadata[\"compilation\"][]`.\n", - "- `timing` - Used to retrieve circuit timing data after it has been retrieved from the metadata.\n", + "The following arguments are used with timing visualizations.\n", "\n", - "\n" + "- `compilation` - Used to retrieve values from circuit-timing related feature flags, in the format `result[0].metadata[\"compilation\"][]`.\n", + "- `timing` - Used to retrieve circuit timing data after it has been retrieved from the metadata.\n" ] }, { @@ -262,11 +241,9 @@ "source": [ "### Understand the `circuit_schedule` input\n", "\n", - "For example, what does AWGR1_1 mean; what instructions does a Qiskit measure map to?\n", - "\n", "The output from the job (input to `circuit_schedule`) is a list of strings, where each string represents a single instruction on some channel.\n", "\n", - "The instruction data will be comma separated into `Branch`, `Instruction`, `Channel`, `T0`, `Duration`, and `Pulse` data types.\n", + "The instruction data is comma separated into `Branch`, `Instruction`, `Channel`, `T0`, `Duration`, and `Pulse` data types.\n", "\n", "- `Branch` - determines if the instruction is in a control flow (then / else) or a main branch\n", "- `Instruction` - the gate and the qubit to operate on\n", @@ -291,14 +268,9 @@ "source": [ "### Understand the output\n", "\n", - "For example, what does AWGR1_1 mean; what instructions does a Qiskit measure map to?\n", - "\n", - "\n", - "\n", "### AWGRX_Y definition\n", "\n", - "AWGR stands for Arbitrary Wave Generator Readout (AWGR) and is used for readout channels communication for measuring qubits,\n", - "as opposed to drive channels which are for driving the qubits. The `X` and `Y` arguments corresponds to the readout instrument id and the qubit number respectively. " + "Arbitrary Wave Generator Readout (AWGR) is used for readout channels communication for measuring qubits, as opposed to drive channels, which are for driving the qubits. The `X` and `Y` arguments correspond to the readout instrument ID and the qubit number, respectively. " ] }, { @@ -343,13 +315,13 @@ "transpiled_circuit = transpile(qc, backend)\n", "transpiled_circuits.append(transpiled_circuit)\n", "\n", - "# Print transpiled circuits qasm code \n", + "# Print transpiled circuits qasm code\n", "for circ in transpiled_circuits:\n", " print(f\"====== Transpiled circuit ({backend_name}) ======:\\n{dumps(circ)}\\n\")\n", "\n", "# Generate samplers for backend targets\n", "sampler = SamplerV2(backend)\n", - "sampler.options.experimental = { \n", + "sampler.options.experimental = {\n", " \"image\": \"qiskit-ibm-primitives:4ee9f0c18aa7bf1da12cc660f65036a921efd679\", # this should be removed once the feature is enabled by default on main\n", " \"execution\": {\"scheduler_timing\": True},\n", "}\n", From b22e47fcdc21e16894d1654e19441aca1d45d5e9 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 2 Oct 2025 12:19:50 -0500 Subject: [PATCH 13/33] some fixes --- docs/guides/visualize-circuit-timing.ipynb | 56 ++++++++++++---------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 94dea76d63e..a43a56f18bb 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -178,6 +178,7 @@ }, { "cell_type": "markdown", + "id": "8265326c-148f-4915-8e53-126916d0c8ec", "metadata": {}, "source": [ "### Enable timing data retrieval\n", @@ -186,7 +187,7 @@ "\n", "```python\n", "sampler = SamplerV2(backend)\n", - "sampler.options.experimental = { \n", + "sampler.options.experimental = {\n", " \"execution\": {\n", " \"scheduler_timing_info\": True,\n", " },\n", @@ -196,11 +197,12 @@ }, { "cell_type": "markdown", + "id": "2b03c0a0-9bad-428b-8e1b-c2153729a45b", "metadata": {}, "source": [ - "### Access the circuit schedule data \n", + "### Access the circuit schedule data\n", "\n", - "Access the circuit's schedule data from the job's result metadata as follows. \n", + "Access the circuit's schedule data from the job's result metadata as follows.\n", "\n", "```python\n", "job_result: SamplerPubResult = job.result()\n", @@ -208,11 +210,12 @@ " circuit_schedule_timing = circuit_schedule[\"timing\"]\n", "```\n", "\n", - "All of the data is returned under `compilation`. Therefore, you will use that option, along with various sub-arguments to access specific data. " + "All of the data is returned under `compilation`. Therefore, you will use that option, along with various sub-arguments to access specific data." ] }, { "cell_type": "markdown", + "id": "e5a2081a-3037-44cc-8fca-a4d106297bf0", "metadata": {}, "source": [ "### Visualize the timings\n", @@ -225,6 +228,7 @@ }, { "cell_type": "markdown", + "id": "af8884d1-d833-4d98-8d71-35a48420b93c", "metadata": {}, "source": [ "### Arguments\n", @@ -232,11 +236,12 @@ "The following arguments are used with timing visualizations.\n", "\n", "- `compilation` - Used to retrieve values from circuit-timing related feature flags, in the format `result[0].metadata[\"compilation\"][]`.\n", - "- `timing` - Used to retrieve circuit timing data after it has been retrieved from the metadata.\n" + "- `timing` - Used to retrieve circuit timing data after it has been retrieved from the metadata." ] }, { "cell_type": "markdown", + "id": "b43cb163-421b-448b-940b-38b5bbd3a696", "metadata": {}, "source": [ "### Understand the `circuit_schedule` input\n", @@ -264,13 +269,14 @@ }, { "cell_type": "markdown", + "id": "72f2d3eb-0a7e-4c4e-81c8-15d326604c15", "metadata": {}, "source": [ "### Understand the output\n", "\n", "### AWGRX_Y definition\n", "\n", - "Arbitrary Wave Generator Readout (AWGR) is used for readout channels communication for measuring qubits, as opposed to drive channels, which are for driving the qubits. The `X` and `Y` arguments correspond to the readout instrument ID and the qubit number, respectively. " + "Arbitrary Wave Generator Readout (AWGR) is used for readout channels communication for measuring qubits, as opposed to drive channels, which are for driving the qubits. The `X` and `Y` arguments correspond to the readout instrument ID and the qubit number, respectively." ] }, { @@ -282,12 +288,13 @@ "\n", "This example shows you how to enable the option, get it from the metadata, display it, and save it to a file.\n", "\n", - "First, set up the environment, define and transpile the circuits, and define and run the jobs. " + "First, set up the environment, define and transpile the circuits, and define and run the jobs." ] }, { "cell_type": "code", "execution_count": null, + "id": "f7d05263-a9d3-4fe8-aeba-5973c9d45f87", "metadata": {}, "outputs": [], "source": [ @@ -296,8 +303,6 @@ "from qiskit.qasm3 import dumps\n", "from qiskit import transpile\n", "\n", - "import qiskit\n", - "import qiskit_ibm_runtime\n", "\n", "service = QiskitRuntimeService()\n", "backend = service.least_busy(operational=True, simulator=False)\n", @@ -317,19 +322,23 @@ "\n", "# Print transpiled circuits qasm code\n", "for circ in transpiled_circuits:\n", - " print(f\"====== Transpiled circuit ({backend_name}) ======:\\n{dumps(circ)}\\n\")\n", + " print(\n", + " f\"====== Transpiled circuit ({backend_name}) ======:\\n{dumps(circ)}\\n\"\n", + " )\n", "\n", "# Generate samplers for backend targets\n", "sampler = SamplerV2(backend)\n", "sampler.options.experimental = {\n", - " \"image\": \"qiskit-ibm-primitives:4ee9f0c18aa7bf1da12cc660f65036a921efd679\", # this should be removed once the feature is enabled by default on main\n", + " \"image\": \"qiskit-ibm-primitives:4ee9f0c18aa7bf1da12cc660f65036a921efd679\", # this should be removed once the feature is enabled by default on main\n", " \"execution\": {\"scheduler_timing\": True},\n", "}\n", "\n", "# Submit jobs\n", "sampler_job = sampler.run(transpiled_circuits)\n", "\n", - "print(f\">>> {' Job ID:':<10} {sampler_job.job_id()} ({sampler_job.status()})\")\n", + "print(\n", + " f\">>> {' Job ID:':<10} {sampler_job.job_id()} ({sampler_job.status()})\"\n", + ")\n", "\n", "result = sampler_job.result()\n", "print(f\">>> {' Job:':<10} {sampler_job.job_id()} finished with:\\n{result}\")" @@ -337,6 +346,7 @@ }, { "cell_type": "markdown", + "id": "936f6572-6915-4e9d-b027-e07d83096e63", "metadata": {}, "source": [ "Next, get the circuit schedule timing:" @@ -345,6 +355,7 @@ { "cell_type": "code", "execution_count": null, + "id": "43d70c4c-71eb-437d-b543-6994f7244a4a", "metadata": {}, "outputs": [], "source": [ @@ -354,6 +365,7 @@ }, { "cell_type": "markdown", + "id": "19387aa6-0503-48cb-84e7-31e4d6675cb5", "metadata": {}, "source": [ "Finally, you can visualize and save the timing:" @@ -362,12 +374,17 @@ { "cell_type": "code", "execution_count": null, + "id": "ab2fabf7-b069-4d2d-918c-dbf1e3da599c", "metadata": {}, "outputs": [], "source": [ "from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing\n", "\n", - "circuit_schedule = result[0].metadata[\"compilation\"][\"scheduler_timing\"][\"timing\"].split(\"\\n\")\n", + "circuit_schedule = (\n", + " result[0]\n", + " .metadata[\"compilation\"][\"scheduler_timing\"][\"timing\"]\n", + " .split(\"\\n\")\n", + ")\n", "fig = draw_circuit_schedule_timing(\n", " circuit_schedule=circuit_schedule,\n", " included_channels=None,\n", @@ -377,19 +394,6 @@ ")" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n" - ] - }, - { - "cell_type": "markdown", - "id": "5ed2acb7-99cd-47bf-bfe1-0e69ad95f428", - "metadata": {}, - "source": [] - }, { "cell_type": "markdown", "id": "0761df2f-183f-48e3-9070-766a9920c2b9", From cfd010682ef5fa5f31591d18f035075cbcaacb48 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 2 Oct 2025 12:29:22 -0500 Subject: [PATCH 14/33] change variable name --- docs/guides/visualize-circuit-timing.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index a43a56f18bb..1e708d4c980 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -323,7 +323,7 @@ "# Print transpiled circuits qasm code\n", "for circ in transpiled_circuits:\n", " print(\n", - " f\"====== Transpiled circuit ({backend_name}) ======:\\n{dumps(circ)}\\n\"\n", + " f\"====== Transpiled circuit ({backend}) ======:\\n{dumps(circ)}\\n\"\n", " )\n", "\n", "# Generate samplers for backend targets\n", From 8fe0dc252d62377d94c5c9ac909d0804f7218878 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 2 Oct 2025 16:09:12 -0500 Subject: [PATCH 15/33] squeaky again --- docs/guides/visualize-circuit-timing.ipynb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 1e708d4c980..74abf39ce95 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -322,9 +322,7 @@ "\n", "# Print transpiled circuits qasm code\n", "for circ in transpiled_circuits:\n", - " print(\n", - " f\"====== Transpiled circuit ({backend}) ======:\\n{dumps(circ)}\\n\"\n", - " )\n", + " print(f\"====== Transpiled circuit ({backend}) ======:\\n{dumps(circ)}\\n\")\n", "\n", "# Generate samplers for backend targets\n", "sampler = SamplerV2(backend)\n", From 2685cad420420af00d75a82b1874019ceb94ad70 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 2 Oct 2025 16:34:03 -0500 Subject: [PATCH 16/33] edits --- docs/guides/visualize-circuit-timing.ipynb | 26 ++++++---------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 74abf39ce95..3c94729b536 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -173,7 +173,7 @@ "source": [ "## Qiskit Runtime support\n", "\n", - "While the timeline drawer built in to Qiskit is useful for static circuits, it might not accurately reflect the timing of [dynamic circuits](/docs/guides/classical-feedforward-and-control-flow) due to implicit operations such as broadcasting and branch determination. As part of dynamic circuits support, Qiskit Runtime returns the accurate circuit timing information inside the job results when requested." + "While the timeline drawer built in to Qiskit is useful for static circuits, it might not accurately reflect the timing of [dynamic circuits](/docs/guides/classical-feedforward-and-control-flow) because of implicit operations such as broadcasting and branch determination. As part of dynamic circuit support, Qiskit Runtime returns the accurate circuit timing information inside the job results when requested." ] }, { @@ -250,12 +250,12 @@ "\n", "The instruction data is comma separated into `Branch`, `Instruction`, `Channel`, `T0`, `Duration`, and `Pulse` data types.\n", "\n", - "- `Branch` - determines if the instruction is in a control flow (then / else) or a main branch\n", - "- `Instruction` - the gate and the qubit to operate on\n", - "- `Channel` - the channel that is being assigned with the instruction (Qubit x / AWGRx_y / ...)\n", - "- `T0` - the instruction start time within the complete schedule\n", - "- `Duration` - the duration of the instruction\n", - "- `Pulse` - the type of pulse operation being used\n", + "- `Branch` - Determines whether the instruction is in a control flow (then / else) or a main branch\n", + "- `Instruction` - The gate and the qubit to operate on\n", + "- `Channel` - The channel that is being assigned with the instruction (Qubit x / AWGRx_y / ...). Arbitrary Wave Generator Readout (AWGR) is used for readout channels communication for measuring qubits, as opposed to drive channels, which are for driving the qubits. The `X` and `Y` arguments correspond to the readout instrument ID and the qubit number, respectively.\n", + "- `T0` - The instruction start time within the complete schedule\n", + "- `Duration` - The instruction's duration\n", + "- `Pulse` - The type of pulse operation being used\n", "\n", "\n", "Example:\n", @@ -267,18 +267,6 @@ "```" ] }, - { - "cell_type": "markdown", - "id": "72f2d3eb-0a7e-4c4e-81c8-15d326604c15", - "metadata": {}, - "source": [ - "### Understand the output\n", - "\n", - "### AWGRX_Y definition\n", - "\n", - "Arbitrary Wave Generator Readout (AWGR) is used for readout channels communication for measuring qubits, as opposed to drive channels, which are for driving the qubits. The `X` and `Y` arguments correspond to the readout instrument ID and the qubit number, respectively." - ] - }, { "cell_type": "markdown", "id": "4c3181fd-e4fa-40c2-85ee-a51780c525cf", From 18d33c7f28744b364143694a44b7f6ec58981127 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Fri, 3 Oct 2025 09:15:53 -0500 Subject: [PATCH 17/33] there's only 1 sub-argument --- docs/guides/visualize-circuit-timing.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 3c94729b536..5e18abb2194 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -210,7 +210,7 @@ " circuit_schedule_timing = circuit_schedule[\"timing\"]\n", "```\n", "\n", - "All of the data is returned under `compilation`. Therefore, you will use that option, along with various sub-arguments to access specific data." + "All of the data is returned under `compilation`. Therefore, you use that option, along the `timing` sub-argument to access specific data." ] }, { From 105384cc3f37cd61cc51d93671c9aef2da8b9d57 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Fri, 3 Oct 2025 10:58:12 -0500 Subject: [PATCH 18/33] Roy comments --- docs/guides/visualize-circuit-timing.ipynb | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 5e18abb2194..1b48098b8d5 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -183,13 +183,13 @@ "source": [ "### Enable timing data retrieval\n", "\n", - "To enable timing data retrieval, set the `scheduler_timing_info` flag to `True` when running the primitive job:\n", + "To enable timing data retrieval, set the `scheduler_timing` flag to `True` when running the primitive job:\n", "\n", "```python\n", "sampler = SamplerV2(backend)\n", "sampler.options.experimental = {\n", " \"execution\": {\n", - " \"scheduler_timing_info\": True,\n", + " \"scheduler_timing\": True,\n", " },\n", "}\n", "```" @@ -222,8 +222,8 @@ "\n", "You can display the output figure, save it to a file, or both.\n", "\n", - "- Run `fig.show()` display the figure.\n", - "- Run `fig.write_image(\"\")` download the figure. For example: `fig.write_html(\"scheduler_timing.html\")` or `fig.write_image(\"scheduler_timing.png\")`." + "- Run [`fig.show()`](https://plotly.com/python-api-reference/generated/plotly.io.show.html) display the figure.\n", + "- Run [`fig.write_image(\"\")`](https://plotly.com/python-api-reference/generated/plotly.io.write_image.html) download the figure. For example: `fig.write_html(\"scheduler_timing.html\")` or `fig.write_image(\"scheduler_timing.png\")`." ] }, { @@ -288,7 +288,6 @@ "source": [ "from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2\n", "from qiskit.circuit import QuantumCircuit\n", - "from qiskit.qasm3 import dumps\n", "from qiskit import transpile\n", "\n", "\n", @@ -308,14 +307,9 @@ "transpiled_circuit = transpile(qc, backend)\n", "transpiled_circuits.append(transpiled_circuit)\n", "\n", - "# Print transpiled circuits qasm code\n", - "for circ in transpiled_circuits:\n", - " print(f\"====== Transpiled circuit ({backend}) ======:\\n{dumps(circ)}\\n\")\n", - "\n", "# Generate samplers for backend targets\n", "sampler = SamplerV2(backend)\n", "sampler.options.experimental = {\n", - " \"image\": \"qiskit-ibm-primitives:4ee9f0c18aa7bf1da12cc660f65036a921efd679\", # this should be removed once the feature is enabled by default on main\n", " \"execution\": {\"scheduler_timing\": True},\n", "}\n", "\n", @@ -377,7 +371,8 @@ " filter_readout_channels=False,\n", " filter_barriers=False,\n", " width=1000,\n", - ")" + ")\n", + "fig.show()" ] }, { From b433653f96612f7936eaa545ca74e48e6c2b9dd1 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Mon, 6 Oct 2025 14:13:03 -0500 Subject: [PATCH 19/33] Add new instructions --- ...assical-feedforward-and-control-flow.ipynb | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/guides/classical-feedforward-and-control-flow.ipynb b/docs/guides/classical-feedforward-and-control-flow.ipynb index ab9370116a3..d57a1ff4cb5 100644 --- a/docs/guides/classical-feedforward-and-control-flow.ipynb +++ b/docs/guides/classical-feedforward-and-control-flow.ipynb @@ -285,6 +285,32 @@ "qc.draw(output=\"mpl\", style=\"iqp\", idle_wires=False, fold=-1)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Find backends that support dynamic circuits\n", + "\n", + "To find all backends that your account can access and support dynamic circuits, run code like the following. This example assumes that you have [saved your login credentials.](/docs/guides/save-credentials) You could also [explicitly specify credentials](/docs/guides/initialize-account#explicit) when initializing your Qiskit Runtime service account. This would let you view backends available on a specific instance or plan type, for example. \n", + "\n", + "\n", + "The backends that are available to the account depend on the instance specified in the credentials.\n", + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit_ibm_runtime import QiskitRuntimeService\n", + "\n", + "service = QiskitRuntimeService()\n", + "dc_backends = service.backends(dynamic_circuits=True)\n", + "print(dc_backends)" + ] + }, { "cell_type": "markdown", "id": "0378a45f-7a28-48bc-993d-0e4308d38bfc", From 2a96596bd3790235d7ffa3bb39eb5e47bcdcc2a2 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Wed, 8 Oct 2025 09:39:22 -0500 Subject: [PATCH 20/33] Jessie comments --- .gitignore | 1 + docs/guides/visualize-circuit-timing.ipynb | 107 ++++++++------------- 2 files changed, 42 insertions(+), 66 deletions(-) diff --git a/.gitignore b/.gitignore index 3105d955d78..67454708279 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ poetry.lock Untitled*.ipynb *.tar *.tar.gz +How_to_get_and_visualize_scheduler_timing.ipynb diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 1b48098b8d5..d677d7f4bde 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -44,9 +44,14 @@ "source": [ "In addition to [visualizing instructions on a circuit](/docs/guides/visualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example.\n", "\n", + "\n", + "- This is an experimental function. It is in preview release status and is therefore subject to change.\n", + "- This function only applies to Sampler jobs.\n", + "\n", + "\n", "## Examples\n", "\n", - "To visualize a scheduled circuit program, you can call this function with a set of control arguments. Most of the output image's appearance can be modified by a stylesheet, but this is not required.\n", + "To visualize a scheduled circuit program, you can call this function with a set of control arguments. Most of the output image's appearance can be modified by a stylesheet, but this is not required. \n", "\n", "### Draw with the default stylesheet" ] @@ -61,6 +66,7 @@ "from qiskit import QuantumCircuit, transpile\n", "from qiskit.visualization.timeline import draw\n", "from qiskit.providers.fake_provider import GenericBackendV2\n", + "from qiskit.transpiler import generate_preset_pass_manager\n", "\n", "qc = QuantumCircuit(2)\n", "qc.h(0)\n", @@ -68,37 +74,10 @@ "\n", "backend = GenericBackendV2(5)\n", "\n", - "qc = transpile(qc, backend, scheduling_method=\"alap\", layout_method=\"trivial\")\n", - "draw(qc, target=backend.target)" - ] - }, - { - "cell_type": "markdown", - "id": "5bdb1520-3760-4e7f-833b-69fed26a770a", - "metadata": {}, - "source": [ - "### Draw with a simple stylesheet" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d003cdda-f348-431f-8d86-0f1f24136019", - "metadata": {}, - "outputs": [], - "source": [ - "from qiskit import QuantumCircuit, transpile\n", - "from qiskit.visualization.timeline import draw, IQXSimple\n", - "from qiskit.providers.fake_provider import GenericBackendV2\n", - "\n", - "qc = QuantumCircuit(2)\n", - "qc.h(0)\n", - "qc.cx(0, 1)\n", - "\n", - "backend = GenericBackendV2(5)\n", + "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n", + "isa_circuit = pm.run(qc)\n", "\n", - "qc = transpile(qc, backend, scheduling_method=\"alap\", layout_method=\"trivial\")\n", - "draw(qc, style=IQXSimple(), target=backend.target)" + "draw(isa_circuit, target=backend.target)" ] }, { @@ -119,43 +98,16 @@ "from qiskit import QuantumCircuit, transpile\n", "from qiskit.visualization.timeline import draw, IQXDebugging\n", "from qiskit.providers.fake_provider import GenericBackendV2\n", + "from qiskit.transpiler import generate_preset_pass_manager\n", "\n", "qc = QuantumCircuit(2)\n", "qc.h(0)\n", "qc.cx(0, 1)\n", "\n", "backend = GenericBackendV2(5)\n", - "qc = transpile(qc, backend, scheduling_method=\"alap\", layout_method=\"trivial\")\n", - "draw(qc, style=IQXDebugging(), target=backend.target)" - ] - }, - { - "cell_type": "markdown", - "id": "2a5578e5-0124-473a-a13f-4a4b2b466b1c", - "metadata": {}, - "source": [ - "### Draw with a modified stylesheet\n", - "\n", - "You can customize some parts of a preset stylesheet when you call it." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "82e06dc4-6f2f-4852-b2cc-3ee7a9b8234b", - "metadata": {}, - "outputs": [], - "source": [ - "from qiskit.visualization.timeline import draw, IQXStandard\n", - "\n", - "my_style = {\n", - " \"formatter.general.fig_width\": 16,\n", - " \"formatter.general.fig_unit_height\": 1,\n", - "}\n", - "style = IQXStandard(**my_style)\n", - "\n", - "# draw\n", - "draw(qc, style=style)" + "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n", + "isa_circuit = pm.run(qc)\n", + "draw(isa_circuit, style=IQXDebugging(), target=backend.target)" ] }, { @@ -163,7 +115,7 @@ "id": "539fe309-5b11-4d00-b826-d92c21c0925c", "metadata": {}, "source": [ - "Similarly, you can create custom generator or layout functions and update an existing stylesheet with the custom functions. This way, you can control the most of the appearance of the output image without modifying the codebase of the scheduled circuit drawer." + "You can create custom generator or layout functions and update an existing stylesheet with the custom functions. This way, you can control the most of the appearance of the output image without modifying the codebase of the scheduled circuit drawer. See the [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) API reference for more examples." ] }, { @@ -220,10 +172,33 @@ "source": [ "### Visualize the timings\n", "\n", - "You can display the output figure, save it to a file, or both.\n", + "To visualize the timings, you first need to convert the result metadata to `fig` by using the `draw_circuit_schedule_timing` (**link to API reference when available**) method. This method returns a `plotly` figure, which you can display directly, save to a file, or both.\n", "\n", - "- Run [`fig.show()`](https://plotly.com/python-api-reference/generated/plotly.io.show.html) display the figure.\n", - "- Run [`fig.write_image(\"\")`](https://plotly.com/python-api-reference/generated/plotly.io.write_image.html) download the figure. For example: `fig.write_html(\"scheduler_timing.html\")` or `fig.write_image(\"scheduler_timing.png\")`." + "```python\n", + "from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing\n", + "\n", + "# Create a figure from the metadata\n", + "fig = draw_circuit_schedule_timing(\n", + " circuit_schedule=circuit_timing,\n", + " included_channels=None,\n", + " filter_readout_channels=False,\n", + " filter_barriers=False,\n", + " width=1000,\n", + ")\n", + "\n", + "# Display the figure\n", + "fig.show(renderer=\"notebook\")\n", + "\n", + "# Save to a file\n", + "fig.write_html(\"scheduler_timing.html\")\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For more information about the `plotly` commands, see [`fig.show()`](https://plotly.com/python-api-reference/generated/plotly.io.show.html) and [`fig.write_image(\"\")`.](https://plotly.com/python-api-reference/generated/plotly.io.write_image.html)" ] }, { From 7784441cf8bdde456e63db80444710d7cf82e29c Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Wed, 8 Oct 2025 13:53:01 -0500 Subject: [PATCH 21/33] change figure renderer --- docs/guides/visualize-circuit-timing.ipynb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index d677d7f4bde..6317afd47c7 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -347,7 +347,9 @@ " filter_barriers=False,\n", " width=1000,\n", ")\n", - "fig.show()" + "\n", + "# Display the figure\n", + "fig.show(renderer=\"notebook\")" ] }, { From daa7368365fc9e6227a350ba4a2e1375bb27807b Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Wed, 8 Oct 2025 14:13:20 -0500 Subject: [PATCH 22/33] Get runtime from Roy's PR --- scripts/nb-tester/requirements.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/nb-tester/requirements.txt b/scripts/nb-tester/requirements.txt index c9b3f144eb7..5caacc22c17 100644 --- a/scripts/nb-tester/requirements.txt +++ b/scripts/nb-tester/requirements.txt @@ -2,7 +2,9 @@ # stable build. qiskit[all]~=2.1.2 -qiskit-ibm-runtime~=0.40.1 +# qiskit-ibm-runtime~=0.40.1 +# adding this line to test Roy's code and get output. It should be removed before merging. +qiskit-ibm-runtime @ git+https://github.com/RoyElkabetz/qiskit-ibm-runtime.git@re-sched-vis qiskit-ibm-transpiler[ai-local-mode]~=0.14.0 qiskit-aer~=0.17 qiskit-serverless~=0.25.4 From 73ce4e2b02714ac9ba83da98612e6c3aebda2c83 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Wed, 8 Oct 2025 16:37:02 -0500 Subject: [PATCH 23/33] More jessie comments --- docs/guides/visualize-circuit-timing.ipynb | 171 +++++++++++++-------- 1 file changed, 107 insertions(+), 64 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 6317afd47c7..3f906f2bf7b 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -2,7 +2,6 @@ "cells": [ { "cell_type": "markdown", - "id": "0af88701-d9bc-47f2-8ceb-2ae51f567934", "metadata": {}, "source": [ "{/* cspell:ignore mactex, backgroundcolor, lightgreen */}" @@ -10,7 +9,6 @@ }, { "cell_type": "markdown", - "id": "8d75dc24-b8d2-45f8-830b-48e45f794a31", "metadata": {}, "source": [ "# Visualize circuit timing" @@ -18,7 +16,6 @@ }, { "cell_type": "markdown", - "id": "7ea76afb-aecf-4ea2-b173-5d5e7e7d68ec", "metadata": { "tags": [ "version-info" @@ -39,7 +36,6 @@ }, { "cell_type": "markdown", - "id": "0c5a21eb-3af2-4d00-be04-53525ab5ac19", "metadata": {}, "source": [ "In addition to [visualizing instructions on a circuit](/docs/guides/visualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example.\n", @@ -59,11 +55,22 @@ { "cell_type": "code", "execution_count": null, - "id": "59ded42f-f090-4be3-a519-ca77f289de62", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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unXsuuuucfHFF1f5/R46dGiUlJRU+3XZZZet8bLpq6ysrI6fKbAmVvU726pVq0rLPf/883HWWWfFvvvum92Xlhk5cmS125w0adIqt7vTTjvV0TMD1tTa/A1f3XLpK51P1OScA6h7l1xySRx77LGx9dZbZ7+/Xbt2Xe3yY8aMiYMOOij7Xd5oo43i0EMPjZdffrnKctdff30MGDAgOnXqlGUJ6fd/n332yc4bli1bVu22//znP8duu+0WzZs3j8033zxOOeWUmD59eq09V2DdjwULFy6M//u//4ujjjoqWyb9vqZ1Bg0aFP/617+qXeeTTz6J//iP/8iyxRYtWkSHDh3iwAMPjLvvvrvSco8//viXnmM888wzsTYaRwM3ZMiQuPLKK+Mb3/hGFtim/4T080svvRSPPPJIlJY2+OwaGqThw4fH1VdfHV//+tfjhBNOyN6MPfbYY3H++efHLbfcEqNHj84OwCtKH+Jssskmldr22GOPSj8fffTR0b179yqP9+qrr8Z///d/x5FHHrmenhGwrvr27RunnnpqpbaVP2x54IEHsmNHOunq1atXPPvss1+63XQOkY4NK2rbtm0t9RqoLWvzN/yGG25YZfg7fvz4SsvW5JwDqDs///nPY+ONN47dd989Zs2atdpl0+9rv379Ysstt4yLLrooa7vqqquyc4h0TrDzzjtXLPviiy9Gu3bt4owzzojNNtss5s6dG/fff38MHjw4nnrqqfjTn/5U5b3Gv//7v8cBBxwQw4YNi/fffz9+97vfxXPPPZd9cNyyZcv1tAeAtTkWpMEZ6T3DfvvtFyeffHJsscUWMWHChLj22mvjjjvuiAcffDD69+9fsfz8+fPjK1/5SkyZMiV+8IMfxC677BIzZszIPsQZOHBgXHPNNXHaaadly26//fbVnmMsWrQoe8yUR/Tp0yfWSqEBe/311wslJSWFo48+ulL7lVdeWUhP/cYbb6y3vgHrZuzYsYVZs2ZVaf/FL36R/X7//ve/r2i74IILsraJEyfW+PFOPfXUbBv33XdfjbcBrD/p9/PEE0/80uWmTZtWmDt3bvb9rbfemq03YsSIapdNx4x0fzqGABuuNf0bPmXKlEJpaWlhzz33rPE5B1D3xo8fX/H9jjvuWOjSpcsql+3du3ehdevWhffff7+iLX2f2g4++OA1erzDDz88yxk+/PDD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Lfwddtgh5s2blx0nVpQmNX3yySdj5513rlJeIUlX/ixZsmSd84SSQnWRcQOSalCkg2e6ROrwww+Pf/3rX3HllVdms76l2d+cdMGG6eqrr44zzzwzmzwozeq88u9yGgmXDsSphm06CKdZ4bfffvto165dNllJGikzd+7cuPnmm6stEp5O4NK206fuK096BORLmmQwjWbp379/9nubfrcfeOCB7CRsr732ym7Tm6lk8uTJccMNN2Tfv/HGG1mtuqOPPjp22223rC2FMuWftqf2NBlJ+nAnlUdIpRFuv/32rA5WeoN2xx13OI+AHFqbv+GnnXZaVvIgHTMOO+ywdTrnAOpH+rue/r6Xh6rpkuWf/OQn2c/pb3r6214uzW2Rzhc6deqUZQXl66QR+qleZfkEQ+k9RMeOHbMcIU1onH7Pp02bFnfddVf2gU+a9DDVrkylk8qliYrOOeec6NevX1bPsnzyonQOMXbsWCNuISfHgsmTJ2fnCGnUfKpZu80221TZVvrdT+URkvT7m+papw9lyicnS1f1pYFgaRt33313HHHEEVW2kfKHSZMmZeclKYeosUIDt3Tp0sJll11W6NmzZ6FJkyaFLbbYojBkyJDCnDlz6rtrwDo48cQT04dOq/w64IADsuUWLlxYOPnkkws77bRToW3btoXGjRsXOnToUDjmmGMKY8aMWeX2L7744mw7f/jDH+rwWQE1cddddxUOOeSQ7G9806ZNCy1atCj06tUr+z1esGBBpWUfe+yx1R470v3l/vjHP2bHks0337xQVlZWaNWqVWGvvfYqXH311YVly5bVwzMF1sSa/g2fP39+oU2bNoXOnTuv9nd6Tc85gPqRfgfX5vfz2WefLRx44IGFli1bZn/b0znECy+8UGmZRYsWFX7yk58UevfuXWjfvn2hUaNG2XuJfffdt3DVVVcVFi9eXG1fRowYUdhll12y85FNN920MHjw4MJHH3203p47sPbHgi97P5C+Jk6cuMKWC4UXX3wxyxA222yziuPBgAEDKr13WNEzzzyTbefb3/52YV01+BG3AAAAAAAbGtf3AQAAAADkjOAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgCABmfSpElRUlISQ4cObdCPWRM//elPo1u3brF48eIvXfbxxx/PntPIkSPXaNt33313NGnSJN55551a6CkAQHET3AIArIMJEybEqaeeGtttt120aNEi2rVrF9tvv32ceOKJ8dhjj63Xx04B4V133bVeH4Oq4Wza7y+//HJsiCZOnBjDhg2L//qv/8oC1ppIzz3tg7QvVnbUUUfFzjvvnIXDAACsm8bruD4AQNH65z//GQcccECUlZXF9773vdhxxx1jwYIF2WjDhx9+OFq3bh39+/dfb49/4YUXZgHxwIED19tjUFkKK9N+79q1a+y6666V7uvSpUv2/9+4cX5PsX/zm9/ERhttFN/5zndqvI0U3KZ90K9fv2w/rOzHP/5x9rp84403st8JAABqJr9nlQAAOZfCq/nz52dBVq9evarcP23atHrpF/UjlRRo1qxZ5NXs2bPjxhtvjJNPPjn7sGF9Ofroo+O0006L6667Ln7/+9+vt8cBAGjolEoAAKihNLK2ffv21Ya2SYcOHbLbVEt00003jX333bfa5f77v/87C/2efPLJ7OeFCxdml6Jvu+22WfmFtm3bZpefn3vuuZVqqSbXX3999n3514oeeeSROOSQQ7L1U6C4yy67ZGHaytKoyTR68pVXXomDDjooWrVqFZtttln85Cc/iaVLl2b9Oeecc2LLLbfMtrP//vvHv/71rzXeTynAPuuss2LrrbeOpk2bZts++OCD4+9//3vF5fXpeaZgcWVjx47NntdFF11Uqf3222/P+pyeW1o37av0GGtSt/Wvf/1r7LffftmI6LTuXnvtFbfddtuXrpfqvJaPoB48eHDFPk/9WFWN2xXbbrnllmyUbvPmzaN79+4xYsSIbJn33nsvvvnNb8bGG2+c9SmNhp0zZ06Vx//www+zQHSrrbbKyhxsscUWWZmOjz/+ONbEAw88EPPmzYvDDz98lfVpd9ttt+z/uHPnzvGf//mfsWTJkkrLpOeRnnuS9kX5PjjppJMqlkmvn759+67RPgUAYNWMuAUAqKFtttkm3n777bjjjjuyUYarkkK2dOn45Zdfni2fQsYVDR8+PHr27JkFoskZZ5yRtaXyC//+7/+ehacpJH700Uez+1MIfMMNN8R3v/vdLCBL4d3K/vCHP8S//du/xd577x2/+MUvomXLlllQmoK/8ePHZ2Hxit5///0sTD3uuOOyEDGVevjd736XXfafLnlPJQDOO++8+OSTT+Kyyy7LyjOk8La0dPXjAFJwmQLrjz76KHs+e+65ZxYejh49OguW02P+4Ac/iHvuuSduvvnm+OEPf1hp/T/96U/ZY3z/+9+vaEvP59e//nXssMMOMWTIkOjYsWP2nFKYmwLe1dVuPf/88+Piiy+OQw89NH75y19m277zzjvj2GOPjauuuirb96uS/n9+/vOfZ4+d9nna98nmm28eX+a+++7LQvPTTz89C2jT80rPKfU1bfPAAw/MtpuC6vR/n8LTP/7xjxXrp3B3n332yYLpNGI2vfbefffduPbaa7NayqlsR5s2bVbbhyeeeCK77d27d5X70j445phjshA/1b9N/+8pWL7//vsrLZde5ylATq+v1O9UzzlJ/VlR6utDDz0Ub731Vlb/GQCAGigAAFAjzz77bKGsrKyQTql69OhRGDx4cOGaa64pvPnmm1WWffvtt7Plzj333ErtTz/9dNZ+6aWXVrS1a9eucNhhh33p46f1TjzxxCrtU6dOLTRt2rQwaNCgKvedddZZhdLS0sL48eMr2rp06ZJt65Zbbqm07O67714oKSkpfP3rXy8sX768on3YsGHZ8g8++OCX9jE9j1Utu2zZsux26dKlhc6dOxd69+5d6f558+YVNtpoo0r7YsyYMdn2+vfvX1iwYEGl5VMfy/s5ceLEbLkLLrig4v4XXngha/vZz35WpS9HHXVUoXXr1oXZs2ev9vk89thj2TZGjBhR5b7qHrO8rUWLFoVJkyZVtH/88cfZ/1Hav5dffnml7XzjG9/IXldz5sypaEv/B5tuumlhypQplZYdO3ZsoVGjRpUec1X233//7LW1svL93759+8L06dMr2mfNmlXYaqutqjzf9H1qS/tiVW644YZsmdtuu+1L+wUAQPWUSgAAqKE0qvCFF17IRtN+9tln2QjFNKIyjQRNozMnTJhQsWwaUZsmMvvzn/+cjaAtl0ZeptGNaRvl0sjJNMr19ddfr1G/0iXqixYtykZmphGyK34deeSRsXz58my064pSGYQ06nRFqZxAyod/9KMfVSrDUD7SNI0CXp0ZM2bEgw8+mI1uHTBgQJX7y0frNmrUKBt9mkabvvbaa5WeRyqfkJ5HuVSjNbnkkkuq1JOtrlzEitK66f60r1feL1//+tez8gTPPfdcrA9phHKavKxcGjWdRl6nfbDyKN+0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", + "text/plain": [ + "
" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "from qiskit import QuantumCircuit, transpile\n", + "from qiskit import QuantumCircuit\n", "from qiskit.visualization.timeline import draw\n", "from qiskit.providers.fake_provider import GenericBackendV2\n", "from qiskit.transpiler import generate_preset_pass_manager\n", @@ -82,7 +89,6 @@ }, { "cell_type": "markdown", - "id": "0761da5b-517c-4ca6-805c-b8f6e91a1e05", "metadata": {}, "source": [ "### Draw with a stylesheet suited for program debugging" @@ -91,11 +97,22 @@ { "cell_type": "code", "execution_count": null, - "id": "928f58dd-e144-48cf-900d-468f47bee9b1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "from qiskit import QuantumCircuit, transpile\n", + "from qiskit import QuantumCircuit\n", "from qiskit.visualization.timeline import draw, IQXDebugging\n", "from qiskit.providers.fake_provider import GenericBackendV2\n", "from qiskit.transpiler import generate_preset_pass_manager\n", @@ -112,7 +129,6 @@ }, { "cell_type": "markdown", - "id": "539fe309-5b11-4d00-b826-d92c21c0925c", "metadata": {}, "source": [ "You can create custom generator or layout functions and update an existing stylesheet with the custom functions. This way, you can control the most of the appearance of the output image without modifying the codebase of the scheduled circuit drawer. See the [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) API reference for more examples." @@ -120,7 +136,6 @@ }, { "cell_type": "markdown", - "id": "fd59c92f-a37f-4f4f-9cc0-86f4023bf645", "metadata": {}, "source": [ "## Qiskit Runtime support\n", @@ -130,7 +145,6 @@ }, { "cell_type": "markdown", - "id": "8265326c-148f-4915-8e53-126916d0c8ec", "metadata": {}, "source": [ "### Enable timing data retrieval\n", @@ -149,25 +163,26 @@ }, { "cell_type": "markdown", - "id": "2b03c0a0-9bad-428b-8e1b-c2153729a45b", "metadata": {}, "source": [ - "### Access the circuit schedule data\n", - "\n", - "Access the circuit's schedule data from the job's result metadata as follows.\n", + "### Access the circuit timing data\n", "\n", - "```python\n", + "When requested, the circuit timing data is returned in the job result metadata, under `[\"compilation\"][\"scheduler_timing\"][\"timing\"]`. This field contains the raw timing information. To display the timing informaion, use the built-in visualization tool to display it, as described in the following section." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ "job_result: SamplerPubResult = job.result()\n", - " circuit_schedule = job_result[0].metadata[\"compilation\"][\"scheduler_timing\"]\n", - " circuit_schedule_timing = circuit_schedule[\"timing\"]\n", - "```\n", - "\n", - "All of the data is returned under `compilation`. Therefore, you use that option, along the `timing` sub-argument to access specific data." + "circuit_schedule = job_result[0].metadata[\"compilation\"][\"scheduler_timing\"]\n", + "circuit_schedule_timing = circuit_schedule[\"timing\"]" ] }, { "cell_type": "markdown", - "id": "e5a2081a-3037-44cc-8fca-a4d106297bf0", "metadata": {}, "source": [ "### Visualize the timings\n", @@ -203,27 +218,13 @@ }, { "cell_type": "markdown", - "id": "af8884d1-d833-4d98-8d71-35a48420b93c", - "metadata": {}, - "source": [ - "### Arguments\n", - "\n", - "The following arguments are used with timing visualizations.\n", - "\n", - "- `compilation` - Used to retrieve values from circuit-timing related feature flags, in the format `result[0].metadata[\"compilation\"][]`.\n", - "- `timing` - Used to retrieve circuit timing data after it has been retrieved from the metadata." - ] - }, - { - "cell_type": "markdown", - "id": "b43cb163-421b-448b-940b-38b5bbd3a696", "metadata": {}, "source": [ - "### Understand the `circuit_schedule` input\n", + "### Understand the raw timing data\n", "\n", - "The output from the job (input to `circuit_schedule`) is a list of strings, where each string represents a single instruction on some channel.\n", + "While visualizing the circuit timing data by using the `draw_circuit_schedule_timing` method is the most common use case, it might be useful to understand the structure of the raw timing data returned. This could help you, for example, to extract information programmatically.\n", "\n", - "The instruction data is comma separated into `Branch`, `Instruction`, `Channel`, `T0`, `Duration`, and `Pulse` data types.\n", + "The timing data returned in `[\"compilation\"][\"scheduler_timing\"][\"timing\"]` is a list of strings. Each string represents a single instruction on some channel and is comma separated into the following data types:\n", "\n", "- `Branch` - Determines whether the instruction is in a control flow (then / else) or a main branch\n", "- `Instruction` - The gate and the qubit to operate on\n", @@ -244,27 +245,51 @@ }, { "cell_type": "markdown", - "id": "4c3181fd-e4fa-40c2-85ee-a51780c525cf", + "metadata": {}, + "source": [ + "### Understand the generated figure\n", + "\n", + "The image of the circuit timing data output by `draw_circuit_schedule_timing` conveys the following information:\n", + "\n", + "- X axis is time in units of _dt_ seconds, where 1 dt = 1 scheduling cycle.\n", + "- Y axis is the channel (think of channels as instruments that emit pulses).\n", + " - `Receive channel` is the only channel that isn't an instrument by itself. It is an instruction played on all channels that are part of a communication procedure with the hub at that time.\n", + " - `Qubit x` is the drive channel for qubit x.\n", + " - `AWGRx_y` (arbitrary wave generator readout) is used for readout channels communication for measuring qubits. The x and y arguments correspond to the readout instrument ID and the qubit number, respectively.\n", + " - `Hub` controls broadcasting.\n", + "\n", + "Additionally, each instruction has the format of *X_Y*, where *X* is the name of the instruction and *Y* is the pulse type. A `play` type applies control pulses, and a `capture` records the qubit's state." + ] + }, + { + "cell_type": "markdown", "metadata": {}, "source": [ "### End-to-end example\n", "\n", "This example shows you how to enable the option, get it from the metadata, display it, and save it to a file.\n", "\n", - "First, set up the environment, define and transpile the circuits, and define and run the jobs." + "First, set up the environment, define the circuits and convert them to ISA circuits, and define and run the jobs." ] }, { "cell_type": "code", "execution_count": null, - "id": "f7d05263-a9d3-4fe8-aeba-5973c9d45f87", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">>> Job ID: d3jcpo0dd19c738f5bt0 (QUEUED)\n", + ">>> Job: d3jcpo0dd19c738f5bt0 finished with:\n", + "PrimitiveResult([SamplerPubResult(data=DataBin(meas=BitArray()), metadata={'circuit_metadata': {}, 'compilation': {'scheduler_timing': {'timing': 'main,barrier,Qubit 2,0,0,barrier\\nmain,barrier,Qubit 3,0,0,barrier\\nmain,INIT_2,Qubit 2,10,2500,play\\nmain,INIT_2,Qubit 2,9,2500,play\\nmain,INIT_3,Qubit 3,10,2500,play\\nmain,INIT_3,Qubit 3,9,2500,play\\nmain,barrier,Qubit 2,2510,0,barrier\\nmain,barrier,Qubit 3,2510,0,barrier\\nmain,rz_2,Qubit 74,2510,0,shift_phase\\nmain,rz_2,Qubit 2,2510,0,shift_phase\\nmain,rz_2,Qubit 75,2510,0,shift_phase\\nmain,sx_2,Qubit 2,2510,256,play\\nmain,rz_2,Qubit 74,2766,0,shift_phase\\nmain,rz_2,Qubit 2,2766,0,shift_phase\\nmain,rz_2,Qubit 75,2766,0,shift_phase\\nmain,rz_3,Qubit 3,2510,0,shift_phase\\nmain,rz_3,Qubit 75,2510,0,shift_phase\\nmain,rz_3,Qubit 76,2510,0,shift_phase\\nmain,sx_3,Qubit 3,2510,256,play\\nmain,rz_3,Qubit 3,2766,0,shift_phase\\nmain,rz_3,Qubit 75,2766,0,shift_phase\\nmain,rz_3,Qubit 76,2766,0,shift_phase\\nmain,cz_3_2,Qubit 2,2766,21,play\\nmain,cz_3_2,Qubit 3,2766,21,play\\nmain,sx_2,Qubit 2,2787,256,play\\nmain,rz_2,Qubit 74,3043,0,shift_phase\\nmain,rz_2,Qubit 2,3043,0,shift_phase\\nmain,rz_2,Qubit 75,3043,0,shift_phase\\nmain,barrier,Qubit 3,3043,0,barrier\\nmain,barrier,Qubit 2,3043,0,barrier\\nmain,measure_3,Qubit 3,3043,64,play\\nmain,measure_3,Qubit 3,3107,91,play\\nmain,measure_3,AWGR0_3,3154,200,capture\\nmain,measure_3,Qubit 3,3198,64,play\\nmain,measure_3,Qubit 3,3262,64,play\\nmain,measure_3,Qubit 3,3326,64,play\\nmain,measure_3,Qubit 3,3390,64,play\\nmain,measure_3,Qubit 3,3454,64,play\\nmain,measure_2,Qubit 2,3043,64,play\\nmain,measure_2,Qubit 2,3107,91,play\\nmain,measure_2,AWGR0_2,3154,200,capture\\nmain,measure_2,Qubit 2,3198,64,play\\nmain,measure_2,Qubit 2,3262,64,play\\nmain,measure_2,Qubit 2,3326,64,play\\nmain,measure_2,Qubit 2,3390,64,play\\nmain,measure_2,Qubit 2,3454,64,play\\n'}, 'stretch_values': None}})], metadata={'execution': {'execution_spans': {'__type__': 'ExecutionSpans', '__value__': {'spans': [DoubleSliceSpan()]}}}, 'version': 2})\n" + ] + } + ], "source": [ "from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2\n", "from qiskit.circuit import QuantumCircuit\n", - "from qiskit import transpile\n", - "\n", "\n", "service = QiskitRuntimeService()\n", "backend = service.least_busy(operational=True, simulator=False)\n", @@ -277,10 +302,10 @@ "\n", "qc.draw()\n", "\n", - "# Transpile the circuit for the given backend\n", - "transpiled_circuits = []\n", - "transpiled_circuit = transpile(qc, backend)\n", - "transpiled_circuits.append(transpiled_circuit)\n", + "# Convert to an ISA circuit for the given backend\n", + "\n", + "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n", + "isa_circuit = pm.run(qc)\n", "\n", "# Generate samplers for backend targets\n", "sampler = SamplerV2(backend)\n", @@ -289,7 +314,7 @@ "}\n", "\n", "# Submit jobs\n", - "sampler_job = sampler.run(transpiled_circuits)\n", + "sampler_job = sampler.run(isa_circuit)\n", "\n", "print(\n", " f\">>> {' Job ID:':<10} {sampler_job.job_id()} ({sampler_job.status()})\"\n", @@ -301,7 +326,6 @@ }, { "cell_type": "markdown", - "id": "936f6572-6915-4e9d-b027-e07d83096e63", "metadata": {}, "source": [ "Next, get the circuit schedule timing:" @@ -309,10 +333,20 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "43d70c4c-71eb-437d-b543-6994f7244a4a", + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'main,barrier,Qubit 2,0,0,barrier\\nmain,barrier,Qubit 3,0,0,barrier\\nmain,INIT_2,Qubit 2,10,2500,play\\nmain,INIT_2,Qubit 2,9,2500,play\\nmain,INIT_3,Qubit 3,10,2500,play\\nmain,INIT_3,Qubit 3,9,2500,play\\nmain,barrier,Qubit 2,2510,0,barrier\\nmain,barrier,Qubit 3,2510,0,barrier\\nmain,rz_2,Qubit 74,2510,0,shift_phase\\nmain,rz_2,Qubit 2,2510,0,shift_phase\\nmain,rz_2,Qubit 75,2510,0,shift_phase\\nmain,sx_2,Qubit 2,2510,256,play\\nmain,rz_2,Qubit 74,2766,0,shift_phase\\nmain,rz_2,Qubit 2,2766,0,shift_phase\\nmain,rz_2,Qubit 75,2766,0,shift_phase\\nmain,rz_3,Qubit 3,2510,0,shift_phase\\nmain,rz_3,Qubit 75,2510,0,shift_phase\\nmain,rz_3,Qubit 76,2510,0,shift_phase\\nmain,sx_3,Qubit 3,2510,256,play\\nmain,rz_3,Qubit 3,2766,0,shift_phase\\nmain,rz_3,Qubit 75,2766,0,shift_phase\\nmain,rz_3,Qubit 76,2766,0,shift_phase\\nmain,cz_3_2,Qubit 2,2766,21,play\\nmain,cz_3_2,Qubit 3,2766,21,play\\nmain,sx_2,Qubit 2,2787,256,play\\nmain,rz_2,Qubit 74,3043,0,shift_phase\\nmain,rz_2,Qubit 2,3043,0,shift_phase\\nmain,rz_2,Qubit 75,3043,0,shift_phase\\nmain,barrier,Qubit 3,3043,0,barrier\\nmain,barrier,Qubit 2,3043,0,barrier\\nmain,measure_3,Qubit 3,3043,64,play\\nmain,measure_3,Qubit 3,3107,91,play\\nmain,measure_3,AWGR0_3,3154,200,capture\\nmain,measure_3,Qubit 3,3198,64,play\\nmain,measure_3,Qubit 3,3262,64,play\\nmain,measure_3,Qubit 3,3326,64,play\\nmain,measure_3,Qubit 3,3390,64,play\\nmain,measure_3,Qubit 3,3454,64,play\\nmain,measure_2,Qubit 2,3043,64,play\\nmain,measure_2,Qubit 2,3107,91,play\\nmain,measure_2,AWGR0_2,3154,200,capture\\nmain,measure_2,Qubit 2,3198,64,play\\nmain,measure_2,Qubit 2,3262,64,play\\nmain,measure_2,Qubit 2,3326,64,play\\nmain,measure_2,Qubit 2,3390,64,play\\nmain,measure_2,Qubit 2,3454,64,play\\n'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Get the circuit schedule timing\n", "result[0].metadata[\"compilation\"][\"scheduler_timing\"][\"timing\"]" @@ -320,7 +354,6 @@ }, { "cell_type": "markdown", - "id": "19387aa6-0503-48cb-84e7-31e4d6675cb5", "metadata": {}, "source": [ "Finally, you can visualize and save the timing:" @@ -328,10 +361,21 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "ab2fabf7-b069-4d2d-918c-dbf1e3da599c", + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "ImportError", + "evalue": "cannot import name 'draw_circuit_schedule_timing' from 'qiskit_ibm_runtime.visualization' (c:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\visualization\\__init__.py)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[5], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mqiskit_ibm_runtime\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mvisualization\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m draw_circuit_schedule_timing\n\u001b[0;32m 3\u001b[0m circuit_schedule \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m 4\u001b[0m result[\u001b[38;5;241m0\u001b[39m]\n\u001b[0;32m 5\u001b[0m \u001b[38;5;241m.\u001b[39mmetadata[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompilation\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mscheduler_timing\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtiming\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 6\u001b[0m \u001b[38;5;241m.\u001b[39msplit(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 7\u001b[0m )\n\u001b[0;32m 8\u001b[0m fig \u001b[38;5;241m=\u001b[39m draw_circuit_schedule_timing(\n\u001b[0;32m 9\u001b[0m circuit_schedule\u001b[38;5;241m=\u001b[39mcircuit_schedule,\n\u001b[0;32m 10\u001b[0m included_channels\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 13\u001b[0m width\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1000\u001b[39m,\n\u001b[0;32m 14\u001b[0m )\n", + "\u001b[1;31mImportError\u001b[0m: cannot import name 'draw_circuit_schedule_timing' from 'qiskit_ibm_runtime.visualization' (c:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\visualization\\__init__.py)" + ] + } + ], "source": [ "from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing\n", "\n", @@ -354,7 +398,6 @@ }, { "cell_type": "markdown", - "id": "0761df2f-183f-48e3-9070-766a9920c2b9", "metadata": {}, "source": [ "## Next steps\n", @@ -368,7 +411,7 @@ "metadata": { "description": "Visualize scheduling on a circuit by using the Qiskit timeline_drawer method.", "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -382,7 +425,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3" + "version": "3.12.2" }, "title": "Visualize circuit timing" }, From 408d368ac3e72c0b5e246bce4b02342582eee3a8 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 9 Oct 2025 08:40:22 -0500 Subject: [PATCH 24/33] spelling --- docs/guides/visualize-circuit-timing.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 3f906f2bf7b..33c34f8188a 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -43,7 +43,7 @@ "\n", "- This is an experimental function. It is in preview release status and is therefore subject to change.\n", "- This function only applies to Sampler jobs.\n", - "\n", + "\n", "\n", "## Examples\n", "\n", @@ -167,7 +167,7 @@ "source": [ "### Access the circuit timing data\n", "\n", - "When requested, the circuit timing data is returned in the job result metadata, under `[\"compilation\"][\"scheduler_timing\"][\"timing\"]`. This field contains the raw timing information. To display the timing informaion, use the built-in visualization tool to display it, as described in the following section." + "When requested, the circuit timing data is returned in the job result metadata, under `[\"compilation\"][\"scheduler_timing\"][\"timing\"]`. This field contains the raw timing information. To display the timing information, use the built-in visualization tool to display it, as described in the following section." ] }, { From 013f725509699ef44acfb8933f04b326dc34e3d2 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 9 Oct 2025 10:55:13 -0500 Subject: [PATCH 25/33] makin it work --- ...assical-feedforward-and-control-flow.ipynb | 4 +- docs/guides/visualize-circuit-timing.ipynb | 156 +++++++++++------- scripts/nb-tester/requirements.txt | 1 - 3 files changed, 99 insertions(+), 62 deletions(-) diff --git a/docs/guides/classical-feedforward-and-control-flow.ipynb b/docs/guides/classical-feedforward-and-control-flow.ipynb index b3ecc84e999..b1f1d41a667 100644 --- a/docs/guides/classical-feedforward-and-control-flow.ipynb +++ b/docs/guides/classical-feedforward-and-control-flow.ipynb @@ -287,11 +287,12 @@ }, { "cell_type": "markdown", + "id": "f01b52c8-77d3-4052-bece-75ca998e7bb5", "metadata": {}, "source": [ "## Find backends that support dynamic circuits\n", "\n", - "To find all backends that your account can access and support dynamic circuits, run code like the following. This example assumes that you have [saved your login credentials.](/docs/guides/save-credentials) You could also [explicitly specify credentials](/docs/guides/initialize-account#explicit) when initializing your Qiskit Runtime service account. This would let you view backends available on a specific instance or plan type, for example. \n", + "To find all backends that your account can access and support dynamic circuits, run code like the following. This example assumes that you have [saved your login credentials.](/docs/guides/save-credentials) You could also [explicitly specify credentials](/docs/guides/initialize-account#explicit) when initializing your Qiskit Runtime service account. This would let you view backends available on a specific instance or plan type, for example.\n", "\n", "\n", "The backends that are available to the account depend on the instance specified in the credentials.\n", @@ -301,6 +302,7 @@ { "cell_type": "code", "execution_count": null, + "id": "6b04b732-8143-4d76-bc43-a12ed0790bf6", "metadata": {}, "outputs": [], "source": [ diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 33c34f8188a..b4ce45945bf 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "bc87f88d-3f87-4a2a-a257-73047aef976e", "metadata": {}, "source": [ "{/* cspell:ignore mactex, backgroundcolor, lightgreen */}" @@ -9,6 +10,7 @@ }, { "cell_type": "markdown", + "id": "327d824f-5f80-4b2f-a400-80e48012049a", "metadata": {}, "source": [ "# Visualize circuit timing" @@ -16,6 +18,7 @@ }, { "cell_type": "markdown", + "id": "145b4661-4a31-4643-984c-45b1d507a10f", "metadata": { "tags": [ "version-info" @@ -36,6 +39,7 @@ }, { "cell_type": "markdown", + "id": "860ecacc-0dbc-488c-957d-f8f132521834", "metadata": {}, "source": [ "In addition to [visualizing instructions on a circuit](/docs/guides/visualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example.\n", @@ -47,19 +51,20 @@ "\n", "## Examples\n", "\n", - "To visualize a scheduled circuit program, you can call this function with a set of control arguments. Most of the output image's appearance can be modified by a stylesheet, but this is not required. \n", + "To visualize a scheduled circuit program, you can call this function with a set of control arguments. Most of the output image's appearance can be modified by a stylesheet, but this is not required.\n", "\n", "### Draw with the default stylesheet" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, + "id": "d44427e5-4806-4edf-b3c1-f482130ddd21", "metadata": {}, "outputs": [ { "data": { - "image/png": "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unXsuuuucfHFF1f5/R46dGiUlJRU+3XZZZet8bLpq6ysrI6fKbAmVvU726pVq0rLPf/883HWWWfFvvvum92Xlhk5cmS125w0adIqt7vTTjvV0TMD1tTa/A1f3XLpK51P1OScA6h7l1xySRx77LGx9dZbZ7+/Xbt2Xe3yY8aMiYMOOij7Xd5oo43i0EMPjZdffrnKctdff30MGDAgOnXqlGUJ6fd/n332yc4bli1bVu22//znP8duu+0WzZs3j8033zxOOeWUmD59eq09V2DdjwULFy6M//u//4ujjjoqWyb9vqZ1Bg0aFP/617+qXeeTTz6J//iP/8iyxRYtWkSHDh3iwAMPjLvvvrvSco8//viXnmM888wzsTYaRwM3ZMiQuPLKK+Mb3/hGFtim/4T080svvRSPPPJIlJY2+OwaGqThw4fH1VdfHV//+tfjhBNOyN6MPfbYY3H++efHLbfcEqNHj84OwCtKH+Jssskmldr22GOPSj8fffTR0b179yqP9+qrr8Z///d/x5FHHrmenhGwrvr27RunnnpqpbaVP2x54IEHsmNHOunq1atXPPvss1+63XQOkY4NK2rbtm0t9RqoLWvzN/yGG25YZfg7fvz4SsvW5JwDqDs///nPY+ONN47dd989Zs2atdpl0+9rv379Ysstt4yLLrooa7vqqquyc4h0TrDzzjtXLPviiy9Gu3bt4owzzojNNtss5s6dG/fff38MHjw4nnrqqfjTn/5U5b3Gv//7v8cBBxwQw4YNi/fffz9+97vfxXPPPZd9cNyyZcv1tAeAtTkWpMEZ6T3DfvvtFyeffHJsscUWMWHChLj22mvjjjvuiAcffDD69+9fsfz8+fPjK1/5SkyZMiV+8IMfxC677BIzZszIPsQZOHBgXHPNNXHaaadly26//fbVnmMsWrQoe8yUR/Tp0yfWSqEBe/311wslJSWFo48+ulL7lVdeWUhP/cYbb6y3vgHrZuzYsYVZs2ZVaf/FL36R/X7//ve/r2i74IILsraJEyfW+PFOPfXUbBv33XdfjbcBrD/p9/PEE0/80uWmTZtWmDt3bvb9rbfemq03YsSIapdNx4x0fzqGABuuNf0bPmXKlEJpaWlhzz33rPE5B1D3xo8fX/H9jjvuWOjSpcsql+3du3ehdevWhffff7+iLX2f2g4++OA1erzDDz88yxk+/PDD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Lfwddtgh5s2blx0nVpQmNX3yySdj5513rlJeIUlX/ixZsmSd84SSQnWRcQOSalCkg2e6ROrwww+Pf/3rX3HllVdms76l2d+cdMGG6eqrr44zzzwzmzwozeq88u9yGgmXDsSphm06CKdZ4bfffvto165dNllJGikzd+7cuPnmm6stEp5O4NK206fuK096BORLmmQwjWbp379/9nubfrcfeOCB7CRsr732ym7Tm6lk8uTJccMNN2Tfv/HGG1mtuqOPPjp22223rC2FMuWftqf2NBlJ+nAnlUdIpRFuv/32rA5WeoN2xx13OI+AHFqbv+GnnXZaVvIgHTMOO+ywdTrnAOpH+rue/r6Xh6rpkuWf/OQn2c/pb3r6214uzW2Rzhc6deqUZQXl66QR+qleZfkEQ+k9RMeOHbMcIU1onH7Pp02bFnfddVf2gU+a9DDVrkylk8qliYrOOeec6NevX1bPsnzyonQOMXbsWCNuISfHgsmTJ2fnCGnUfKpZu80221TZVvrdT+URkvT7m+papw9lyicnS1f1pYFgaRt33313HHHEEVW2kfKHSZMmZeclKYeosUIDt3Tp0sJll11W6NmzZ6FJkyaFLbbYojBkyJDCnDlz6rtrwDo48cQT04dOq/w64IADsuUWLlxYOPnkkws77bRToW3btoXGjRsXOnToUDjmmGMKY8aMWeX2L7744mw7f/jDH+rwWQE1cddddxUOOeSQ7G9806ZNCy1atCj06tUr+z1esGBBpWUfe+yx1R470v3l/vjHP2bHks0337xQVlZWaNWqVWGvvfYqXH311YVly5bVwzMF1sSa/g2fP39+oU2bNoXOnTuv9nd6Tc85gPqRfgfX5vfz2WefLRx44IGFli1bZn/b0znECy+8UGmZRYsWFX7yk58UevfuXWjfvn2hUaNG2XuJfffdt3DVVVcVFi9eXG1fRowYUdhll12y85FNN920MHjw4MJHH3203p47sPbHgi97P5C+Jk6cuMKWC4UXX3wxyxA222yziuPBgAEDKr13WNEzzzyTbefb3/52YV01+BG3AAAAAAAbGtf3AQAAAADkjOAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgCABmfSpElRUlISQ4cObdCPWRM//elPo1u3brF48eIvXfbxxx/PntPIkSPXaNt33313NGnSJN55551a6CkAQHET3AIArIMJEybEqaeeGtttt120aNEi2rVrF9tvv32ceOKJ8dhjj63Xx04B4V133bVeH4Oq4Wza7y+//HJsiCZOnBjDhg2L//qv/8oC1ppIzz3tg7QvVnbUUUfFzjvvnIXDAACsm8bruD4AQNH65z//GQcccECUlZXF9773vdhxxx1jwYIF2WjDhx9+OFq3bh39+/dfb49/4YUXZgHxwIED19tjUFkKK9N+79q1a+y6666V7uvSpUv2/9+4cX5PsX/zm9/ERhttFN/5zndqvI0U3KZ90K9fv2w/rOzHP/5x9rp84403st8JAABqJr9nlQAAOZfCq/nz52dBVq9evarcP23atHrpF/UjlRRo1qxZ5NXs2bPjxhtvjJNPPjn7sGF9Ofroo+O0006L6667Ln7/+9+vt8cBAGjolEoAAKihNLK2ffv21Ya2SYcOHbLbVEt00003jX333bfa5f77v/87C/2efPLJ7OeFCxdml6Jvu+22WfmFtm3bZpefn3vuuZVqqSbXX3999n3514oeeeSROOSQQ7L1U6C4yy67ZGHaytKoyTR68pVXXomDDjooWrVqFZtttln85Cc/iaVLl2b9Oeecc2LLLbfMtrP//vvHv/71rzXeTynAPuuss2LrrbeOpk2bZts++OCD4+9//3vF5fXpeaZgcWVjx47NntdFF11Uqf3222/P+pyeW1o37av0GGtSt/Wvf/1r7LffftmI6LTuXnvtFbfddtuXrpfqvJaPoB48eHDFPk/9WFWN2xXbbrnllmyUbvPmzaN79+4xYsSIbJn33nsvvvnNb8bGG2+c9SmNhp0zZ06Vx//www+zQHSrrbbKyhxsscUWWZmOjz/+ONbEAw88EPPmzYvDDz98lfVpd9ttt+z/uHPnzvGf//mfsWTJkkrLpOeRnnuS9kX5PjjppJMqlkmvn759+67RPgUAYNWMuAUAqKFtttkm3n777bjjjjuyUYarkkK2dOn45Zdfni2fQsYVDR8+PHr27JkFoskZZ5yRtaXyC//+7/+ehacpJH700Uez+1MIfMMNN8R3v/vdLCBL4d3K/vCHP8S//du/xd577x2/+MUvomXLlllQmoK/8ePHZ2Hxit5///0sTD3uuOOyEDGVevjd736XXfafLnlPJQDOO++8+OSTT+Kyyy7LyjOk8La0dPXjAFJwmQLrjz76KHs+e+65ZxYejh49OguW02P+4Ac/iHvuuSduvvnm+OEPf1hp/T/96U/ZY3z/+9+vaEvP59e//nXssMMOMWTIkOjYsWP2nFKYmwLe1dVuPf/88+Piiy+OQw89NH75y19m277zzjvj2GOPjauuuirb96uS/n9+/vOfZ4+d9nna98nmm28eX+a+++7LQvPTTz89C2jT80rPKfU1bfPAAw/MtpuC6vR/n8LTP/7xjxXrp3B3n332yYLpNGI2vfbefffduPbaa7NayqlsR5s2bVbbhyeeeCK77d27d5X70j445phjshA/1b9N/+8pWL7//vsrLZde5ylATq+v1O9UzzlJ/VlR6utDDz0Ub731Vlb/GQCAGigAAFAjzz77bKGsrKyQTql69OhRGDx4cOGaa64pvPnmm1WWffvtt7Plzj333ErtTz/9dNZ+6aWXVrS1a9eucNhhh33p46f1TjzxxCrtU6dOLTRt2rQwaNCgKvedddZZhdLS0sL48eMr2rp06ZJt65Zbbqm07O67714oKSkpfP3rXy8sX768on3YsGHZ8g8++OCX9jE9j1Utu2zZsux26dKlhc6dOxd69+5d6f558+YVNtpoo0r7YsyYMdn2+vfvX1iwYEGl5VMfy/s5ceLEbLkLLrig4v4XXngha/vZz35WpS9HHXVUoXXr1oXZs2ev9vk89thj2TZGjBhR5b7qHrO8rUWLFoVJkyZVtH/88cfZ/1Hav5dffnml7XzjG9/IXldz5sypaEv/B5tuumlhypQplZYdO3ZsoVGjRpUec1X233//7LW1svL93759+8L06dMr2mfNmlXYaqutqjzf9H1qS/tiVW644YZsmdtuu+1L+wUAQPWUSgAAqKE0qvCFF17IRtN+9tln2QjFNKIyjQRNozMnTJhQsWwaUZsmMvvzn/+cjaAtl0ZeptGNaRvl0sjJNMr19ddfr1G/0iXqixYtykZmphGyK34deeSRsXz58my064pSGYQ06nRFqZxAyod/9KMfVSrDUD7SNI0CXp0ZM2bEgw8+mI1uHTBgQJX7y0frNmrUKBt9mkabvvbaa5WeRyqfkJ5HuVSjNbnkkkuq1JOtrlzEitK66f60r1feL1//+tez8gTPPfdcrA9phHKavKxcGjWdRl6nfbDyKN+0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", + "image/png": "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PuKII7Id+Ir+9a9/xa9+9as47LDD1tKIgS/qo48+iq985SsxderUOOmkk2KnnXaKV155Ja699tr461//Gn/729+yg7HkgQceiKuvvjr7Mrdnz57xzDPPrPb9nHbaabF06dJ1+EiANfGTn/wkNt1009h9991rfEmzonHjxsUuu+wSAwcOzL6AmT59evaBrW/fvvGHP/whvv/971eum/YjBx54YI3beOyxx2LUqFE1jgFuuummLKhJ+57tt98+XnzxxbX4KIG1vT/4v//7vzjxxBOz4/8f//jHWXD73HPPxRVXXBF33nlnvPzyy9myJF3//vvvZ1lCCmtS8POnP/0pvvvd72b7hHRbVZ133nlZsHPAAQdkM9GnYo/0RU76PR2DPPvss1lwA6wbI0eOzI71UwA7ePDg7D34+OOPZ+/NW2+9NTse2GSTTWLx4sXZ//tTqJvC227dumVFGtddd13stdde2bHB9773vWoFoYccckj22eHYY4/NPhekorH0Jc6QIUOynPGSSy6pMZ4bb7yxxrLevXuv+QMrbMReeeWVQklJSeGII46otvzKK69McXjhpptuqrexAWvX888/X2jYsGHh8ssvz97fQ4cOrXb9+eefny2fOHFine/jxBNPzG7jvvvuWwsjBtaGM844I3tf3nzzzdWWp7/T8p/97GeVy6ZPn16YN29e9vttt92WXT9q1KjPvY+xY8cWGjRoULj00kuzbX71q1+tg0cCrIl33nmn8vcdd9yx0KVLlzXafu7cuYX27dsXtt9++9Vav1+/ftn7P32+qOr9998vLFq0KPs97RvSOo8//vgajQVYf/uDHj16FDp27FhYuHBhteU//elPs/fvXXfdVbnsiSeeKCxdurTaesuWLSvsu+++2bovv/xy5fLy8vJC06ZNC7vvvnu2TlWDBw/O1n/hhRe+0OMEVu25554rzJo1q8byivf3b37zm8r3a3p/ryh9Vmjbtm12fFD1ffzMM89k25955pnV1l+8eHGhW7duhVatWlVbfuyxx2brry0bdblpxSkMZ555ZrXlP/zhD7Pqm/RNO7DhW7ZsWfa+Pvjgg7Nq2c+TTlVa08q59A37H//4x+jUqVN2P0A+pG/R0zfn6dvyqo466qjstOVUIVdh8803r6yiWV1z587NTpM8+eSTs1OhgXxIp0R/EaldStu2bePTTz/93HUnT56cnamXTr1Mpz1XteWWW2btF4ANY3+QPgekyvt0jFDVFltskV1WPU7Yb7/9omHDhtXWS2fsfvvb385+T2f4VCgvL4+FCxdm7RdWPKu3ttsG1r499tgjWrVqVWN5+lxQ9T1bWlqavb9XlD4rpOXpjL70U6Gi1UnFe7lCatGWzuZd2Xs75ZFp21Sx+0Vs1MFtOuUh7TRXLEVOO+lUEp2uBzZ8qf3BG2+8EVddddXnrptOlUw787QfSD1pUo+r1XHbbbdlO93Ur2bFAzig/qRTnSr6SlaV/v+fAt133303Pv744zrf/rnnnpt9OZR6YwEbtrQvSB/EXnrppawXfjq18etf//rnbpe+AEofuk444YT1Mk5g3enfv3+89tprlW0Up0yZkrVI+NnPfpYFNqnNwedJ7RMqQp4K6Zhj3333jQcffDA7Zfrtt9+OSZMmZf0vr7nmmuy06xV7ZAPrx/u1vGdXtW4KZFu3bl25LGWK6e9LL700ywXee++9LH9InxOef/75bI6c2qTcIf2k/cNBBx200v65Rd3jNvW7S+l3bd+Cp2/HU3+KJUuWZC8KsGGaOHFi1jcq9bdNExGkA6TapB1t6meVwtr0Lfubb76Z9bL6xje+kfXCSYHsqvz+97/PgqEf/OAH6+iRAHWRqt/S+zn1lUxfylZIf1dU0qWDqxV7W6+O1Acr9cpN/Str+/Ye2HCkSUXSRCUV0oeodFzw61//epXbpcA2BbepQreiYgfYcI0YMSLrTZkuq77/U5/K3/72t59boJEyhuuvvz6r8t1nn31q9LxOnynShIjpJ0mfH376059mE5QB69+yZcuyL2ZSlW3qT70qqRd1msw49b+tWpWf8oN77rkn+wL3O9/5TuXyNEnZHXfcEQMGDKh2O6nyPs23lXppp2rc9IVxyh769OmT3UdtvfSLNrhNO+SVnbpU8SKkdQS3sOFKMzmnA6f//M//XOV6K7ZMSVIImyYTSTvVdMpT+lBWmxQKPf3009nss6lxOZAf6b199913ZwdR6YAovadfffXVbHmakCCdupj+X7+m0napBUv6dlxYAxu+FNQ+8sgjWauk1PogBSwpzE37h1Wdvpy2SV/+HH/88Ss9TgA2HOnYIM0enyYcS5MNphaKDz30UFbIkULbFSccqyrtL9J2ad+RQpx0W1Wl7CF9VjjmmGOyiYySFOr8/Oc/z/KHFOAC69eZZ56ZTQyYJg7cbrvtVrreW2+9lQW2qcjz8ssvr3F9OgZInzPSxGepGGzmzJnZRGgpDB47dmz2maHCL3/5y2rbpmA3rZeKTFL7tXRfa2KjDm7TTrhqX4qqFi1aVLkOsGFKfarTB6o0c/yKB06rI/W2S8FvOrUhVeD369dvpdW2iVMkIX/SN9ep//Tpp5+eVdAn6YNXer+maty77rorWrZsuca3W3GaYwqFgQ1f2i9UrXBJ+4j9998/Oy36n//850qPIxwDwMYjVdCnuSrSFzh/+9vfKtsspQKO9Lkg/b8/fVlbWzVcyg9S+PKPf/wjbrjhhuz4Y8VQN4U5u+++e3ZcUiH14E8/6ezAdD+rCo6Ateu///u/s3aK6Qyb1NZgVWfxpiKttE9IrRSrnqGTvPzyy9n7O7VoTPlBhUGDBmVhbir2eOedd1ZZsZ9apaRCk9Q+ZcKECdGjR4/VfhwbdY/b1Dg49bJK/e9W9MEHH2SnTaq2hQ1Tel+nKtvUmy6dipAClvSTqmiS2bNnZ3/PmjVrlbeT2iskK+uBmQ7s/vCHP2QHc+kbdiB/jjzyyKwf1QsvvJB9kZNOY7zuuuuyZem0qO7du6/R7U2bNi3raXvsscdmkwpU7F/SsUPyySefZH+nSQuBDVP6cDV48OBsopK036hNeq+nKpr0oSxNTAZs2NIZdE899VQMHDiwRm/8dCyRPPnkkysNbdMkhb/73e+yfrUruv3227MquorbWfG2U2ic7h9YP4YPH55Vu6c2KOlzwcqkVot9+/bNKulTUdjOO+9cY50U2Kb9wIrv71QImgpHUgaxspaNa5I9FGVwm2Z/TjvI1KOiqvSEp953acY5YMOUZm2dMWNG3H///dm3VxU/qXqmoho3/Z0Orlal4jSFlTUqv/fee+PDDz/MDtDMGg35DmHS6UepAqZ9+/Yxffr0LMhNE42s6dk16T2fjhVSr7uq+5eKD2rp9Kf09+pObgjk91giSac71iZ9cZvmw0htEoANX8UXsKnnZW3FGlUvVwxtH3744ay3bQqB1tZtA+sutL3ggguyIoyUB6z4RU2FFLam/CAVfaXQdrfddlun7+/Pyx6KslVCOs0h9bGoaAJcIfWtSacypG/ZgQ1T6keXZnRcUQpzTznllOw0qPRBa5dddsl2oqkybsXJhdIssmnioVRNm059WNUpkj60wYYjfWmbWiekg6u69JNL/elq27+k3rnpQDD1rkt98fbaa6+1NGJgXUmTFKZjhhXPskvHBen/8Q0aNMhmi65Nuj5tl3reARu+HXbYIbtMPa7THBdVW6Sk05crir+qnuGXzrhLoW2q2FtVy5SK205tFKpOXlSxbMXbBtaNCy+8MAtt0/+7U+/q9P/52qQq2VRpm87QTaFtmkhsVe/vtB9I+4n/+q//qlyetk1n5qTJyyrO8EvHF6mgpOrkZkkqKEmfL7bffvvYZptt1ugxbdTBbSpxHjp0aNbT4ogjjshOqX799dfjyiuvzCpwPm9GOSC/0oFW6hO1oopTFNLOsOL6tENNQUz6tjztKNOONU04lr59S6dE3HLLLdmkJStKp1s/+OCD2Qe62k6ZAOpfeg+n92j6YJXe5+kb8/Sefv7557N2B+mArOoB2o033lgZwlZU1aeWCkk6wOvSpUv2JU9t+5fUYilJ+4PargfWn/RermiPlL60TZWx6ZTIJL2PK8LWdNrzSSedlJ0anT5UpRmgUy+7tH16759//vnZ+isaP358tp9IAUz6gndl/vWvf2WTFCWpZ2bF2CpOiT7ttNNqfHEM1M/+oGfPntm+IE0Yls6+TWfSVExOlo4HUkuUww8/vPJ2U6FX+iyQet6m9dIZfVWlApH0kxx66KHZ8UiaMX7ffffN8ofkzjvvzNozpFOsU/9bYN25+uqrs/+vpwkI0/v25ptvrnZ9qnRNk4jNnTs3+4yQsoP0/+mUDaSfqtJ6FZWxaYKzdBbOOeeck/W73XvvvbOzdVJRaGqxlu63or9tqqpNkxOm7CGdoZe+PH7ppZcqJ0BMlftrrLCRW7p0aeGyyy4r9OjRo9CoUaPCFltsURg2bFhh7ty59T00YB2YOHFiIe3ahg4dWrls0aJFheOPP76w0047FVq3bl0oLS0tdOjQoTBw4MDC+PHjV3pbF110UXZb119//XoaPbCmFi9eXDj66KMLXbt2LTRu3LjQpk2bQr9+/QoPPvhgjXUff/zx7D29sp90/apUbP+rX/1qHT4iYHXst99+K30vp+sqvP3229kxwPbbb19o2bJldgyw+eabFw499NDCfffdt9Lb/+EPf5jd1sMPP7zKcYwaNWqV+5V0XALkY39QcdxwySWXFHbZZZdCkyZNsoxg2223LZx77rmFefPmVVu3S5cuq3x/n3/++dXWnzNnTnY72223XXa76bgkff5I91deXr5engsoZscee+wq37MV+4OKzGBNPhek44ljjjmmsOWWW2bHEi1atCj06dOncMcdd1Rbb9q0aYXvfe972X4grZPW7dy5c7bt66+/XqfHVZL+80USbQAAAAAA1q6NenIyAAAAAIANkeAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgCAjc6kSZOipKQkhg8fvlHfZ138+Mc/jm7dusWSJUs+d90nnngie0yjR49erdseO3ZsNGrUKN566621MFIAgOImuAUA+ALefffdOPHEE+NLX/pSNG3aNNq0aRPbb799HHvssfH444+v0/tOAeHdd9+9Tu+DmuFset5ffPHF2BBNnDgxRowYEf/zP/+TBax1kR57eg7Sc7Giww8/PHbeeecsHAYA4Isp/YLbAwAUrX/84x+x3377RVlZWRxzzDGx4447xsKFC7Nqw4cffjhatGgRffv2XWf3f8EFF2QB8YABA9bZfVBdCivT8961a9fYddddq13XpUuX7PUvLc3vIfYvf/nLaNmyZXzve9+r822k4DY9B/vvv3/2PKzojDPOyP5dvvrqq9l7AgCAusnvUSUAQM6l8GrBggVZkNWzZ88a10+fPr1exkX9SC0FmjRpEnk1Z86cuOmmm+L444/PvmxYV4444og4+eST47rrrovf/OY36+x+AAA2dlolAADUUaqsbdu2ba2hbdKhQ4fsMvUS3WyzzWLvvfeudb1f/epXWej317/+Nft70aJF2ano2223XdZ+oXXr1tnp52effXa1XqrJDTfckP1e8VPVo48+Gv369cu2T4HiLrvskoVpK0pVk6l68qWXXooDDzwwmjdvHu3bt48f/ehHsXTp0mw8Z511Vmy55ZbZ7ey7777x+uuvr/bzlALs008/Pbbeeuto3LhxdtsHHXRQPPLII5Wn16fHmYLFFT333HPZ47rwwgurLb/jjjuyMafHlrZNz1W6j9Xp2/qnP/0p9tlnn6wiOm37la98JW6//fbP3S71ea2ooB4yZEjlc57GsbIet1WX3XrrrVmV7iabbBLdu3ePUaNGZeu899578e1vfzs23XTTbEypGnbu3Lk17n/atGlZILrVVltlbQ622GKLrE3HRx99FKvjgQceiPnz58fXv/71lfan3W233bLXuHPnzvHf//3fUV5eXm2d9DjSY0/Sc1HxHBx33HGV66R/P3369Fmt5xQAgJVTcQsAUEfbbLNNvPnmm3HnnXdmVYYrk0K2dOr45Zdfnq2fQsaqRo4cGT169MgC0WTo0KHZstR+4T//8z+z8DSFxI899lh2fQqBb7zxxvj+97+fBWQpvFvR9ddfH//xH/8Re+65Z/z0pz+NZs2aZUFpCv7eeeedLCyu6v3338/C1KOOOioLEVOrh1//+tfZaf/plPfUAuCcc86Jjz/+OC677LKsPUMKbxs0WHUdQAouU2D94YcfZo9njz32yMLDcePGZcFyus8f/vCHcc8998Qtt9wSJ510UrXtf//732f38YMf/KByWXo8v/jFL2KHHXaIYcOGRceOHbPHlMLcFPCuqnfreeedFxdddFEcfPDB8bOf/Sy77bvuuiuOPPLIuOqqq7LnfmXS6/OTn/wku+/0nKfnPtl8883j89x3331ZaH7KKadkAW16XOkxpbGm2zzggAOy201BdXrtU3j6u9/9rnL7FO7utddeWTCdKmbTv7233347rr322qyXcmrb0apVq1WO4cknn8wue/XqVeO69BwMHDgwC/FT/9v0uqdg+f7776+2Xvp3ngLk9O8rjTv1c07SeKpKY33ooYfijTfeyPo/AwBQBwUAAOrkmWeeKZSVlRXSIdW2225bGDJkSOGaa64pvPbaazXWffPNN7P1zj777GrLn3766Wz5JZdcUrmsTZs2hUMOOeRz7z9td+yxx9ZYPnXq1ELjxo0LgwYNqnHd6aefXmjQoEHhnXfeqVzWpUuX7LZuvfXWauvuvvvuhZKSksI3v/nNwvLlyyuXjxgxIlv/wQcf/NwxpsexsnWXLVuWXS5durTQuXPnQq9evapdP3/+/ELLli2rPRfjx4/Pbq9v376FhQsXVls/jbFinBMnTszWO//88yuvf/7557Nl5557bo2xHH744YUWLVoU5syZs8rH8/jjj2e3MWrUqBrX1XafFcuaNm1amDRpUuXyjz76KHuN0vN7+eWXV7udb33rW9m/q7lz51YuS6/BZpttVpgyZUq1dZ977rlCw4YNq93nyuy7777Zv60VVTz/bdu2LcyYMaNy+axZswpbbbVVjcebfk/L0nOxMjfeeGO2zu23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", "text/plain": [ "
" ] @@ -89,6 +94,7 @@ }, { "cell_type": "markdown", + "id": "414d400c-734d-4298-aec0-dcf85fd0c68f", "metadata": {}, "source": [ "### Draw with a stylesheet suited for program debugging" @@ -97,16 +103,17 @@ { "cell_type": "code", "execution_count": null, + "id": "04f81ff4-2519-4d9e-8374-b0c15f2e6018", "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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jCtUqJA7+uijM207c+ZM16dPH9esWTPb59V+zpw5UdtOmzbNde3a1eZXsmRJV65cOde0aVP35JNPuj179oS0/f33391TTz3lOnbsaMeR1NRUV69ePXfDDTe4jRs3xn2dAURavXq1+9e//uVOPfVUV7FiRZeWluaaNGniHn744ZDvdY2x+tprr7kePXq42rVr2/5do0YN29/nz5+f6fx/++03d+edd9prdPzQe7Rr187NnTs3pN3VV19tx5Zoj0mTJuXpNgDg3KpVq9zll1/u6tev79LT020f17n+7bff7rZs2RLS9rHHHnNt27Z1VapUsdGf9VP79ZQpU6LO+5dffrHzCH3XFytWzI4d/fr1czt27Ihom9lxwH/o2ATg0Pvrr78C1w0333xzyHODBg3KdJ8dMWJEzMea4Necf/75dl1RqlQp16pVK/fJJ5/k6foC+J/M9u/SpUu7zGIC7du3t31W+3jdunUjjhu+TZs22fW/zg10TlG5cmXXuXNnt2LFijyLGxR1BVz//v3dyJEj3QUXXGDB2pUrV9rfixcvdrNmzXKFCxf4uDVw2Lv33ntd+fLlLaAa7aIp2Ouvv+4mTJjgGjZsaCdY33zzTaZtly5d6ooUKeKuvfZau4jLyMiw4IyOGzp4f/TRR3aAFwV6dAw588wz7SB+xBFHuGXLlrkxY8a4iRMnui+++MIdf/zxcV93AP/z0ksvuWeffdaCr7qISklJcbNnz3b333+/7YdfffWVnRjt3bvXXXnllRbQVeC2Vq1adnE1evRod9ppp7lXX33VXXHFFSHz3rBhgwV2/vjjDzsm6IRt586d7ttvv3U//fRT1OUZP358xLRTTjklz9YfwP8umrRP6/y+WrVqrmjRovad/vzzz7s333zTvvsrVapkbb/++mu7OXv22Wfbd7duzrz99tvuwgsvdIMHD3YPPPBAYL5bt251zZs3d5s3b3a9e/e2cwl9148aNcp99tln7vPPP7cLuqyOAX5QaM2aNa5Lly6HYGsACKcbvNu2bcuyjRK7dEwIdtJJJ8V8rBHt96effrq1+7//+z8L9L7wwgvurLPOch9++KEFhgDkvVatWlmQNJiuG8I9+OCD9p2tfVS/6zv+xx9/tPP/cIohah9W0sg111xjgVudUyxcuDDkeBP3uIFXgC1btswrVKiQd+GFF4ZMHzlypKdVf/311/Nt2QDk3Jo1awK/N2jQwKtZs2ambTdt2uTt2bPHfh8+fLjt67Nnz87V+9100032uvnz5wemrVu3zvvhhx8i2s6cOdPaduvWLVfvASD3FixY4O3YsSNi+n333Wf74dNPP21///PPP96cOXMi2v38889ehQoVvEqVKnn79+8Pea5ly5ZetWrVvM2bN2e7HD179rT3A5BYJk6caPvmsGHDsmynY0SjRo280qVLe/v27QtM79evn71+woQJIe31t6YPGTIk22XYuHGjV7hwYe/kk08+iDUBEKtFixZ5RYoU8R577DHbb/v27Rvy/MCBA226zu3jfay5+OKLbf9fvHhxYNru3bu9GjVqeHXr1vUOHDgQ83sCyBntmzpXz45/HT948OBs22ZkZHi1a9f2mjRp4u3cuTPLtvGOGxToNNM33njDukjedtttIdOvv/56i6Cr6ySAxKfuTTl11FFHWVeFg1GzZs1A1wafsnSOPfbYiLa626YsYN09A5C3Tj75ZMtaCde9e3f76e+HynBp06ZNRLsjjzzSpiubTg+fMujmzZtnWTHKuv/nn3+sa2V2dI6xa9cuK8UEIP9F+/6ORscInS+orIr2d58y95Wtrwz98GOMSqaMGzcu22VQGx0TrrvuupjXA0Bs9u/fb9f6nTp1smz67Og7fN++fXE51uh48t5771mvHfX08alLto4HKvG0YMGCXL8XgNj8/fff1oMuM4888ohlyt9zzz32t9pmdk6vDNkffvjBeuiUKVPGevXpEU284wYFOmirg6LKH4R3VdRJlw6kHDQByO7du92vv/7q1q5da10dhw0b5ipUqGBdJLOj7tN6vYJBAPKHui9KTvZDtVWdyrJlywamffDBB/ZT3ZzUnVlBG9WhU4mErG7wKoCsh9p36NAhy3q5AOJP9ef1/a39WiWNVNJAVAohnLowqvuiSqXpomv69OlW21bXBT5dgPn18IPpekL7uc4T9H5Z3chR0FbHj0svvTSu6wogeyp58N1337lnnnkm27aNGjWy73Dt8yppoPIFB3OsUXdqHUNUhimcavEL8Qfg0Jg0aZIlaqqUgQKzt9xyi123B99kUdKGrvdffPFFu5GrtrrJohu3qm8fzL9W0PVD69at7ZxAx44TTzzRzZgxI0fLFGvcoEDXtFU9KtWPiJZ1pw9FtSQUfdfFG4Dk1atXLzd58uTA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", "text/plain": [ - "
" + "
" ] }, - "execution_count": 2, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -120,6 +127,7 @@ "qc = QuantumCircuit(2)\n", "qc.h(0)\n", "qc.cx(0, 1)\n", + "qc.measure_all()\n", "\n", "backend = GenericBackendV2(5)\n", "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n", @@ -129,6 +137,7 @@ }, { "cell_type": "markdown", + "id": "5072435a-cf3a-45e8-80fc-d3a18ea4ca1c", "metadata": {}, "source": [ "You can create custom generator or layout functions and update an existing stylesheet with the custom functions. This way, you can control the most of the appearance of the output image without modifying the codebase of the scheduled circuit drawer. See the [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) API reference for more examples." @@ -136,6 +145,7 @@ }, { "cell_type": "markdown", + "id": "c35a27d7-ede5-4231-bc31-d0e301399956", "metadata": {}, "source": [ "## Qiskit Runtime support\n", @@ -145,56 +155,106 @@ }, { "cell_type": "markdown", + "id": "32eb0332-c0e5-4c28-b5ad-4ecfe96c9b0e", "metadata": {}, "source": [ "### Enable timing data retrieval\n", "\n", - "To enable timing data retrieval, set the `scheduler_timing` flag to `True` when running the primitive job:\n", + "To enable timing data retrieval, set the experimental `scheduler_timing` flag to `True` when running the primitive job." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e2693ce-3e14-40a9-bd68-cfda91fc63c2", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\fake_provider\\local_service.py:269: UserWarning: Options {'execution': {'scheduler_timing': True}} have no effect in local testing mode.\n", + " warnings.warn(f\"Options {options_copy} have no effect in local testing mode.\")\n", + "c:\\1docs\\.venv\\Lib\\site-packages\\qiskit\\providers\\fake_provider\\generic_backend_v2.py:348: RuntimeWarning: Aer not found using BasicSimulator and no noise\n", + " warnings.warn(\"Aer not found using BasicSimulator and no noise\", RuntimeWarning)\n" + ] + } + ], + "source": [ + "from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2\n", + "\n", + "service = QiskitRuntimeService()\n", + "backend = service.least_busy(\n", + " operational=True, simulator=False)\n", "\n", - "```python\n", "sampler = SamplerV2(backend)\n", "sampler.options.experimental = {\n", " \"execution\": {\n", " \"scheduler_timing\": True,\n", " },\n", "}\n", - "```" + "\n", + "sampler_job = sampler.run([isa_circuit])" ] }, { "cell_type": "markdown", + "id": "668e4ef6-823e-4479-af63-0652a838d9b6", "metadata": {}, "source": [ "### Access the circuit timing data\n", "\n", - "When requested, the circuit timing data is returned in the job result metadata, under `[\"compilation\"][\"scheduler_timing\"][\"timing\"]`. This field contains the raw timing information. To display the timing information, use the built-in visualization tool to display it, as described in the following section." + "When requested, the circuit timing data is returned in the job result metadata, under `[\"compilation\"][\"scheduler_timing\"][\"timing\"]`. This field contains the raw timing information. To display the timing information, use the built-in visualization tool to display it, as described in the following section.\n", + "\n", + "Use the following code to access the circuit timing data:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, + "id": "0edafa10-f43e-4731-aa16-85dde65beac0", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "KeyError", + "evalue": "'compilation'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[8], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m job_result \u001b[38;5;241m=\u001b[39m sampler_job\u001b[38;5;241m.\u001b[39mresult()\n\u001b[1;32m----> 2\u001b[0m circuit_schedule \u001b[38;5;241m=\u001b[39m \u001b[43mjob_result\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmetadata\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcompilation\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mscheduler_timing\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 3\u001b[0m circuit_schedule_timing \u001b[38;5;241m=\u001b[39m circuit_schedule[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtiming\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n", + "\u001b[1;31mKeyError\u001b[0m: 'compilation'" + ] + } + ], "source": [ - "job_result: SamplerPubResult = job.result()\n", + "job_result = sampler_job.result()\n", "circuit_schedule = job_result[0].metadata[\"compilation\"][\"scheduler_timing\"]\n", "circuit_schedule_timing = circuit_schedule[\"timing\"]" ] }, { "cell_type": "markdown", + "id": "ac976c0a-d0cc-4741-a38e-3fc592f156eb", "metadata": {}, "source": [ "### Visualize the timings\n", "\n", - "To visualize the timings, you first need to convert the result metadata to `fig` by using the `draw_circuit_schedule_timing` (**link to API reference when available**) method. This method returns a `plotly` figure, which you can display directly, save to a file, or both.\n", - "\n", - "```python\n", + "To visualize the timings, you first need to convert the result metadata to `fig` by using the `draw_circuit_schedule_timing` (**link to API reference when available**) method. This method returns a `plotly` figure, which you can display directly, save to a file, or both." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "691bf790-d947-45e1-98b3-119c7d99292c", + "metadata": {}, + "outputs": [], + "source": [ "from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing\n", "\n", "# Create a figure from the metadata\n", "fig = draw_circuit_schedule_timing(\n", - " circuit_schedule=circuit_timing,\n", + " circuit_schedule=circuit_schedule_timing,\n", " included_channels=None,\n", " filter_readout_channels=False,\n", " filter_barriers=False,\n", @@ -205,12 +265,12 @@ "fig.show(renderer=\"notebook\")\n", "\n", "# Save to a file\n", - "fig.write_html(\"scheduler_timing.html\")\n", - "```" + "fig.write_html(\"scheduler_timing.html\")" ] }, { "cell_type": "markdown", + "id": "33529268-f492-49af-af4a-6a9860587862", "metadata": {}, "source": [ "For more information about the `plotly` commands, see [`fig.show()`](https://plotly.com/python-api-reference/generated/plotly.io.show.html) and [`fig.write_image(\"\")`.](https://plotly.com/python-api-reference/generated/plotly.io.write_image.html)" @@ -218,6 +278,7 @@ }, { "cell_type": "markdown", + "id": "cd8a770d-498e-4aea-b454-8f669a1e2092", "metadata": {}, "source": [ "### Understand the raw timing data\n", @@ -245,6 +306,7 @@ }, { "cell_type": "markdown", + "id": "51d01d07-4959-4bef-873d-6063c92ad495", "metadata": {}, "source": [ "### Understand the generated figure\n", @@ -263,6 +325,7 @@ }, { "cell_type": "markdown", + "id": "74deef03-0b2c-42b9-9adf-4207acfb9d3a", "metadata": {}, "source": [ "### End-to-end example\n", @@ -275,20 +338,11 @@ { "cell_type": "code", "execution_count": null, + "id": "f0215f1e-e852-4c65-823c-263a55e5915d", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - ">>> Job ID: d3jcpo0dd19c738f5bt0 (QUEUED)\n", - ">>> Job: d3jcpo0dd19c738f5bt0 finished with:\n", - "PrimitiveResult([SamplerPubResult(data=DataBin(meas=BitArray()), metadata={'circuit_metadata': {}, 'compilation': {'scheduler_timing': {'timing': 'main,barrier,Qubit 2,0,0,barrier\\nmain,barrier,Qubit 3,0,0,barrier\\nmain,INIT_2,Qubit 2,10,2500,play\\nmain,INIT_2,Qubit 2,9,2500,play\\nmain,INIT_3,Qubit 3,10,2500,play\\nmain,INIT_3,Qubit 3,9,2500,play\\nmain,barrier,Qubit 2,2510,0,barrier\\nmain,barrier,Qubit 3,2510,0,barrier\\nmain,rz_2,Qubit 74,2510,0,shift_phase\\nmain,rz_2,Qubit 2,2510,0,shift_phase\\nmain,rz_2,Qubit 75,2510,0,shift_phase\\nmain,sx_2,Qubit 2,2510,256,play\\nmain,rz_2,Qubit 74,2766,0,shift_phase\\nmain,rz_2,Qubit 2,2766,0,shift_phase\\nmain,rz_2,Qubit 75,2766,0,shift_phase\\nmain,rz_3,Qubit 3,2510,0,shift_phase\\nmain,rz_3,Qubit 75,2510,0,shift_phase\\nmain,rz_3,Qubit 76,2510,0,shift_phase\\nmain,sx_3,Qubit 3,2510,256,play\\nmain,rz_3,Qubit 3,2766,0,shift_phase\\nmain,rz_3,Qubit 75,2766,0,shift_phase\\nmain,rz_3,Qubit 76,2766,0,shift_phase\\nmain,cz_3_2,Qubit 2,2766,21,play\\nmain,cz_3_2,Qubit 3,2766,21,play\\nmain,sx_2,Qubit 2,2787,256,play\\nmain,rz_2,Qubit 74,3043,0,shift_phase\\nmain,rz_2,Qubit 2,3043,0,shift_phase\\nmain,rz_2,Qubit 75,3043,0,shift_phase\\nmain,barrier,Qubit 3,3043,0,barrier\\nmain,barrier,Qubit 2,3043,0,barrier\\nmain,measure_3,Qubit 3,3043,64,play\\nmain,measure_3,Qubit 3,3107,91,play\\nmain,measure_3,AWGR0_3,3154,200,capture\\nmain,measure_3,Qubit 3,3198,64,play\\nmain,measure_3,Qubit 3,3262,64,play\\nmain,measure_3,Qubit 3,3326,64,play\\nmain,measure_3,Qubit 3,3390,64,play\\nmain,measure_3,Qubit 3,3454,64,play\\nmain,measure_2,Qubit 2,3043,64,play\\nmain,measure_2,Qubit 2,3107,91,play\\nmain,measure_2,AWGR0_2,3154,200,capture\\nmain,measure_2,Qubit 2,3198,64,play\\nmain,measure_2,Qubit 2,3262,64,play\\nmain,measure_2,Qubit 2,3326,64,play\\nmain,measure_2,Qubit 2,3390,64,play\\nmain,measure_2,Qubit 2,3454,64,play\\n'}, 'stretch_values': None}})], metadata={'execution': {'execution_spans': {'__type__': 'ExecutionSpans', '__value__': {'spans': [DoubleSliceSpan()]}}}, 'version': 2})\n" - ] - } - ], + "outputs": [], "source": [ - "from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2\n", + "from qiskit_ibm_runtime import SamplerV2\n", "from qiskit.circuit import QuantumCircuit\n", "\n", "service = QiskitRuntimeService()\n", @@ -326,6 +380,7 @@ }, { "cell_type": "markdown", + "id": "f465fb01-3cb7-41b5-b45e-2a8212e65adf", "metadata": {}, "source": [ "Next, get the circuit schedule timing:" @@ -333,20 +388,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, + "id": "964251c1-1973-49e2-a7de-79e2c4780b29", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'main,barrier,Qubit 2,0,0,barrier\\nmain,barrier,Qubit 3,0,0,barrier\\nmain,INIT_2,Qubit 2,10,2500,play\\nmain,INIT_2,Qubit 2,9,2500,play\\nmain,INIT_3,Qubit 3,10,2500,play\\nmain,INIT_3,Qubit 3,9,2500,play\\nmain,barrier,Qubit 2,2510,0,barrier\\nmain,barrier,Qubit 3,2510,0,barrier\\nmain,rz_2,Qubit 74,2510,0,shift_phase\\nmain,rz_2,Qubit 2,2510,0,shift_phase\\nmain,rz_2,Qubit 75,2510,0,shift_phase\\nmain,sx_2,Qubit 2,2510,256,play\\nmain,rz_2,Qubit 74,2766,0,shift_phase\\nmain,rz_2,Qubit 2,2766,0,shift_phase\\nmain,rz_2,Qubit 75,2766,0,shift_phase\\nmain,rz_3,Qubit 3,2510,0,shift_phase\\nmain,rz_3,Qubit 75,2510,0,shift_phase\\nmain,rz_3,Qubit 76,2510,0,shift_phase\\nmain,sx_3,Qubit 3,2510,256,play\\nmain,rz_3,Qubit 3,2766,0,shift_phase\\nmain,rz_3,Qubit 75,2766,0,shift_phase\\nmain,rz_3,Qubit 76,2766,0,shift_phase\\nmain,cz_3_2,Qubit 2,2766,21,play\\nmain,cz_3_2,Qubit 3,2766,21,play\\nmain,sx_2,Qubit 2,2787,256,play\\nmain,rz_2,Qubit 74,3043,0,shift_phase\\nmain,rz_2,Qubit 2,3043,0,shift_phase\\nmain,rz_2,Qubit 75,3043,0,shift_phase\\nmain,barrier,Qubit 3,3043,0,barrier\\nmain,barrier,Qubit 2,3043,0,barrier\\nmain,measure_3,Qubit 3,3043,64,play\\nmain,measure_3,Qubit 3,3107,91,play\\nmain,measure_3,AWGR0_3,3154,200,capture\\nmain,measure_3,Qubit 3,3198,64,play\\nmain,measure_3,Qubit 3,3262,64,play\\nmain,measure_3,Qubit 3,3326,64,play\\nmain,measure_3,Qubit 3,3390,64,play\\nmain,measure_3,Qubit 3,3454,64,play\\nmain,measure_2,Qubit 2,3043,64,play\\nmain,measure_2,Qubit 2,3107,91,play\\nmain,measure_2,AWGR0_2,3154,200,capture\\nmain,measure_2,Qubit 2,3198,64,play\\nmain,measure_2,Qubit 2,3262,64,play\\nmain,measure_2,Qubit 2,3326,64,play\\nmain,measure_2,Qubit 2,3390,64,play\\nmain,measure_2,Qubit 2,3454,64,play\\n'" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Get the circuit schedule timing\n", "result[0].metadata[\"compilation\"][\"scheduler_timing\"][\"timing\"]" @@ -354,6 +399,7 @@ }, { "cell_type": "markdown", + "id": "cf38ed39-d760-40a1-9ec2-c506134b9041", "metadata": {}, "source": [ "Finally, you can visualize and save the timing:" @@ -361,21 +407,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, + "id": "ed2a514b-47cc-4a4f-9b84-b28062eb1647", "metadata": {}, - "outputs": [ - { - "ename": "ImportError", - "evalue": "cannot import name 'draw_circuit_schedule_timing' from 'qiskit_ibm_runtime.visualization' (c:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\visualization\\__init__.py)", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[5], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mqiskit_ibm_runtime\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mvisualization\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m draw_circuit_schedule_timing\n\u001b[0;32m 3\u001b[0m circuit_schedule \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m 4\u001b[0m result[\u001b[38;5;241m0\u001b[39m]\n\u001b[0;32m 5\u001b[0m \u001b[38;5;241m.\u001b[39mmetadata[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompilation\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mscheduler_timing\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtiming\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 6\u001b[0m \u001b[38;5;241m.\u001b[39msplit(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 7\u001b[0m )\n\u001b[0;32m 8\u001b[0m fig \u001b[38;5;241m=\u001b[39m draw_circuit_schedule_timing(\n\u001b[0;32m 9\u001b[0m circuit_schedule\u001b[38;5;241m=\u001b[39mcircuit_schedule,\n\u001b[0;32m 10\u001b[0m included_channels\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 13\u001b[0m width\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1000\u001b[39m,\n\u001b[0;32m 14\u001b[0m )\n", - "\u001b[1;31mImportError\u001b[0m: cannot import name 'draw_circuit_schedule_timing' from 'qiskit_ibm_runtime.visualization' (c:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\visualization\\__init__.py)" - ] - } - ], + "outputs": [], "source": [ "from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing\n", "\n", @@ -398,6 +433,7 @@ }, { "cell_type": "markdown", + "id": "d65df859-7bf4-402d-9beb-53f20d8254d5", "metadata": {}, "source": [ "## Next steps\n", @@ -411,7 +447,7 @@ "metadata": { "description": "Visualize scheduling on a circuit by using the Qiskit timeline_drawer method.", "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -425,7 +461,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3" }, "title": "Visualize circuit timing" }, diff --git a/scripts/nb-tester/requirements.txt b/scripts/nb-tester/requirements.txt index 1593f4d73bc..8c02161d408 100644 --- a/scripts/nb-tester/requirements.txt +++ b/scripts/nb-tester/requirements.txt @@ -2,7 +2,6 @@ # stable build. qiskit[all]~=2.1.2 -# qiskit-ibm-runtime~=0.40.1 # adding this line to test Roy's code and get output. It should be removed before merging. qiskit-ibm-runtime @ git+https://github.com/RoyElkabetz/qiskit-ibm-runtime.git@re-sched-vis qiskit-ibm-transpiler[ai-local-mode]~=0.14.0 From b61595ab241abd1d832b82cecdd14fbd2bb4b455 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 9 Oct 2025 11:57:18 -0500 Subject: [PATCH 26/33] Change to least busy --- docs/guides/visualize-circuit-timing.ipynb | 32 ++-------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index b4ce45945bf..419d21c1f96 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -2,7 +2,6 @@ "cells": [ { "cell_type": "markdown", - "id": "bc87f88d-3f87-4a2a-a257-73047aef976e", "metadata": {}, "source": [ "{/* cspell:ignore mactex, backgroundcolor, lightgreen */}" @@ -10,7 +9,6 @@ }, { "cell_type": "markdown", - "id": "327d824f-5f80-4b2f-a400-80e48012049a", "metadata": {}, "source": [ "# Visualize circuit timing" @@ -18,7 +16,6 @@ }, { "cell_type": "markdown", - "id": "145b4661-4a31-4643-984c-45b1d507a10f", "metadata": { "tags": [ "version-info" @@ -39,7 +36,6 @@ }, { "cell_type": "markdown", - "id": "860ecacc-0dbc-488c-957d-f8f132521834", "metadata": {}, "source": [ "In addition to [visualizing instructions on a circuit](/docs/guides/visualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example.\n", @@ -59,7 +55,6 @@ { "cell_type": "code", "execution_count": 1, - "id": "d44427e5-4806-4edf-b3c1-f482130ddd21", "metadata": {}, "outputs": [ { @@ -94,7 +89,6 @@ }, { "cell_type": "markdown", - "id": "414d400c-734d-4298-aec0-dcf85fd0c68f", "metadata": {}, "source": [ "### Draw with a stylesheet suited for program debugging" @@ -103,7 +97,6 @@ { "cell_type": "code", "execution_count": null, - "id": "04f81ff4-2519-4d9e-8374-b0c15f2e6018", "metadata": {}, "outputs": [ { @@ -137,7 +130,6 @@ }, { "cell_type": "markdown", - "id": "5072435a-cf3a-45e8-80fc-d3a18ea4ca1c", "metadata": {}, "source": [ "You can create custom generator or layout functions and update an existing stylesheet with the custom functions. This way, you can control the most of the appearance of the output image without modifying the codebase of the scheduled circuit drawer. See the [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) API reference for more examples." @@ -145,7 +137,6 @@ }, { "cell_type": "markdown", - "id": "c35a27d7-ede5-4231-bc31-d0e301399956", "metadata": {}, "source": [ "## Qiskit Runtime support\n", @@ -155,7 +146,6 @@ }, { "cell_type": "markdown", - "id": "32eb0332-c0e5-4c28-b5ad-4ecfe96c9b0e", "metadata": {}, "source": [ "### Enable timing data retrieval\n", @@ -166,7 +156,6 @@ { "cell_type": "code", "execution_count": null, - "id": "6e2693ce-3e14-40a9-bd68-cfda91fc63c2", "metadata": {}, "outputs": [ { @@ -184,8 +173,7 @@ "from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2\n", "\n", "service = QiskitRuntimeService()\n", - "backend = service.least_busy(\n", - " operational=True, simulator=False)\n", + "backend = service.least_busy(operational=True, simulator=False)\n", "\n", "sampler = SamplerV2(backend)\n", "sampler.options.experimental = {\n", @@ -199,7 +187,6 @@ }, { "cell_type": "markdown", - "id": "668e4ef6-823e-4479-af63-0652a838d9b6", "metadata": {}, "source": [ "### Access the circuit timing data\n", @@ -212,7 +199,6 @@ { "cell_type": "code", "execution_count": 8, - "id": "0edafa10-f43e-4731-aa16-85dde65beac0", "metadata": {}, "outputs": [ { @@ -235,7 +221,6 @@ }, { "cell_type": "markdown", - "id": "ac976c0a-d0cc-4741-a38e-3fc592f156eb", "metadata": {}, "source": [ "### Visualize the timings\n", @@ -246,7 +231,6 @@ { "cell_type": "code", "execution_count": null, - "id": "691bf790-d947-45e1-98b3-119c7d99292c", "metadata": {}, "outputs": [], "source": [ @@ -270,7 +254,6 @@ }, { "cell_type": "markdown", - "id": "33529268-f492-49af-af4a-6a9860587862", "metadata": {}, "source": [ "For more information about the `plotly` commands, see [`fig.show()`](https://plotly.com/python-api-reference/generated/plotly.io.show.html) and [`fig.write_image(\"\")`.](https://plotly.com/python-api-reference/generated/plotly.io.write_image.html)" @@ -278,7 +261,6 @@ }, { "cell_type": "markdown", - "id": "cd8a770d-498e-4aea-b454-8f669a1e2092", "metadata": {}, "source": [ "### Understand the raw timing data\n", @@ -306,7 +288,6 @@ }, { "cell_type": "markdown", - "id": "51d01d07-4959-4bef-873d-6063c92ad495", "metadata": {}, "source": [ "### Understand the generated figure\n", @@ -325,7 +306,6 @@ }, { "cell_type": "markdown", - "id": "74deef03-0b2c-42b9-9adf-4207acfb9d3a", "metadata": {}, "source": [ "### End-to-end example\n", @@ -338,7 +318,6 @@ { "cell_type": "code", "execution_count": null, - "id": "f0215f1e-e852-4c65-823c-263a55e5915d", "metadata": {}, "outputs": [], "source": [ @@ -380,7 +359,6 @@ }, { "cell_type": "markdown", - "id": "f465fb01-3cb7-41b5-b45e-2a8212e65adf", "metadata": {}, "source": [ "Next, get the circuit schedule timing:" @@ -389,7 +367,6 @@ { "cell_type": "code", "execution_count": null, - "id": "964251c1-1973-49e2-a7de-79e2c4780b29", "metadata": {}, "outputs": [], "source": [ @@ -399,7 +376,6 @@ }, { "cell_type": "markdown", - "id": "cf38ed39-d760-40a1-9ec2-c506134b9041", "metadata": {}, "source": [ "Finally, you can visualize and save the timing:" @@ -408,7 +384,6 @@ { "cell_type": "code", "execution_count": null, - "id": "ed2a514b-47cc-4a4f-9b84-b28062eb1647", "metadata": {}, "outputs": [], "source": [ @@ -433,7 +408,6 @@ }, { "cell_type": "markdown", - "id": "d65df859-7bf4-402d-9beb-53f20d8254d5", "metadata": {}, "source": [ "## Next steps\n", @@ -447,7 +421,7 @@ "metadata": { "description": "Visualize scheduling on a circuit by using the Qiskit timeline_drawer method.", "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -461,7 +435,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3" + "version": "3.12.2" }, "title": "Visualize circuit timing" }, From 1424071e1a089ef93deea4d02b5671445a29b717 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 9 Oct 2025 12:03:02 -0500 Subject: [PATCH 27/33] squeaky again --- docs/guides/visualize-circuit-timing.ipynb | 32 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 419d21c1f96..8a962feb975 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "754c0ed7-7b0d-46ae-9204-fde66eb1322f", "metadata": {}, "source": [ "{/* cspell:ignore mactex, backgroundcolor, lightgreen */}" @@ -9,6 +10,7 @@ }, { "cell_type": "markdown", + "id": "9dd35080-0ac8-4c48-9eab-14e8ddef2d84", "metadata": {}, "source": [ "# Visualize circuit timing" @@ -16,6 +18,7 @@ }, { "cell_type": "markdown", + "id": "cd2b4b4b-3e7d-434d-9dc7-5de1a9be9654", "metadata": { "tags": [ "version-info" @@ -36,6 +39,7 @@ }, { "cell_type": "markdown", + "id": "bbd24369-e5bd-47de-9e1a-15255b5858d6", "metadata": {}, "source": [ "In addition to [visualizing instructions on a circuit](/docs/guides/visualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example.\n", @@ -55,6 +59,7 @@ { "cell_type": "code", "execution_count": 1, + "id": "fa98d901-8fc3-43c1-ab21-139e23c139d7", "metadata": {}, "outputs": [ { @@ -89,6 +94,7 @@ }, { "cell_type": "markdown", + "id": "1f1e7963-6862-47c8-adcc-316a55851c57", "metadata": {}, "source": [ "### Draw with a stylesheet suited for program debugging" @@ -97,6 +103,7 @@ { "cell_type": "code", "execution_count": null, + "id": "b27878a1-899a-4b8d-addd-a3ae7257c5a4", "metadata": {}, "outputs": [ { @@ -130,6 +137,7 @@ }, { "cell_type": "markdown", + "id": "510d563b-ead4-42ae-9ae8-0f9c47461b13", "metadata": {}, "source": [ "You can create custom generator or layout functions and update an existing stylesheet with the custom functions. This way, you can control the most of the appearance of the output image without modifying the codebase of the scheduled circuit drawer. See the [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) API reference for more examples." @@ -137,6 +145,7 @@ }, { "cell_type": "markdown", + "id": "e340a1e4-4416-460c-a2a9-a572d3873bf8", "metadata": {}, "source": [ "## Qiskit Runtime support\n", @@ -146,6 +155,7 @@ }, { "cell_type": "markdown", + "id": "9928291a-8a3f-443b-b47d-4d5c87ee724b", "metadata": {}, "source": [ "### Enable timing data retrieval\n", @@ -156,6 +166,7 @@ { "cell_type": "code", "execution_count": null, + "id": "1bf38969-6fbd-4980-95b7-7626e76c8ba7", "metadata": {}, "outputs": [ { @@ -175,6 +186,9 @@ "service = QiskitRuntimeService()\n", "backend = service.least_busy(operational=True, simulator=False)\n", "\n", + "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n", + "isa_circuit = pm.run(qc)\n", + "\n", "sampler = SamplerV2(backend)\n", "sampler.options.experimental = {\n", " \"execution\": {\n", @@ -187,6 +201,7 @@ }, { "cell_type": "markdown", + "id": "c2e38cc2-c36d-4422-8351-5f22175442c0", "metadata": {}, "source": [ "### Access the circuit timing data\n", @@ -199,6 +214,7 @@ { "cell_type": "code", "execution_count": 8, + "id": "0e641e1e-5527-46cf-9fcd-d983098278f6", "metadata": {}, "outputs": [ { @@ -221,6 +237,7 @@ }, { "cell_type": "markdown", + "id": "2e494c0b-768a-49f1-bbe1-bb984ff2951c", "metadata": {}, "source": [ "### Visualize the timings\n", @@ -231,6 +248,7 @@ { "cell_type": "code", "execution_count": null, + "id": "67bcc7ef-0ed5-49ef-a2c0-5e365298c8da", "metadata": {}, "outputs": [], "source": [ @@ -254,6 +272,7 @@ }, { "cell_type": "markdown", + "id": "c5979bec-17ec-49e8-805c-cf6ea17d8eb6", "metadata": {}, "source": [ "For more information about the `plotly` commands, see [`fig.show()`](https://plotly.com/python-api-reference/generated/plotly.io.show.html) and [`fig.write_image(\"\")`.](https://plotly.com/python-api-reference/generated/plotly.io.write_image.html)" @@ -261,6 +280,7 @@ }, { "cell_type": "markdown", + "id": "8d94c816-aaab-45d9-a2cb-f8dafb532d66", "metadata": {}, "source": [ "### Understand the raw timing data\n", @@ -288,6 +308,7 @@ }, { "cell_type": "markdown", + "id": "0ce5c709-1b73-40f9-8faa-650523fcc689", "metadata": {}, "source": [ "### Understand the generated figure\n", @@ -306,6 +327,7 @@ }, { "cell_type": "markdown", + "id": "720329ad-143c-4332-b1c3-ff09734b4ac3", "metadata": {}, "source": [ "### End-to-end example\n", @@ -318,6 +340,7 @@ { "cell_type": "code", "execution_count": null, + "id": "716ead7d-df51-441a-9b3f-be0c2c43c25d", "metadata": {}, "outputs": [], "source": [ @@ -359,6 +382,7 @@ }, { "cell_type": "markdown", + "id": "1d3c12ac-6ad8-4841-bbdc-915c36274389", "metadata": {}, "source": [ "Next, get the circuit schedule timing:" @@ -367,6 +391,7 @@ { "cell_type": "code", "execution_count": null, + "id": "c1b825a5-f8d5-45ce-ac11-cedcd1f73241", "metadata": {}, "outputs": [], "source": [ @@ -376,6 +401,7 @@ }, { "cell_type": "markdown", + "id": "bb3fe68b-3fe3-4478-b452-e4c22db71915", "metadata": {}, "source": [ "Finally, you can visualize and save the timing:" @@ -384,6 +410,7 @@ { "cell_type": "code", "execution_count": null, + "id": "d6961531-4ef5-4320-959c-39e35b6f6158", "metadata": {}, "outputs": [], "source": [ @@ -408,6 +435,7 @@ }, { "cell_type": "markdown", + "id": "db40cea1-9fa5-4be2-b4a1-89f7dd2880bb", "metadata": {}, "source": [ "## Next steps\n", @@ -421,7 +449,7 @@ "metadata": { "description": "Visualize scheduling on a circuit by using the Qiskit timeline_drawer method.", "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -435,7 +463,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3" }, "title": "Visualize circuit timing" }, From 6c16da3869e9bdad0edacdecaae30126e07da311 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 9 Oct 2025 13:37:09 -0500 Subject: [PATCH 28/33] WE DON'T WANT V40 --- scripts/nb-tester/requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/nb-tester/requirements.txt b/scripts/nb-tester/requirements.txt index 8c02161d408..72f77928d0a 100644 --- a/scripts/nb-tester/requirements.txt +++ b/scripts/nb-tester/requirements.txt @@ -5,7 +5,6 @@ qiskit[all]~=2.1.2 # adding this line to test Roy's code and get output. It should be removed before merging. qiskit-ibm-runtime @ git+https://github.com/RoyElkabetz/qiskit-ibm-runtime.git@re-sched-vis qiskit-ibm-transpiler[ai-local-mode]~=0.14.0 -qiskit-ibm-runtime~=0.40.1 qiskit-ibm-transpiler[ai-local-mode]~=0.14.2 qiskit-aer~=0.17 qiskit-serverless~=0.26.0 From 5426140f0c73e8e57f725622f4481d96e982a7ac Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Thu, 9 Oct 2025 16:31:55 -0500 Subject: [PATCH 29/33] Add plotly and fix up runtime-options-overview --- docs/guides/runtime-options-overview.mdx | 118 +++++++++++++-------- docs/guides/visualize-circuit-timing.ipynb | 75 +++++-------- scripts/nb-tester/requirements.txt | 1 + 3 files changed, 96 insertions(+), 98 deletions(-) diff --git a/docs/guides/runtime-options-overview.mdx b/docs/guides/runtime-options-overview.mdx index e8c93c11bd9..ce8d3cd8186 100644 --- a/docs/guides/runtime-options-overview.mdx +++ b/docs/guides/runtime-options-overview.mdx @@ -66,6 +66,7 @@ The following table documents options from the latest version of `qiskit-ibm-run The total number of shots to use per circuit per configuration. **Choices**: Integer >= 0 + **Default**: None [`default_shots` API documentation](/docs/api/qiskit-ibm-runtime/options-estimator-options#default_shots) @@ -79,6 +80,7 @@ The total number of shots to use per circuit per configuration. The default precision to use for any PUB or `run()` call that does not specify one. **Choices**: Float > 0 + **Default**: 0.015625 (1 / sqrt(4096)) [`default_precision` API documentation](/docs/api/qiskit-ibm-runtime/options-estimator-options#default_precision) @@ -98,6 +100,7 @@ Control dynamical decoupling error mitigation settings. **Choices**: `True`, `False` + **Default**: `False` @@ -107,6 +110,7 @@ Control dynamical decoupling error mitigation settings. **Choices**: `middle`, `edges` + **Default**: `middle` @@ -154,6 +158,7 @@ Default: `False` Callable function that receives the `Job ID` and `Job result`. **Choices**: None + **Default**: None @@ -165,6 +170,7 @@ Callable function that receives the `Job ID` and `Job result`. List of tags. **Choices**: None + **Default**: None @@ -174,6 +180,7 @@ List of tags. **Choices**: DEBUG, INFO, WARNING, ERROR, CRITICAL + **Default**: WARNING @@ -183,6 +190,7 @@ List of tags. **Choices**: `True`, `False` + **Default**: `False` @@ -202,6 +210,7 @@ List of tags. Whether to reset the qubits to the ground state for each shot. **Choices**: `True`, `False` + **Default**: `True` @@ -212,6 +221,7 @@ Whether to reset the qubits to the ground state for each shot. The delay between a measurement and the subsequent quantum circuit. **Choices**: Value in the range supplied by `backend.rep_delay_range` + **Default**: Given by `backend.default_rep_delay` @@ -223,6 +233,7 @@ The delay between a measurement and the subsequent quantum circuit. ### `max_execution_time` **Choices**: Integer number of seconds in the range [1, 10800] + **Default**: 10800 (3 hours) [`max_execution_time` API documentation](/docs/api/qiskit-ibm-runtime/options-estimator-options#max_execution_time) @@ -251,6 +262,7 @@ Options for learning layer noise. **Choices**: list[int] of 2-10 values in the range [0, 200] + **Default**: `(0, 1, 2, 4, 16, 32)` @@ -261,6 +273,7 @@ Options for learning layer noise. **Choices**: None, Integer >= 1 + **Default**: `4` @@ -271,6 +284,7 @@ Options for learning layer noise. **Choices**: Integer >= 1 + **Default**: `32` @@ -281,6 +295,7 @@ Options for learning layer noise. **Choices**: Integer >= 1 + **Default**: `128` @@ -291,6 +306,7 @@ Options for learning layer noise. **Choices**: `NoiseLearnerResult`, `Sequence[LayerError]` + **Default**: None @@ -301,6 +317,7 @@ Options for learning layer noise. **Choices**: `True`, `False` + **Default**: `True` @@ -321,6 +338,7 @@ Options for measurement noise learning. **Choices**: Integer >= 1 + **Default**: `32` @@ -331,116 +349,112 @@ Options for measurement noise learning. **Choices**: Integer, `auto` + **Default**: `auto`
-#### `resilience.measure_noise_learning.pec_mitigation` +#### `resilience.pec_mitigation` **Choices**: `True`, `False` + **Default**: `False`
-#### `resilience.measure_noise_learning.pec` +#### `resilience.pec` Probabilistic error cancellation mitigation options. -[`resilience.measure_noise_learning.pec` API documentation](/docs/api/qiskit-ibm-runtime/options-pec-options) +[`resilience.pec` API documentation](/docs/api/qiskit-ibm-runtime/options-pec-options)
-##### `resilience.measure_noise_learning.pec.max_overhead` +##### `resilience.pec.max_overhead` **Choices**: `None`, Integer >= 1 -**Default**: `100` -
-
- -##### `resilience.measure_noise_learning.pec.max_overhead` - - -**Choices**: `None`, Integer >= 1 **Default**: `100`
-##### `resilience.measure_noise_learning.pec.noise_gain` +##### `resilience.pec.noise_gain` **Choices**: `auto`, float in the range [0, 1] + **Default**: `auto`
-#### `resilience.measure_noise_learning.zne_mitigation` +#### `resilience.zne_mitigation` **Choices**: `True`, `False` + **Default**: `False`
-#### `resilience.measure_noise_learning.zne` +#### `resilience.zne` -**Choices**: `True`, `False` -**Default**: `False` - -[`resilience.measure_noise_learning.zne` API documentation](/docs/api/qiskit-ibm-runtime/options-zne-options) +[`resilience.zne` API documentation](/docs/api/qiskit-ibm-runtime/options-zne-options)
-##### `resilience.measure_noise_learning.zne.amplifier` +##### `resilience.zne.amplifier` **Choices**: `gate_folding`, `gate_folding_front`, `gate_folding_back`, `pea` -**Default**: `gate_folding` + `gate_folding`
-##### `resilience.measure_noise_learning.zne.extrapolated_noise_factors` +##### `resilience.zne.extrapolated_noise_factors` **Choices**: List of floats + **Default**: `[0, *noise_factors]`
-##### `resilience.measure_noise_learning.zne.extrapolator` +##### `resilience.zne.extrapolator` **Choices**: One or more of: `exponential`, `linear`, `double_exponential`, `polynomial_degree_(1 <= k <= 7)`, `fallback` + **Default**: `(exponential, linear)`
-##### `resilience.measure_noise_learning.zne.noise_factors` +##### `resilience.zne.noise_factors` **Choices**: List of floats; each float >= 1 + **Default**: `(1, 1.5, 2)` for `PEA`, and `(1, 3, 5)` otherwise
@@ -456,6 +470,7 @@ Probabilistic error cancellation mitigation options. How much resilience to build against errors. Higher levels generate more accurate results at the expense of longer processing times. **Choices**: `0`, `1`, `2` + **Default**: `1` [`resilience_level` API documentation](/docs/api/qiskit-ibm-runtime/options-estimator-options#resilience_level) @@ -467,6 +482,7 @@ How much resilience to build against errors. Higher levels generate more accurat **Choices**: Integer + **Default**: None [`seed_estimator`](/docs/api/qiskit-ibm-runtime/options-estimator-options#seed_estimator) @@ -485,6 +501,7 @@ Options to pass when simulating a backend **Choices**: List of basis gate names to unroll to + **Default**: The set of all basis gates supported by [Qiskit Aer simulator](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.AerSimulator.html) @@ -495,7 +512,8 @@ Options to pass when simulating a backend **Choices**: List of directed two-qubit interactions -**Default**: Full connectivity + +**Default**: None, which implies no connectivity constraints (full connectivity). @@ -505,6 +523,7 @@ Options to pass when simulating a backend **Choices**: [Qiskit Aer NoiseModel](/docs/guides/build-noise-models), or its representation + **Default**: None @@ -515,6 +534,7 @@ Options to pass when simulating a backend **Choices**: Integer + **Default**: None @@ -536,6 +556,7 @@ Twirling options **Choices**: True, False + **Default**: False @@ -546,6 +567,7 @@ Twirling options **Choices**: True, False + **Default**: True @@ -556,6 +578,7 @@ Twirling options **Choices**: `auto`, Integer >= 1 + **Default**: `auto` @@ -566,6 +589,7 @@ Twirling options **Choices**: `auto`, Integer >= 1 + **Default**: `auto` @@ -576,6 +600,7 @@ Twirling options **Choices**: `active`, `active-circuit`, `active-accum`, `all` + **Default**: `active-accum` @@ -589,15 +614,6 @@ Twirling options Experimental options, when available. -
- -#### `experimental.execution_path` - -**Choices**: `active`, `active-circuit`, `active-accum`, `all` -**Default**: None - - -
@@ -613,6 +629,7 @@ Experimental options, when available. The total number of shots to use per circuit per configuration. **Choices**: Integer >= 0 + **Default**: None [`default_shots` API documentation](/docs/api/qiskit-ibm-runtime/options-sampler-options#default_shots) @@ -632,6 +649,7 @@ Control dynamical decoupling error mitigation settings. **Choices**: `True`, `False` + **Default**: `False` @@ -641,6 +659,7 @@ Control dynamical decoupling error mitigation settings. **Choices**: `middle`, `edges` + **Default**: `middle` @@ -679,17 +698,6 @@ Default: `False` ### `environment` [`environment` API documentation](/docs/api/qiskit-ibm-runtime/options-sampler-options#environment) -
- -#### `environment.callback` - - -Callable function that receives the `Job ID` and `Job result`. - -**Choices**: None -**Default**: None -
-
#### `environment.job_tags` @@ -698,6 +706,7 @@ Callable function that receives the `Job ID` and `Job result`. List of tags. **Choices**: None + **Default**: None
@@ -707,6 +716,7 @@ List of tags. **Choices**: DEBUG, INFO, WARNING, ERROR, CRITICAL + **Default**: WARNING @@ -716,6 +726,7 @@ List of tags. **Choices**: `True`, `False` + **Default**: `False` @@ -734,6 +745,7 @@ List of tags. Whether to reset the qubits to the ground state for each shot. **Choices**: `True`, `False` + **Default**: `True` @@ -744,6 +756,7 @@ Whether to reset the qubits to the ground state for each shot. The delay between a measurement and the subsequent quantum circuit. **Choices**: Value in the range supplied by `backend.rep_delay_range` + **Default**: Given by `backend.default_rep_delay`
@@ -752,6 +765,7 @@ The delay between a measurement and the subsequent quantum circuit. **Choices**: `classified`, `kerneled`, `avg_kerneled` + **Default**: `classified`
@@ -763,6 +777,7 @@ The delay between a measurement and the subsequent quantum circuit. ### `max_execution_time` **Choices**: Integer number of seconds in the range [1, 10800] + **Default**: 10800 (3 hours) [`max_execution_time` API documentation](/docs/api/qiskit-ibm-runtime/options-sampler-options#max_execution_time) @@ -782,6 +797,7 @@ Options to pass when simulating a backend **Choices**: List of basis gate names to unroll to + **Default**: The set of all basis gates supported by [Qiskit Aer simulator](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.AerSimulator.html) @@ -792,7 +808,8 @@ Options to pass when simulating a backend **Choices**: List of directed two-qubit interactions -**Default**: Full connectivity + +**Default**: None, which implies no connectivity constraints (full connectivity). @@ -802,6 +819,7 @@ Options to pass when simulating a backend **Choices**: [Qiskit Aer NoiseModel](/docs/guides/build-noise-models), or its representation + **Default**: None @@ -812,6 +830,7 @@ Options to pass when simulating a backend **Choices**: Integer + **Default**: None @@ -833,6 +852,7 @@ Twirling options **Choices**: True, False + **Default**: False @@ -843,7 +863,8 @@ Twirling options **Choices**: True, False -**Default**: True + +**Default**: False @@ -853,6 +874,7 @@ Twirling options **Choices**: `auto`, Integer >= 1 + **Default**: `auto` @@ -863,6 +885,7 @@ Twirling options **Choices**: `auto`, Integer >= 1 + **Default**: `auto` @@ -873,6 +896,7 @@ Twirling options **Choices**: `active`, `active-circuit`, `active-accum`, `all` + **Default**: `active-accum` diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 8a962feb975..a67f549c40e 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -2,7 +2,6 @@ "cells": [ { "cell_type": "markdown", - "id": "754c0ed7-7b0d-46ae-9204-fde66eb1322f", "metadata": {}, "source": [ "{/* cspell:ignore mactex, backgroundcolor, lightgreen */}" @@ -10,7 +9,6 @@ }, { "cell_type": "markdown", - "id": "9dd35080-0ac8-4c48-9eab-14e8ddef2d84", "metadata": {}, "source": [ "# Visualize circuit timing" @@ -18,7 +16,6 @@ }, { "cell_type": "markdown", - "id": "cd2b4b4b-3e7d-434d-9dc7-5de1a9be9654", "metadata": { "tags": [ "version-info" @@ -39,7 +36,6 @@ }, { "cell_type": "markdown", - "id": "bbd24369-e5bd-47de-9e1a-15255b5858d6", "metadata": {}, "source": [ "In addition to [visualizing instructions on a circuit](/docs/guides/visualize-circuits) you might want to use the Qiskit [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) method, which lets you visualize a circuit's scheduling. This visualization could help you to quickly spot idling time on qubits, for example.\n", @@ -59,12 +55,11 @@ { "cell_type": "code", "execution_count": 1, - "id": "fa98d901-8fc3-43c1-ab21-139e23c139d7", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABW4AAAHWCAYAAADn4hAVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAATm1JREFUeJzt3QucVWW5P/BnYAaQO4IICgKKmFfUhDRFxRS0NEkyJUolTY/ijZOetDxHtMw07Yh5y1OAiVre8Za3vKQpZKbmHS+AKKAocr8NsP+fd/mfaYYZEEZgFuzv9/MZ98zaa+397r3Zy7V/+1nPW1IoFAoBAAAAAEBuNKjvAQAAAAAAUJ3gFgAAAAAgZwS3AAAAAAA5I7gFAAAAAMgZwS0AAAAAQM4IbgEAAAAAckZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnBHcAgAAAADkjOAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgAAAAAgZwS3AAAAAAA5I7gFAAAAAMgZwS0AAAAAQM4IbgEAAAAAckZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnBHcAgAAAADkzEYV3I4ePTpKSkoqf0pLS2PLLbeM4447Lj744IP6Hh5VeK0AAAAAYOVKYyN04YUXRrdu3WLRokUxbty4LCR8+umn45VXXokmTZrU9/CowmsFAAAAAEUS3B5yyCGxxx57ZL+fcMIJ0a5du7jkkkvinnvuie985zv1PTyq8FoBAAAAwEbeKmFl+vTpk12+88479T0UPofXCgAAAACKJLidNGlSdtmmTZv6Hgqfw2sFAAAAABtpq4TZs2fHxx9/nPVNHT9+fFxwwQXRuHHjOPTQQ+t7aKzAawUAAAAARRLcHnjggdX+7tq1a4wZMyY6depUb2Oidl4rAAAAACiS4Pbqq6+OHj16ZNWcI0eOjL/+9a9ZFSf547UCAAAAgCIJbnv37h177LFH9vuAAQNin332ie9+97vx5ptvRvPmzet7eFThtQIAAACAIpycrGHDhnHxxRfH1KlT46qrrqpcfvjhh2fBYPpp1qxZlJSUxLPPPluvYy12XisAAAAAKJLgNtl///2zys4rrrgimwQrGTt2bMybNy/7Oe644+KII47I1qF+ea0AAAAAoEiC2+Tss8+ODz/8MEaPHl1j+aRJk+KWW27JKj6pf14rAAAAAIpd0QS3qUpzm222icsuuyyWLVuWLRs+fHg8//zzcccdd0SjRo3qe4j8f14rAAAAAIpdSaFQKEQRSqHgnXfeGQ8//LBJsHLOawUAAABAsSmNInTttddmp9s/9thjgsCc81oBAAAAUIxyU3E7ffr09XZf2223XSxevLhan9RU0dmzZ8/1NgZWj9cKAAAAgPWtQ4cOUd+KMrgFAAAAAMhzcFuUrRKqKV8WDecsqu9RFK1Co9JY3qLxaq27sLwk5i8pmvn0AAAAAIpa602WRWkRR0FFHdyWzFscrW5+PhrOXVzfQylq8w7aLhbvssUq13l/Vlnc8sKmsWx5yXobFwAAAAD1Z9OmS+OYPT6JJmW5aBiw3hVxZh3R9Ol3hbY50PTJt6NkwZKVXp+aeTz4RkuhLQAAAEARmbmgNJ6ZVLyT1RdtcFsyf3E0fv3D+h4G6R/hkmXR+OVpK73+3U8axcfzy9brmAAAAACofy9+sEksXlqcxXxFG9ym0LZkeXGWWedRk1enfVZaW4uXp22y3scDAAAAQP1bsqxBTJixevMjbWyKNrhtNGFGfQ+BKhp+ujAazphfY3n5soh3Pi7ONycAAAAAEW982CSKUVEGt6mfatm0OfU9DFbQ6N2Payyb/GnjKF9elP9MAQAAAIiISSkfWhZFpygTsbJJM+t7CNSibOInNZa9+3GjehkLAAAAAPmwbHlJvPdp8WVExRncvvdpfQ+BWpROmxuxZGmNb1QAAAAAKG6TijAjKq3rhvfcc09cfPHF8dJLL8Umm2wS+++/f/b3zTffHBdccEGMGjUqjjvuuMidQiELbh9454U4cuyvo3x57XXWS866OfLsk4Vz45DbLo5v9egd5+45IDYGJem1+WB2lHdrm/09b3GDmLmgNCa+cH/cd8W3Yvmy8lq3O2OMSeYAgA3brA/fiefvuzTee+WRmD9rajRs2Cjadt45tv3Kd2LnA06M0kabxIPXfC/efu72GPyLf0Wbjj2qbf/cPb+MZ249Nw770b2x9W6H1tvjAABYVybPVHG7Wq677ro4/PDDY/z48dGrV6846KCD4vnnn4/evXvHO++8E3nWYM6iaDh3cTw08cWVhrYbgtveGBcDt/tKFtoee//V0eJ/j40JM6fVWO/S8fdEo8u+G/e/88/YEJRNmVX5e0UJ/KR//XmloS0AwIYufUl907k7x1vjb42tdzss9j/mN/HVoy6OFm23iqdvOTuevPGMbL19B/86Shs1jcdG/Ue17Wd/NDH+fveF0b3XQKEtALDR+mheaSwqL4lissYVt5MnT45hw4ZFWVlZ3HvvvdG/f/9seXl5eQwZMiTGjBkTefHyyy/HNttsE02bNq1cVvrB7FrX/cme34pTd//ssWwI/vjG3+IP3zg1+/1X+38vHpz4Ypz6yO/j4aPOq1xn4qyP4qJn74xvbds7vrHN7pFnL3w4KXq06RCNqrw+788uq3Xd3gP+O3btf/p6HB0AwLqRQtc/X310tGjXJQae+1g0a9Ox8rqeBw2NWdPfjokv3p/93bRV+9jn6EviL78/MV776w2xw77HZssfH31KNGhYFvt9f0S9PQ4AgHWvJD6YXRbbtFsSxWKNK25HjhwZixYtikGDBlWGtkkKckeMGFEtJK3qxRdfjD59+mRtFbp16xZXXXVVrEtTpkyJo446Ko4++uiYP3/+v8e5QnDbqcWm2eUvx98d46a9Fe2atsx+8uydWR9GWYPS2Kplu+zv9s1axS/2HRRPTHkt/vDKXyvXO/3RUVHWoGH8+oBjIs8mz54RX7/9F/GNO34Zi6Z8FLH0s0ro92dVL4Fvvmmn7PK5sRfFtLeejU1atMt+AAA2VM/ff2mUL5oXB57w+2qhbYXWHbrHbgd/VnGb7Lj/CdGxx97x9C1nxcK5n8Sbz/4xJv/rwdjryJ9H8023XM+jBwBYv96fXVztEtY4uH3qqaeyyxSIrqht27bRr1+/GstnzJiRtVNo2bJl3HfffXHKKafEmWeeGTfeeGOsKxdeeGF8+umnWVDcuPG/mxeXTqse3B630/5x8q4HxfJCIc54dHQsWpr/1P7m156OQdvvXW3ZD3buG1/dskec8+RNWf/bP73xTDw06aW4YJ/vxJb/P5zOqx9nY54XTUsbxyYlpVH60bxYvLQkZsyrXhC+437Hxy4HDY1CYXk8fsPQWLpkUb2NGQBgbZj4z3ujVfutY4seX12t9UtKSuJrP/htLF4wOx4fdXL8dcywaN9tj+h54NB1PlYAgPr2wUrOzt5YrXFwO3Xq1OyyS5cutV7ftWvXWnvipoPM2267Lb72ta/F2WefHSeeeGL87Gc/i3Xh448/jgceeCAaNGgQl156aZSWfhYAlixeGg1n/Lv6tsIl+w+Ozi3axpS5n8QD774YebK0lj68d034e9bftqr0/F590Akxe/GCOPWRkXH242Piy5tvHSfvdlDk2UfzZ8fdbz0XDUpK4qqDfhClDRpG6dTZMW1OWRSiZt+SPoMui+ZtO8e8T6ZUnjYIALAhWrxgTsz79INsErI10bbTjrH718+Kt/5+WyycOyMLcksa1GnqCgCADcq02WWxfHkUjfVyhPfQQw/F17/+9WptFI488sh466234t13313r9zdu3LhYvnx57LrrrtUC5obT59QSBUY0KW0U395uz+z3v055LfLg5Rnvxffvuyq2uvaUmFelsnT81Leix6Ydo1Xjmi0pdmzXKYb1+kbcMWF8zFgwJ67pd3w0KMn3QfxT77+RVTvv0WGb2Lr15tmy0mlzYupKvkEpbdQkenzlO9nvH7z+xHodKwDA2rRk4ZzsslGTFmu8bUW7qGZttoi2nXda62MDAMij8uUNYsb8NZ6ya4O1xqlex44dKycpq01tyydMmBBf+tKXqi2r+PvNN9+Mte2jjz7KLrfaaqtqy8umfXZwnPTpvH3WIqFXx22yv7u36ZBdTps3K/KgdeNmccaXD8laCKSK1KptEgbv0Gel27Xb5LMD/y2at4kd23WOvPtw/mfPd9dWm1UuS8HtB3P+Hdx2+tJ+WYuEzbfpnf3devNts8v5s6at9/ECAKwtjTb5bF6FJYvmrtF2cz+ZEuPuPD/adtopOwvp+fsuXUcjBADIn6lF1C5hjYPbNMFYcuutt9a4bubMmfHwww/XWJ56zbZu3brasjZt2lRet7ZVVPbOnVv9ILjhzAWVv6cK2xEHDolDtt4t+3vO4s+ua96oSeRB55ZtY4+O28Q+nbaLP73+TLasfNnS+Mt7r8TB3XrWus2UOZ/EhX+7IwtsU9uHy/5+b+Rds7LP+g/PXbywclnDuYtjZpX+ttt+5cjoe+xV0W3Xr1erTilr0ny9jxcAYG1p3LRlVjH7yZRX1mi7J244Nbs8/Ow/x7a9j4y/j70oZn+09s9iAwDIo08WqLhdqSFDhmSTfd10003x6KOPVi4vLy+PYcOGxfz5NXvIrm8V1bzPPfdcLFr07zYDS9s1W+k2T7z3WmW7gTw5evu9s7A2tT5Ik4317bxjlDWs/R/oGX8ZnV3eO/C/YmCPr8Qvx98d7876MPJsp80+q4p+ZuqEyonhlrVqEpu1WLrSbaa89lh2mapMAAA2ZN12PTRmf/ROTHvr2dVa/+3n7op3/3lP7PXtn0WLtp1i3+9fEQ1LG8Xjo01OBgAUh82arzwzimIPbrt16xaXX355FtT2798/+vbtG4MGDYoePXrE2LFjY/DgwTW2SdW1s2fPrrZs1qxZ1Spv16aePXtmbRLmzJkT1157beXypVu0qnX9Zz+YEA9P+lc0LGkQA7btFXmSAtjUl/e2N56Nm159OgbvuE+t66V2Cve983wM3+fI6NSibVx+wDHRqEFpnPHoZ2FuXu2+ebfo1mqzbFK1Xz/32WRjSzu2ii1alde6/tQJz8Tklx+KkgYNo3uvI9bzaAEA1q4vH/pfUda4WTz6uxNi/uyaX7jP+vCdeOHBEdnvSxbOjSdvPD0267Jb9Ox3WraseZstshB38r8ejLfG37bexw8AsL5t0bL2zGhjVKeZq4YOHRp33XVX9OrVK8aPH59NPpbC0jQpWPfu3Wusn0LdN954o9qyir+32267WNtKSkripz/9afZ7Cplvv/327Pelm7eIQoPq05O9MmNKHH3PFVGIQpywywGVE2TlxaabNI+Duu4SI19+It6YOTX23KJHjXXmLlkY//nYDbFr+64xdLf+lT1uU4ibqnRvf3Nc5FV6rX7eZ1D2+8+euSNueu3pWNqxZWzZ8rPq26o+nvJKPHDltyMKhdip74nRqv3W9TBiAIC1p/Xm28TBp9yctTq48b+2jydvPDNeefx38dIj18SD13wvxvx4h5j5wWdnhj1723kx/9OpccAPfhsNGjSsvI00F0D7rrvHk2POzMJdAICNVeOGy6NdMxW3n2vAgAFZULtgwYKst+3dd99dYwKyCqky94EHHoiFC//dxzSFqdtuu21svfW6Cd+++c1vxvHHHx/Lli2L0047LU444YR45rnxMatFg1hYviRe+mhynPvkLbH3Tf8d0+bPij06bB2X7v+9yKPULuFfMybHt1ZSDXz+07fG1HmfxjUHHR8NG/z7JT15136x2+Zd46zHb8zC3bw68kt7xqm7949lheUx5IFr4vu/Pi8mvfpkLF00J5YuWRgzJr8UT//xx/Gn83tnE5JtvnWv2Hfw5fU9bACAtWLrL38zBl/8r9i297fj3X+OjSduGBrP/OmcmPPxpOjz3ctjv2OujA8nPh8vPXp17HLgKdFhm+rHhCnE7Tvkulgwa3oW7gIAbKy2aFUeJdVrMjdqJYVCobA2b3D48OFxwQUXxKhRo+K4447Lls2YMSN22GGH2HPPPePMM8+MF154Ic4999wYOXJkfP/738/WmT59eqxt6aGNGDEiLrvssizAXZlvbds7fnfISdGi0SaRRwvKF0ena06Ovx/zi+jepkO16/45/d3Y+6b/iZN2PTCu+Npnz3dV/5j2Tuxz8//EKbv1i18fcGzkVXqtfjl+bFz4t9uzAHdluvcaGAedOCoabdJivY4PAAAAgPq1d7d50Wfreevlvjp0qJ7BbbTBbfLiiy/GqaeeGv/4xz9i8803j7POOiurhK2wLoLbCm+//XZcd9118dhjj8W0adOyZS0bbRL7bbVDFmh+rcvOkXd/n/Z29O5Ysw3FxubVRvPisslPVnutGm3SMjrt0Dd6HnRqbLXTgfU9RAAAAADqwdG7zYyum9Zsr7mxBrel6+uOdt1113j66aejPqS+u6nqNln6ydxofv3T0axRk9iQFENom3Tbfce47LTDst9f+aAk7nqxeZQ1aVbfwwIAAACgHpWUFIpqYrIv1ON2VRW3qYi3arVtnpS2bRFN2rep72GwEuWdWlf+vvVmIbQFAAAAIDq0KI9GpWu1cUDxBbcbgvLO/w4HyY9Cw5JYukWryr+bNirEZs2L65sUAAAAAGrq0mb9tEjIk+IMbrtsWt9DoBZZaFvWsNqyrkX4pgQAAACguvXV2zZPijS4bROFkvoeBSta0q1tjWXbtFtcL2MBAAAAIB/KGi6PTq0Ft0Wh0KQslm6pXULeLNmmXY1l6U3ZuOHyehkPAAAAAPWv26ZLorQIU8wifMifWbxd+/oeAlUsbdcslm/atMby9KbcdjNVtwAAAADFavvNF0UxKtrgdsmX2kehGKP6nFq8c8eVXrfLFgvW61gAAAAAyIcmpctj23aC26Jrl7BoFWEh68/yJmWxeMeVvxadW5dHx5bF18cEAAAAoNh9ufOCKK0+l33RKNrgNln41W7ZKfrUn0LDkph/UI8oNC5d6TolJRGHfGlO9g0LAAAAAMVhi5ZL4itd5kexKikUCoXIgenTp9fPHRcKUbJ4af3cN1Fo2CBNDbha6y5bHlG+rGSdjwkAIA8WlZfEnS+3qbbsiJ0/jSZluTh8BwBY5xqXFrKCvvrQoUOHqG8rL3MsFiUlWdsE8i9lvA0b+KACABSPBit8UEmhreAWAKA4FHWrBAAAAACAPMpNxW0eyo8BACAvFiyOKFvhxLD27TePpo3ra0QAAKxPKm4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnBHcAgAAAADkjOAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgAAAAAgZwS3AAAAAAA5I7gFAAAAAMgZwS0AAAAAQM4IbgEAAAAAckZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOlkRPTp0+v7yEAAEBuLCovifLyTast++ijmdGkrFBvYwIAKBYdOnSo7yGouAUAAAAAyBvBLQAAAABAzuSmVQKsSvmyiMfeahlzFvmuAQAoDssKJfHpgobVlt39SutoWKJVAgBQHLZuuyS+3HlBFCvBLRuEFNq+8EHT+h4GAEC9mjSzcX0PAQBgvXnnkybRapNl0b3d4ihGyhfJvVRl++LUTep7GAAAAACsZ0+92zwKRXrCkeCW3HtpatMoFErqexgAAAAArGcfzi2LaXPKohgJbsm19I3K6x82qe9hAAAAAFBPXi/SbEhwS659sqBhzFygFTMAAABAsXpzRpOibJcguCXX3vnYBBwAAAAAxWzOooZZcV+xEdySaxPNnAwAAABQ9CZ+UnwZkeCW3Fq6POL9WY3qexgAAAAA1LPJnxZfRvSFgtt77rkn9tprr2jatGm0bds2Bg4cGBMmTIjhw4dHSUlJjB49eu2NlKKTZgxcurykvocBALDOzfrwnfjL70+KUcO2jquGNIlrT2gZt16wd7zw4IhYumRhts6D13wvu+7TaRNqbP/cPb+MEd8riXdfuK8eRg8AsO5NmdUolhdZn9s6z/p03XXXxcknn5wFtH369ImOHTvGuHHjonfv3nHYYYet3VFSlFTbAgDFYOIL98cDvzkyGpY2ju33OSbadt4pli1dElPffDqevuXsmPnBq/G146+PfQf/Oia99EA8Nuo/YuBPHqvcfvZHE+Pvd18Y3XsNjK13O7ReHwsAwLqyeGmD+HheabRvsTSKRZ2C28mTJ8ewYcOirKws7r333ujfv3+2vLy8PIYMGRJjxoxZ2+OkCL0/q6y+hwAAsE6l0PXPVx8dLdp1iYHnPhbN2nSsvK7nQUNj1vS3Y+KL92d/N23VPvY5+pL4y+9PjNf+ekPssO+x2fLHR58SDRqWxX7fH1FvjwMAYH1V3bYvouC2Tq0SRo4cGYsWLYpBgwZVhrZJCnJHjBiRtU5Y0T/+8Y845phjonv37lmV7nnnnffFRs5GrVCI+GC2ilsAYOP2/P2XRvmieXHgCb+vFtpWaN2he+x28BmVf++4/wnRscfe8fQtZ8XCuZ/Em8/+MSb/68HY68ifR/NNt1zPowcAWL+mzimuIr86BbdPPfVUdnn00UfXuC71uu3Xr1+N5X/729+yVgr77LNPtGrVqi53SxH5ZEHDWLTU3HkAwMZt4j/vjVbtt44tenx1tdZPBRBf+8FvY/GC2fH4qJPjr2OGRftue0TPA4eu87ECANS394vs7Ow6JWNTp07NLrt06VLr9V27dq2x7LTTTssmLksTlrVu3boud0sRmaraFgDYyC1eMCfmffpBtO288xpt17bTjrH718+Kt/5+WyycOyMLcksa+MIbANj4zV5UGvMXF89xz3p7pA0cTLIGPphdXN+gAADFZ8nCOdlloyYt1njbTVq0yy6btdkim8wMAKBYfFBE7RLqlKZ27NixcpKy2qxsOayuYutZAgAUn0abtMwulyyau0bbzf1kSoy78/xo22mnmPfJlHj+vkvX0QgBAPJnahEV+9UpuO3Tp092eeutt9a4bubMmfHwww9/8ZFR1MoaFOp7CAAA61Tjpi2zitlPpryyRts9ccOp2eXhZ/85tu19ZPx97EUx+6N319EoAQDypaxh8WRGdQpuhwwZEo0bN46bbropHn300crl5eXlMWzYsJg/f/7aHCNFaItW5fU9BACAda7brofG7I/eiWlvPbta67/93F3x7j/vib2+/bNo0bZT7Pv9K6JhaaN4fLTJyQCA4rBlEWVGdQpuu3XrFpdffnkW1Pbv3z/69u0bgwYNih49esTYsWNj8ODBa3+kFJViehMCAMXry4f+V5Q1bhaP/u6EmD/7wxrXz/rwnXjhwRHZ70sWzo0nbzw9NuuyW/Tsd1q2rHmbLbIQd/K/Hoy3xt+23scPALB+FaJDy+LJjOo8Y9jQoUPjrrvuil69esX48ePjoYceip49e8a4ceOie/fua3eUFJ0tWi2p7yEAAKxzrTffJg4+5eas1cGN/7V9PHnjmfHK47+Llx65Jh685nsx5sc7xMwPXsvWffa282L+p1PjgB/8Nho0aFh5G7scNDTad909nhxzZhbuAgBsrDZrtjSalBZPq4TSL7LxgAEDsh9Y21o2Xh7NGy+LeYv//aEEAGBjtPWXvxmDL/5X/PP+X8W7/xwbL//l2mhY2jjabrVL9Pnu5bFj3x/GhxOfj5cevTp2OfCU6LBNr2rbpxC375Dr4tbhe2bh7n7HfFahCwCwsdmiyM7Q/kLB7ZqYMWNGPPnkk9nvCxYsiDfeeCNuv/32aNasWRxyyCHraxhsIEpKIjq1WhJvfLRJfQ8FAGCda9Nh2/ja8dev9PrNu305Tv/D0pVen8Lc029cto5GBwCQD1sKbteNV199NY488sjKv++4447sp0uXLjFp0qT1NQw2IJ1alwtuAQAAAMh0bl1crTXXW3C7//77R6FQPD0o+OKK7c0IAAAAQO2aN1oWrTcprjOMSgo5SVOnT59e30MgZ9K/zBF/bR+LltZ5Dj0AAAAANgI7bL4wvrnT7PV2fx06dIj6JhEj131ut2qj6hYAAACg2HXZtPgyIsEtubZ128X1PQQAAAAA6lm3TYsvIxLckmuCWwAAAIDitlnz8mjZZHkUG8EtuZbelFu0LL5SeAAAAAA+s91mi6IYCW7JvR06FOebEwAAAIAo2mxIcEvu7dRhYZQ1LL5yeAAAAIBi123TxbFp02VRjAS35F6TskLs3XV+fQ8DAAAAgPWoQUkh9ttmbhSr0voeAKyOr3SZH03KlsfsRQ3reygAAAAArAdd2yyJDi2XRrES3LJBKCmJ2HXLhfU9DAAAAABYL7RKAAAAAADIGcEtAAAAAEDOlBQKhUJ9DwIAAAAAgH9TcQsAAAAAkDOCWwAAAACAnBHcAgAAAADkjOAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgAAAAAgZwS3AAAAAAA5I7gFAAAAAMgZwS0AAAAAQM4IbgEAAAAAckZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOlkRPTp0+v7yEAAAAAAESHDh3qewgqbgEAAAAA8kZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAjSm4veeee2KvvfaKpk2bRtu2bWPgwIExYcKEGD58eJSUlMTo0aPX3kgBAAAAAIpEaV03vO666+Lkk0/OAto+ffpEx44dY9y4cdG7d+847LDD1u4oAQAAAACKSJ2C28mTJ8ewYcOirKws7r333ujfv3+2vLy8PIYMGRJjxoxZ2+MEAAAAACgadWqVMHLkyFi0aFEMGjSoMrRNUpA7YsSIrHXCim699db4xje+kVXmtmrVKvbdd994+umnv9joAQAAAAA2QnUKbp966qns8uijj65xXep1269fvxrLr7jiimjXrl1cffXVcdttt8WWW24ZX/va1+Kll16qyxAAAAAAADZadWqVMHXq1OyyS5cutV7ftWvXGstSS4UU6lY48MADY+edd86C3Ouvv74uwwAAAAAA2CjVqeK2LqqGttkdN2gQO+20U0ycOHF9DQEAAAAAYOMNblOf2opJymqzsuVVLVu2LJ577rno3r17XYYAAAAAALDRqlNw26dPn8oJx1Y0c+bMePjhhz/3Nq666qp477334pRTTqnLEAAAAAAANlp1Cm6HDBkSjRs3jptuuikeffTRyuXl5eUxbNiwmD9//iq3Hz9+fJxzzjlx3nnnZX1uAQAAAAD4gsFtt27d4vLLL8+C2v79+0ffvn1j0KBB0aNHjxg7dmwMHjx4pdtOmjQpDj/88DjssMPi/PPPr8vdAwAAAABs1Oo8OdnQoUPjrrvuil69emUVtA899FD07Nkzxo0bt9K+tbNmzYpvfOMb0bVr17jhhhuipKTki4wdAAAAAGCjVPpFNh4wYED2szqWLFkSRxxxRCxYsCAee+yx2GSTTb7IXQMAAAAAbLS+UHC7JtIkZE8++WT83//9X0ycODH7SVKv3N122219DQMAAAAAIPfWW3CbJjFbvnx5HH/88dWWd+nSJet7CwAAAADAeg5uhbMAAAAAAKunpFAoFCIHpk+fXt9DAAAAAACIDh061PcQokF9DwAAAAAAgOoEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnBHcAgAAAADkjOAWAAAAACBnBLcAAAAAADkjuAUAAAAAyJmSQqFQqO9BAAAAAADwbypuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgAAAAAgZwS3AAAAAAA5I7gFAAAAAMgZwS0AAAAAQM4IbgEAAAAAckZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnBHcAgAAAADkjOAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzpZET06dPr+8hAAAAAABEhw4d6nsIKm4BAAAAAPJGcAsAAAAAkDOCWwAAAACAnBHcAgAAAADkjOAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgI0luL3nnntir732iqZNm0bbtm1j4MCBMWHChBg+fHiUlJTE6NGj1+5IAQAAAACKRGldNrruuuvi5JNPzgLaPn36RMeOHWPcuHHRu3fvOOyww9b+KAEAAAAAisgaB7eTJ0+OYcOGRVlZWdx7773Rv3//bHl5eXkMGTIkxowZsy7GCQAAAABQNNa4VcLIkSNj0aJFMWjQoMrQNklB7ogRI7LWCSu64YYbYo899ojWrVtHs2bNYvfdd48//vGPX3z0AAAAAAAboTWuuH3qqaeyy6OPPrrGdanXbb9+/eLuu++utvzTTz+NAQMGxK677hpNmjTJrk/Bb/o9LQcAAAAA4AsEt1OnTs0uu3TpUuv1Xbt2rbHszDPPrPb3gQceGC+++GLcdNNNglsAAAAAgC/aKmFtSdW5qS8uAAAAAABfMLjt2LFj5SRltVnZ8mTp0qUxZ86c+NOf/hSPPPJInHTSSWt69wAAAAAAG701Dm779OmTXd566601rps5c2Y8/PDDtW43ffr0bAKzVq1axeDBg+OKK66IQw45pC5jBgAAAADYqK1xcDtkyJBo3Lhx1p/20UcfrVye2h4MGzYs5s+fX+t27dq1i+eeey4ee+yx+NGPfhSnnnpq3HHHHV9s9AAAAAAAG6GSQqFQWNONrr766ix4bdCgQey7777RoUOHGDduXHz66adx6KGHZqHuqFGj4rjjjlvpbfzwhz+MJ598MiZMmFBZkQsAAAAAUN9S3rlBTk42dOjQuOuuu6JXr14xfvz4eOihh6Jnz55ZeNu9e/fVuo1dd9013n333brcPQAAAADARq20rhsOGDAg+6mrZ555Jrp27Vrn7QEAAAAANlZ1Dm7XRN++fWPgwIHxpS99KRYtWhRjx46Nm2++Oa6//vr1cfcAAAAAABuU9RLcpjYKv/nNb2LKlCnRrFmz2GGHHeLee+/N+uECAAAAAFAPwe0VV1yR/QAAAAAA8PlKCoVCIXJg+vTp9T0EAAAAAIDo0KFDfQ8hGtT3AAAAAAAAqE5wCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnCkpFAqF+h4EAAAAAAD/puIWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgAAAAAgZwS3AAAAAAA5I7gFAAAAAMgZwS0AAAAAQM4IbgEAAAAAckZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnBHcAgAAAADkjOAWAAAAACBnSiMnpk+fXt9DAAAAAACIDh061PcQVNwCAAAAAOSN4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnBHcAgAAAADkjOAWAAAAACBnBLcAAAAAABtLcHvPPffEXnvtFU2bNo22bdvGwIEDY8KECTF8+PAoKSmJ0aNHr92RAgAAAAAUidK6bHTdddfFySefnAW0ffr0iY4dO8a4ceOid+/ecdhhh639UQIAAAAAFJE1Dm4nT54cw4YNi7Kysrj33nujf//+2fLy8vIYMmRIjBkzZl2MEwAAAACgaKxxq4SRI0fGokWLYtCgQZWhbZKC3BEjRmStE1bl5ZdfjtLS0ujUqVPdRgwAAAAAsJFb4+D2qaeeyi6PPvroGtelXrf9+vVb5fZnnnlmth4AAAAAAGspuJ06dWp22aVLl1qv79q160q3vfvuu+Pdd9+NH/zgB2t6twAAAAAARWONg9u6WrJkSZx11lnxy1/+Mho3bry+7hYAAAAAYOMPbjt27Fg5SVltVrb8iiuuiM022yyOOuqoNb1LAAAAAICissbBbZ8+fbLLW2+9tcZ1M2fOjIcffrjG8g8//DAuuuii+PWvf13XcQIAAAAAFI01Dm6HDBmStTq46aab4tFHH61cXl5eHsOGDYv58+fX2OYnP/lJHHzwwbHXXnt98REDAAAAAGzk1ji47datW1x++eVZUNu/f//o27dvDBo0KHr06BFjx46NwYMHV1v/lVdeiTFjxsQ555wTs2bNyn4WLVoUhUIh+z31vgUAAAAA4AtOTjZ06NC46667olevXjF+/Ph46KGHomfPnjFu3Ljo3r17tXXffvvtLJzdfffdo02bNtnPJZdcElOnTs1+HzlyZF2GAAAAAACw0Sqt64YDBgzIfj7PPvvsE48//ni1ZaNHj477778/brvttqxSFwAAAACAtRDcrq527drF/vvvX23ZE088kfXJXXE5AAAAAAB1bJUAAAAAAMBGFtwOHz483n///fq4awAAAACA3CspFAqFyIHp06fX9xAAAAAAAKJDhw71PQStEgAAAAAA8kZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnCkpFAqF+h4EAAAAAAD/puIWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgAAAAAgZwS3AAAAAAA5I7gFAAAAAMgZwS0AAAAAQM4IbgEAAAAAckZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHJGcAsAAAAAkDOCWwAAAACAnBHcAgAAAADkjOAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgAAAAAgZwS3AAAAAAA5I7gFAAAAAMgZwS0AAAAAQM4IbgEAAAAAckZwCwAAAACQM4JbAAAAAICcEdwCAAAAAOSM4BYAAAAAIGcEtwAAAAAAOSO4BQAAAADIGcEtAAAAAEDOCG4BAAAAAHKmNHKgUCjE3Llz63sYAAAAAACZFi1aRElJSRR1cJtC21atWtX3MAAAAAAAMh999FFsttlmUdTBbUqvZ8+evU7vY86cOdG5c+eYMmVKtGzZcp3eF5Bv9gdAYl8AVLA/ACrYHwBV9wWNGjWK+pSL4DaVHK+vHWK6HztfILE/ABL7AqCC/QFQwf4ASOqzTUJicjIAAAAAgJwR3AIAAAAA5EzRBLeNGzeO888/P7sEipv9AZDYFwAV7A+ACvYHQJ72BSWFQqFQryMAAAAAAKA4K24BAAAAADYUglsAAAAAgJwR3AIAAAAA5MxGH9wuX748/vd//ze+9KUvRZMmTaJz587xox/9KObPn1/fQwPWsgULFsTWW28dJSUlceqpp1a7bvjw4dny2n4uu+yy1V43/ZSVla3nRwasyocffhj/8R//kf0/vlGjRrHVVlvFGWecEbNmzaq23t///vc4/fTTY++9947mzZtn7+fRo0ev1n1MmzYt2rRpU+s+A1j/Lr744jjyyCMr/7/ftWvXla57zjnnxFe/+tVo3759NsFI2lcceuih8cQTT9RY97jjjlvlMcC2225bbf1HHnkk2//06tUr+6yR1qntdoF87A+SP//5z/G1r30tOnToEM2aNYvtttsuzjrrrOx4oqonn3wyhg4dGjvvvHO0bNkyNttss+wY4pZbbonapgpKy26++eZsf9OuXbto0aJF7LjjjnHhhRfGnDlz1vrjBqqbMGFC/M///E/sueee2fs1vQd33XXXuOiii6plgOm9OmbMmDj66KOje/fu0bRp0+zzwze/+c0YP3581GbevHnxi1/8ItsfpNtN7/H0Xk+fJVbcH6zqWOL222+PNVUaG7lhw4bFlVdeGd/61reywPb111/P/n7hhRfi0UcfjQYNNvrsGopG2knPmDFjleukL3LSTraqL3/5y9X+PuKII7Id+Ir+9a9/xa9+9as47LDD1tKIgS/qo48+iq985SsxderUOOmkk2KnnXaKV155Ja699tr461//Gn/729+yg7HkgQceiKuvvjr7Mrdnz57xzDPPrPb9nHbaabF06dJ1+EiANfGTn/wkNt1009h9991rfEmzonHjxsUuu+wSAwcOzL6AmT59evaBrW/fvvGHP/whvv/971eum/YjBx54YI3beOyxx2LUqFE1jgFuuummLKhJ+57tt98+XnzxxbX4KIG1vT/4v//7vzjxxBOz4/8f//jHWXD73HPPxRVXXBF33nlnvPzyy9myJF3//vvvZ1lCCmtS8POnP/0pvvvd72b7hHRbVZ133nlZsHPAAQdkM9GnYo/0RU76PR2DPPvss1lwA6wbI0eOzI71UwA7ePDg7D34+OOPZ+/NW2+9NTse2GSTTWLx4sXZ//tTqJvC227dumVFGtddd13stdde2bHB9773vWoFoYccckj22eHYY4/NPhekorH0Jc6QIUOynPGSSy6pMZ4bb7yxxrLevXuv+QMrbMReeeWVQklJSeGII46otvzKK69McXjhpptuqrexAWvX888/X2jYsGHh8ssvz97fQ4cOrXb9+eefny2fOHFine/jxBNPzG7jvvvuWwsjBtaGM844I3tf3nzzzdWWp7/T8p/97GeVy6ZPn16YN29e9vttt92WXT9q1KjPvY+xY8cWGjRoULj00kuzbX71q1+tg0cCrIl33nmn8vcdd9yx0KVLlzXafu7cuYX27dsXtt9++9Vav1+/ftn7P32+qOr9998vLFq0KPs97RvSOo8//vgajQVYf/uDHj16FDp27FhYuHBhteU//elPs/fvXXfdVbnsiSeeKCxdurTaesuWLSvsu+++2bovv/xy5fLy8vJC06ZNC7vvvnu2TlWDBw/O1n/hhRe+0OMEVu25554rzJo1q8byivf3b37zm8r3a3p/ryh9Vmjbtm12fFD1ffzMM89k25955pnV1l+8eHGhW7duhVatWlVbfuyxx2brry0bdblpxSkMZ555ZrXlP/zhD7Pqm/RNO7DhW7ZsWfa+Pvjgg7Nq2c+TTlVa08q59A37H//4x+jUqVN2P0A+pG/R0zfn6dvyqo466qjstOVUIVdh8803r6yiWV1z587NTpM8+eSTs1OhgXxIp0R/EaldStu2bePTTz/93HUnT56cnamXTr1Mpz1XteWWW2btF4ANY3+QPgekyvt0jFDVFltskV1WPU7Yb7/9omHDhtXWS2fsfvvb385+T2f4VCgvL4+FCxdm7RdWPKu3ttsG1r499tgjWrVqVWN5+lxQ9T1bWlqavb9XlD4rpOXpjL70U6Gi1UnFe7lCatGWzuZd2Xs75ZFp21Sx+0Vs1MFtOuUh7TRXLEVOO+lUEp2uBzZ8qf3BG2+8EVddddXnrptOlUw787QfSD1pUo+r1XHbbbdlO93Ur2bFAzig/qRTnSr6SlaV/v+fAt133303Pv744zrf/rnnnpt9OZR6YwEbtrQvSB/EXnrppawXfjq18etf//rnbpe+AEofuk444YT1Mk5g3enfv3+89tprlW0Up0yZkrVI+NnPfpYFNqnNwedJ7RMqQp4K6Zhj3333jQcffDA7Zfrtt9+OSZMmZf0vr7nmmuy06xV7ZAPrx/u1vGdXtW4KZFu3bl25LGWK6e9LL700ywXee++9LH9InxOef/75bI6c2qTcIf2k/cNBBx200v65Rd3jNvW7S+l3bd+Cp2/HU3+KJUuWZC8KsGGaOHFi1jcq9bdNExGkA6TapB1t6meVwtr0Lfubb76Z9bL6xje+kfXCSYHsqvz+97/PgqEf/OAH6+iRAHWRqt/S+zn1lUxfylZIf1dU0qWDqxV7W6+O1Acr9cpN/Str+/Ye2HCkSUXSRCUV0oeodFzw61//epXbpcA2BbepQreiYgfYcI0YMSLrTZkuq77/U5/K3/72t59boJEyhuuvvz6r8t1nn31q9LxOnynShIjpJ0mfH376059mE5QB69+yZcuyL2ZSlW3qT70qqRd1msw49b+tWpWf8oN77rkn+wL3O9/5TuXyNEnZHXfcEQMGDKh2O6nyPs23lXppp2rc9IVxyh769OmT3UdtvfSLNrhNO+SVnbpU8SKkdQS3sOFKMzmnA6f//M//XOV6K7ZMSVIImyYTSTvVdMpT+lBWmxQKPf3009nss6lxOZAf6b199913ZwdR6YAovadfffXVbHmakCCdupj+X7+m0napBUv6dlxYAxu+FNQ+8sgjWauk1PogBSwpzE37h1Wdvpy2SV/+HH/88Ss9TgA2HOnYIM0enyYcS5MNphaKDz30UFbIkULbFSccqyrtL9J2ad+RQpx0W1Wl7CF9VjjmmGOyiYySFOr8/Oc/z/KHFOAC69eZZ56ZTQyYJg7cbrvtVrreW2+9lQW2qcjz8ssvr3F9OgZInzPSxGepGGzmzJnZRGgpDB47dmz2maHCL3/5y2rbpmA3rZeKTFL7tXRfa2KjDm7TTrhqX4qqFi1aVLkOsGFKfarTB6o0c/yKB06rI/W2S8FvOrUhVeD369dvpdW2iVMkIX/SN9ep//Tpp5+eVdAn6YNXer+maty77rorWrZsuca3W3GaYwqFgQ1f2i9UrXBJ+4j9998/Oy36n//850qPIxwDwMYjVdCnuSrSFzh/+9vfKtsspQKO9Lkg/b8/fVlbWzVcyg9S+PKPf/wjbrjhhuz4Y8VQN4U5u+++e3ZcUiH14E8/6ezAdD+rCo6Ateu///u/s3aK6Qyb1NZgVWfxpiKttE9IrRSrnqGTvPzyy9n7O7VoTPlBhUGDBmVhbir2eOedd1ZZsZ9apaRCk9Q+ZcKECdGjR4/VfhwbdY/b1Dg49bJK/e9W9MEHH2SnTaq2hQ1Tel+nKtvUmy6dipAClvSTqmiS2bNnZ3/PmjVrlbeT2iskK+uBmQ7s/vCHP2QHc+kbdiB/jjzyyKwf1QsvvJB9kZNOY7zuuuuyZem0qO7du6/R7U2bNi3raXvsscdmkwpU7F/SsUPyySefZH+nSQuBDVP6cDV48OBsopK036hNeq+nKpr0oSxNTAZs2NIZdE899VQMHDiwRm/8dCyRPPnkkysNbdMkhb/73e+yfrUruv3227MquorbWfG2U2ic7h9YP4YPH55Vu6c2KOlzwcqkVot9+/bNKulTUdjOO+9cY50U2Kb9wIrv71QImgpHUgaxspaNa5I9FGVwm2Z/TjvI1KOiqvSEp953acY5YMOUZm2dMWNG3H///dm3VxU/qXqmoho3/Z0Orlal4jSFlTUqv/fee+PDDz/MDtDMGg35DmHS6UepAqZ9+/Yxffr0LMhNE42s6dk16T2fjhVSr7uq+5eKD2rp9Kf09+pObgjk91giSac71iZ9cZvmw0htEoANX8UXsKnnZW3FGlUvVwxtH3744ay3bQqB1tZtA+sutL3ggguyIoyUB6z4RU2FFLam/CAVfaXQdrfddlun7+/Pyx6KslVCOs0h9bGoaAJcIfWtSacypG/ZgQ1T6keXZnRcUQpzTznllOw0qPRBa5dddsl2oqkybsXJhdIssmnioVRNm059WNUpkj60wYYjfWmbWiekg6u69JNL/elq27+k3rnpQDD1rkt98fbaa6+1NGJgXUmTFKZjhhXPskvHBen/8Q0aNMhmi65Nuj5tl3reARu+HXbYIbtMPa7THBdVW6Sk05crir+qnuGXzrhLoW2q2FtVy5SK205tFKpOXlSxbMXbBtaNCy+8MAtt0/+7U+/q9P/52qQq2VRpm87QTaFtmkhsVe/vtB9I+4n/+q//qlyetk1n5qTJyyrO8EvHF6mgpOrkZkkqKEmfL7bffvvYZptt1ugxbdTBbSpxHjp0aNbT4ogjjshOqX799dfjyiuvzCpwPm9GOSC/0oFW6hO1oopTFNLOsOL6tENNQUz6tjztKNOONU04lr59S6dE3HLLLdmkJStKp1s/+OCD2Qe62k6ZAOpfeg+n92j6YJXe5+kb8/Sefv7557N2B+mArOoB2o033lgZwlZU1aeWCkk6wOvSpUv2JU9t+5fUYilJ+4PargfWn/RermiPlL60TZWx6ZTIJL2PK8LWdNrzSSedlJ0anT5UpRmgUy+7tH16759//vnZ+isaP358tp9IAUz6gndl/vWvf2WTFCWpZ2bF2CpOiT7ttNNqfHEM1M/+oGfPntm+IE0Yls6+TWfSVExOlo4HUkuUww8/vPJ2U6FX+iyQet6m9dIZfVWlApH0kxx66KHZ8UiaMX7ffffN8ofkzjvvzNozpFOsU/9bYN25+uqrs/+vpwkI0/v25ptvrnZ9qnRNk4jNnTs3+4yQsoP0/+mUDaSfqtJ6FZWxaYKzdBbOOeeck/W73XvvvbOzdVJRaGqxlu63or9tqqpNkxOm7CGdoZe+PH7ppZcqJ0BMlftrrLCRW7p0aeGyyy4r9OjRo9CoUaPCFltsURg2bFhh7ty59T00YB2YOHFiIe3ahg4dWrls0aJFheOPP76w0047FVq3bl0oLS0tdOjQoTBw4MDC+PHjV3pbF110UXZb119//XoaPbCmFi9eXDj66KMLXbt2LTRu3LjQpk2bQr9+/QoPPvhgjXUff/zx7D29sp90/apUbP+rX/1qHT4iYHXst99+K30vp+sqvP3229kxwPbbb19o2bJldgyw+eabFw499NDCfffdt9Lb/+EPf5jd1sMPP7zKcYwaNWqV+5V0XALkY39QcdxwySWXFHbZZZdCkyZNsoxg2223LZx77rmFefPmVVu3S5cuq3x/n3/++dXWnzNnTnY72223XXa76bgkff5I91deXr5engsoZscee+wq37MV+4OKzGBNPhek44ljjjmmsOWWW2bHEi1atCj06dOncMcdd1Rbb9q0aYXvfe972X4grZPW7dy5c7bt66+/XqfHVZL+80USbQAAAAAA1q6NenIyAAAAAIANkeAWAAAAACBnBLcAAAAAADkjuAUAAAAAyBnBLQAAAABAzghuAQAAAAByRnALAAAAAJAzglsAAAAAgJwR3AIAAAAA5IzgFgCAjc6kSZOipKQkhg8fvlHfZ138+Mc/jm7dusWSJUs+d90nnngie0yjR49erdseO3ZsNGrUKN566621MFIAgOImuAUA+ALefffdOPHEE+NLX/pSNG3aNNq0aRPbb799HHvssfH444+v0/tOAeHdd9+9Tu+DmuFset5ffPHF2BBNnDgxRowYEf/zP/+TBax1kR57eg7Sc7Giww8/PHbeeecsHAYA4Isp/YLbAwAUrX/84x+x3377RVlZWRxzzDGx4447xsKFC7Nqw4cffjhatGgRffv2XWf3f8EFF2QB8YABA9bZfVBdCivT8961a9fYddddq13XpUuX7PUvLc3vIfYvf/nLaNmyZXzve9+r822k4DY9B/vvv3/2PKzojDPOyP5dvvrqq9l7AgCAusnvUSUAQM6l8GrBggVZkNWzZ88a10+fPr1exkX9SC0FmjRpEnk1Z86cuOmmm+L444/PvmxYV4444og4+eST47rrrovf/OY36+x+AAA2dlolAADUUaqsbdu2ba2hbdKhQ4fsMvUS3WyzzWLvvfeudb1f/epXWej317/+Nft70aJF2ano2223XdZ+oXXr1tnp52effXa1XqrJDTfckP1e8VPVo48+Gv369cu2T4HiLrvskoVpK0pVk6l68qWXXooDDzwwmjdvHu3bt48f/ehHsXTp0mw8Z511Vmy55ZbZ7ey7777x+uuvr/bzlALs008/Pbbeeuto3LhxdtsHHXRQPPLII5Wn16fHmYLFFT333HPZ47rwwgurLb/jjjuyMafHlrZNz1W6j9Xp2/qnP/0p9tlnn6wiOm37la98JW6//fbP3S71ea2ooB4yZEjlc57GsbIet1WX3XrrrVmV7iabbBLdu3ePUaNGZeu899578e1vfzs23XTTbEypGnbu3Lk17n/atGlZILrVVltlbQ622GKLrE3HRx99FKvjgQceiPnz58fXv/71lfan3W233bLXuHPnzvHf//3fUV5eXm2d9DjSY0/Sc1HxHBx33HGV66R/P3369Fmt5xQAgJVTcQsAUEfbbLNNvPnmm3HnnXdmVYYrk0K2dOr45Zdfnq2fQsaqRo4cGT169MgC0WTo0KHZstR+4T//8z+z8DSFxI899lh2fQqBb7zxxvj+97+fBWQpvFvR9ddfH//xH/8Re+65Z/z0pz+NZs2aZUFpCv7eeeedLCyu6v3338/C1KOOOioLEVOrh1//+tfZaf/plPfUAuCcc86Jjz/+OC677LKsPUMKbxs0WHUdQAouU2D94YcfZo9njz32yMLDcePGZcFyus8f/vCHcc8998Qtt9wSJ510UrXtf//732f38YMf/KByWXo8v/jFL2KHHXaIYcOGRceOHbPHlMLcFPCuqnfreeedFxdddFEcfPDB8bOf/Sy77bvuuiuOPPLIuOqqq7LnfmXS6/OTn/wku+/0nKfnPtl8883j89x3331ZaH7KKadkAW16XOkxpbGm2zzggAOy201BdXrtU3j6u9/9rnL7FO7utddeWTCdKmbTv7233347rr322qyXcmrb0apVq1WO4cknn8wue/XqVeO69BwMHDgwC/FT/9v0uqdg+f7776+2Xvp3ngLk9O8rjTv1c07SeKpKY33ooYfijTfeyPo/AwBQBwUAAOrkmWeeKZSVlRXSIdW2225bGDJkSOGaa64pvPbaazXWffPNN7P1zj777GrLn3766Wz5JZdcUrmsTZs2hUMOOeRz7z9td+yxx9ZYPnXq1ELjxo0LgwYNqnHd6aefXmjQoEHhnXfeqVzWpUuX7LZuvfXWauvuvvvuhZKSksI3v/nNwvLlyyuXjxgxIlv/wQcf/NwxpsexsnWXLVuWXS5durTQuXPnQq9evapdP3/+/ELLli2rPRfjx4/Pbq9v376FhQsXVls/jbFinBMnTszWO//88yuvf/7557Nl5557bo2xHH744YUWLVoU5syZs8rH8/jjj2e3MWrUqBrX1XafFcuaNm1amDRpUuXyjz76KHuN0vN7+eWXV7udb33rW9m/q7lz51YuS6/BZpttVpgyZUq1dZ977rlCw4YNq93nyuy7777Zv60VVTz/bdu2LcyYMaNy+axZswpbbbVVjcebfk/L0nOxMjfeeGO2zu23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", + "image/png": "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ACBHhLYAAAAAADkitAUAAAAAyBGhLQAAAABAjghtAQCodyZNmhRFRUUxbNiwer3N2vj+978fXbt2jaVLl65x2cceeyx7TqNGjVqrxx47dmw0adIk3nzzzQ3QUgCAhktoCwCwHt5555049dRTY6eddooWLVpEu3bt4jOf+UycdNJJ8eijj27Ubadw8K677tqo26BqMJte95deeik+jSZOnBjDhw+P//u//8vC1dpIzz29Bum1qOyoo46K3XbbLQuGAQCoveL1WBcAoEF7/vnn48ADD4ySkpL4xje+EbvsskssWrQo62X44IMPRqtWraJfv34bbfsXX3xxFg4PHDhwo22DilJQmV73Ll26xB577FFhXufOnbO/f3Fxfg+xf/azn0Xr1q3jxBNPrPVjpNA2vQZ9+/bNXofKzjnnnOx9+e9//zv7TAAAsO7ye0QJAJBzKbhauHBhFmL17Nmzyvzp06fXSbuoG6mMQLNmzSKv5s2bF7fcckt861vfyk40bCxHH310nH766XHjjTfGr371q422HQCA+kx5BACAWko9atu3b19tYJuUlpZm96l26BZbbBGf//znq13u5z//eRb4PfHEE9nvixcvzi4/33HHHbOSC23bts0uOT///PMr1E5NbrrppuznstuqHn744ejfv3+2fgoTd9999yxIqyz1lky9Jl9++eU45JBDYrPNNostt9wyvvvd78by5cuz9px33nmxzTbbZI9zwAEHxH/+85+1fp1SeH322WfH9ttvH02bNs0e+9BDD42HHnqo/JL69DxTqFjZc889lz2vSy65pML0O+64I2tzem5p3fRapW2sTZ3WP//5z7H//vtnPaHTuvvss0/cfvvta1wv1XUt6zk9ePDg8tc8taOmmrarThszZkzWO7d58+bRrVu3GDlyZLbMu+++G1/5yldi8803z9qUesHOnz+/yvanTZuWhaHbbbddVtpg6623zkpzzJgxI9bGX//611iwYEF84QtfqLEe7Z577pn9jTt16hT/+7//G8uWLauwTHoe6bkn6bUoew1OPvnk8mXS+6dPnz5r9ZoCAFA9PW0BAGpphx12iDfeeCP+8pe/ZL0La5ICtnS5+FVXXZUtnwLGVY0YMSJ69OiRhaHJkCFDsmmp5ML//M//ZMFpCogfeeSRbH4KgG+++eb4+te/noVjKbir7De/+U185zvfiX333Td+9KMfRcuWLbOQNIV+b7/9dhYUr+q9997LgtTjjjsuCxBTeYdf/OIX2aX+6TL3dNn/BRdcEB9++GFceeWVWUmGFNw2arT6PgAptExh9QcffJA9n7333jsLDseNG5eFymmb3/72t+Puu++OP/7xj3HaaadVWP/3v/99to1vfvOb5dPS8/npT38aO++8cwwdOjQ6duyYPacU5KZwd3W1Wi+88MK49NJL47DDDosf//jH2WPfeeedceyxx8a1116bvfY1SX+fH/7wh9m202ueXvtkq622ijW59957s8D8jDPOyMLZ9LzSc0ptTY950EEHZY+bQur0t0/B6e9+97vy9VOwu99++2WhdOopm957b731Vtxwww1Z7eRUqqNNmzarbcPjjz+e3ffq1avKvPQaHHPMMVmAn+rdpr97CpXvu+++Csul93kKj9P7K7U71W9OUntWldr6wAMPxOuvv57VewYAYB0VAAColaeffrpQUlJSSIdU3bt3LwwePLhw/fXXF1577bUqy77xxhvZcueff36F6U899VQ2/fLLLy+f1q5du8Lhhx++xu2n9U466aQq06dOnVpo2rRpYdCgQVXmnX322YVGjRoV3n777fJpnTt3zh5rzJgxFZbda6+9CkVFRYUvfelLhZUrV5ZPHz58eLb8/fffv8Y2pudR07IrVqzI7pcvX17o1KlToVevXhXmL1iwoNC6desKr8X48eOzx+vXr19h0aJFFZZPbSxr58SJE7PlLrroovL5L7zwQjbtBz/4QZW2HHXUUYVWrVoV5s2bt9rn8+ijj2aPMXLkyCrzqttm2bQWLVoUJk2aVD59xowZ2d8ovb5XXXVVhcf58pe/nL2v5s+fXz4t/Q222GKLwpQpUyos+9xzzxUaN25cYZs1OeCAA7L3VmVlr3/79u0LM2fOLJ8+Z86cwnbbbVfl+aaf07T0WtTk5ptvzpa5/fbb19guAACqUh4BAKCWUm/CF154IetFO3fu3KxnYupJmXqApl6Z77zzTvmyqSdtGrTsD3/4Q9ZztkzqcZl6NabHKJN6TKbera+++mqt2pUuS1+yZEnWIzP1jF31duSRR8bKlSuzXq6rSqUPUm/TVaUSAikbPuussyqUXijrYZp6/67OrFmz4v777896tQ4YMKDK/LJeuo0bN856naZepq+88kqF55FKJqTnUSbVZE0u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", "text/plain": [ "
" ] @@ -94,7 +89,6 @@ }, { "cell_type": "markdown", - "id": "1f1e7963-6862-47c8-adcc-316a55851c57", "metadata": {}, "source": [ "### Draw with a stylesheet suited for program debugging" @@ -102,18 +96,17 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "b27878a1-899a-4b8d-addd-a3ae7257c5a4", + "execution_count": 2, "metadata": {}, "outputs": [ { "data": { - "image/png": "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jCtUqJA7+uijM207c+ZM16dPH9esWTPb59V+zpw5UdtOmzbNde3a1eZXsmRJV65cOde0aVP35JNPuj179oS0/f33391TTz3lOnbsaMeR1NRUV69ePXfDDTe4jRs3xn2dAURavXq1+9e//uVOPfVUV7FiRZeWluaaNGniHn744ZDvdY2x+tprr7kePXq42rVr2/5do0YN29/nz5+f6fx/++03d+edd9prdPzQe7Rr187NnTs3pN3VV19tx5Zoj0mTJuXpNgDg3KpVq9zll1/u6tev79LT020f17n+7bff7rZs2RLS9rHHHnNt27Z1VapUsdGf9VP79ZQpU6LO+5dffrHzCH3XFytWzI4d/fr1czt27Ihom9lxwH/o2ATg0Pvrr78C1w0333xzyHODBg3KdJ8dMWJEzMea4Necf/75dl1RqlQp16pVK/fJJ5/k6foC+J/M9u/SpUu7zGIC7du3t31W+3jdunUjjhu+TZs22fW/zg10TlG5cmXXuXNnt2LFijyLGxR1BVz//v3dyJEj3QUXXGDB2pUrV9rfixcvdrNmzXKFCxf4uDVw2Lv33ntd+fLlLaAa7aIp2Ouvv+4mTJjgGjZsaCdY33zzTaZtly5d6ooUKeKuvfZau4jLyMiw4IyOGzp4f/TRR3aAFwV6dAw588wz7SB+xBFHuGXLlrkxY8a4iRMnui+++MIdf/zxcV93AP/z0ksvuWeffdaCr7qISklJcbNnz3b333+/7YdfffWVnRjt3bvXXXnllRbQVeC2Vq1adnE1evRod9ppp7lXX33VXXHFFSHz3rBhgwV2/vjjDzsm6IRt586d7ttvv3U//fRT1OUZP358xLRTTjklz9YfwP8umrRP6/y+WrVqrmjRovad/vzzz7s333zTvvsrVapkbb/++mu7OXv22Wfbd7duzrz99tvuwgsvdIMHD3YPPPBAYL5bt251zZs3d5s3b3a9e/e2cwl9148aNcp99tln7vPPP7cLuqyOAX5QaM2aNa5Lly6HYGsACKcbvNu2bcuyjRK7dEwIdtJJJ8V8rBHt96effrq1+7//+z8L9L7wwgvurLPOch9++KEFhgDkvVatWlmQNJiuG8I9+OCD9p2tfVS/6zv+xx9/tPP/cIohah9W0sg111xjgVudUyxcuDDkeBP3uIFXgC1btswrVKiQd+GFF4ZMHzlypKdVf/311/Nt2QDk3Jo1awK/N2jQwKtZs2ambTdt2uTt2bPHfh8+fLjt67Nnz87V+9100032uvnz5wemrVu3zvvhhx8i2s6cOdPaduvWLVfvASD3FixY4O3YsSNi+n333Wf74dNPP21///PPP96cOXMi2v38889ehQoVvEqVKnn79+8Pea5ly5ZetWrVvM2bN2e7HD179rT3A5BYJk6caPvmsGHDsmynY0SjRo280qVLe/v27QtM79evn71+woQJIe31t6YPGTIk22XYuHGjV7hwYe/kk08+iDUBEKtFixZ5RYoU8R577DHbb/v27Rvy/MCBA226zu3jfay5+OKLbf9fvHhxYNru3bu9GjVqeHXr1vUOHDgQ83sCyBntmzpXz45/HT948OBs22ZkZHi1a9f2mjRp4u3cuTPLtvGOGxToNNM33njDukjedtttIdOvv/56i6Cr6ySAxKfuTTl11FFHWVeFg1GzZs1A1wafsnSOPfbYiLa626YsYN09A5C3Tj75ZMtaCde9e3f76e+HynBp06ZNRLsjjzzSpiubTg+fMujmzZtnWTHKuv/nn3+sa2V2dI6xa9cuK8UEIP9F+/6ORscInS+orIr2d58y95Wtrwz98GOMSqaMGzcu22VQGx0TrrvuupjXA0Bs9u/fb9f6nTp1smz67Og7fN++fXE51uh48t5771mvHfX08alLto4HKvG0YMGCXL8XgNj8/fff1oMuM4888ohlyt9zzz32t9pmdk6vDNkffvjBeuiUKVPGevXpEU284wYFOmirg6LKH4R3VdRJlw6kHDQByO7du92vv/7q1q5da10dhw0b5ipUqGBdJLOj7tN6vYJBAPKHui9KTvZDtVWdyrJlywamffDBB/ZT3ZzUnVlBG9WhU4mErG7wKoCsh9p36NAhy3q5AOJP9ef1/a39WiWNVNJAVAohnLowqvuiSqXpomv69OlW21bXBT5dgPn18IPpekL7uc4T9H5Z3chR0FbHj0svvTSu6wogeyp58N1337lnnnkm27aNGjWy73Dt8yppoPIFB3OsUXdqHUNUhimcavEL8Qfg0Jg0aZIlaqqUgQKzt9xyi123B99kUdKGrvdffPFFu5GrtrrJohu3qm8fzL9W0PVD69at7ZxAx44TTzzRzZgxI0fLFGvcoEDXtFU9KtWPiJZ1pw9FtSQUfdfFG4Dk1atXLzd58uTA3zp4q25mcFAnMxpkRFk6PXv2zOOlBJBZVs2QIUMsc+6yyy7Lsq1OuFTfUvVugwM1GjRElJ1Tp04d98orr9j5gQYwUlvt4zpO+DTogGpfq/adgjNLliyxAQxVP0vvQc064NAYO3asXYgFZ7foRov2xXC6CbN9+3b7XceLbt26ueeeey6kTYMGDex4oDqVwZly+tvPqFOtu/A6mD4NNrRu3TobrFCZOAAOHe17AwcOtHq2OhasX78+ajud36vWpQK1GnhI+7y+w8855xyrna/9N5ZjjWIPfpwhnD8tsxr5AOLnlFNOsUHMNbCwsul1bq4bOZ9++qnFABWYVdasriE0HoZuxAwYMMA1btzYxrfRIGK6CaNatX4de/9aQecOihWoprVuBisWoJs3Ctxmd/4fa9ygQAdt1bUxs27S/sWa2hC0BZKbTvA0UrQycNQ1Ugdp/8Iuuzt4GmVWXbCCAzoADh2VQPryyy+ti5NGZs3M999/bwFYXTgpGBtMd71Fd9h1DPDPCzT6s8qzaDBEnWD5g5c++uijIa9XOwWMFeS58cYb7b0A5D3texrJXV0aNUCIuiZnlgn7zjvvWLacgiYaiEyDj2rfr1ixYsjxZOrUqe6SSy6xII4GIlu+fLlN1wAm2ZVOUWBHNJghgENL5/L6zr799tuzbBdeOlE0qJD2d92QveiiiyJGmc/JscY/NkSLPwTHHgDkrflhPd+uuuoqy6y/7777LCCrn/65v67/NVigX9JIgw7qpqsGJVMSh87rxW+v44D2f79HjgYb06BimmdWQduDiht4BVjDhg1tsJFoVCRcq793795DvlwAYpfdQGTBYh2IbPTo0TaIwLx58zJtM23aNK9YsWI20Eh2xcgB5I3777/f9vEbbrghy3Zr1671qlevboOQffvttxHPn3vuuTYfDWgW7qqrrrLnVqxYke3yXH311dZ21apVuVwTAPGwZMkS+25+5JFHsm3bo0cPr3Llyt5vv/0WMcCQpmtf1kMDGvXu3du74IIL7G+9RzTbt2/3ihcv7h133HFxWx8AOTN+/HgbgHzu3LkhgwFFG4gsM4MGDbL2M2bMiOlYM2nSJHv9c889F9F++fLl9tw999yT43UCED9///237bOnnXaa/b1w4ULbJ3XN7w9iHnzdoOcuueSSkNiipr3wwgsR827durUdf/744488iRsU6Jq2VatWtTtg0QoE6y67ujaRZQsg3BVXXGE/R48eHfV51cHT4AbqRqnuFHSBBA69QYMGuYceesjuVme2r4q6R6pupbJjZs6c6U444YSINtWqVQuUPQingclyMrCR311Ssqp5CSDvKJNG9eXCyx5Eo+z5n3/+2TJwg6lLpepWKptO9e7U5VnHGE1TWQV1t4zm9ddft2sOsmyBQ0v7nbJr1UVZ3+Pq9qzHhg0bAnUk9feOHTvi9h0e7Vij2ENmJRD8adFKJwDIeykpKYH4YPC5v0qkhGfHRzv3z+5aQTXtg2vmxjNuUKCDts2aNbPR31S/Lpi6Rqk2lUahBoBwqmWpY4fq1EQ78PpdpGbNmmUHegCHPmCrbksKuqg7cvigQcEBW43irJMoBWx1gRWNP2CpP6BZMH+aBjHIjl8WgYEJgfyjsgfRvr+jtZNobYsUKWLlTlSvUvu+grsK4rZp0yZQ3y6cBjLRRaG6YQI4dLQvq4vztGnTrC69/9D3v6j2rP72y5fE6zs8/Fijm8IK/qhkUzjVzRTiD0D+2LNnj53T+/u3fmoAYu3D4WVLop37Z3etoJu65cuXz5O4QYEO2nbv3t0u5FSTKphqVuiDufzyy/Nt2QDkP12ERTNy5MiQkV59ujumOjeqm/nxxx9HHJgB5D2N+q6ArerTasAQv85sOGXYKMNWmTXadzVoWGZ0QqV6trqwU0aub8uWLVbfUgMY+dl1Gm1WJ37hFNBRncz69eu7Y489Ni7rCiB339+qSb1s2bLA97f21+B92qfBRzTgaLTv+nC6iXvrrbfaa1SzLhoNVqIBCbt06ZKjGzwA4kcDgur7N/zhZ8GqhqT+7tq1q9u3b1/UbLiNGze6UaNGuQoVKtgAZbk91ojq4OoYMGfOHDse+HQMUsBYgWM/8AMgb2zPZFyaBx54wPZ/7aM+XUsoQ3bMmDEhbXUsEGXv+zR2hW7oal/WfHza13WjRtccwYMcxzNuUEg1ElwBplEeNVKcNpg2+sqVKy0g06JFCxvhNbOLPQCJY/z48YEuTk8//bRlwt5xxx32d82aNe2A69MgYioOLp9//rnd4dLgArVq1QocE9LT0+13lUhp2bKla9q0qXVXUncJZePpwKq75Xq9Ajn+BZkybnTI1CBE0UaO9ssqAMgbCrLcfPPNdmd8yJAhEd/humveoUMHGyxAI8BqJGnt89EuktQuOJvm+eefd71797buSzpm6DijkzYFbt9//33XsWNHa6eeOp07d7ZAry7AdLGoEzY/gKyTNB1XAOQdnddr3zzjjDPsPEA3UhYtWmSjOSsTVkETZcpqf1V2rAYW0oWTLprUTfmNN96wkaCVrf/yyy+HBFd0vND8dd6g4I7aat4a9VmDEkajgUpUQkEjVOv4ACD/qbeN9uO+fftaPEB0I1fT9B2um6zKfNOxQIEY7f/a31UiJbfHGp/KMOgYoqx7DWqmrtBKGFu6dKllAp911ln5si2AZNG/f3/LbFcQVdcL2q/13awbLc2bN7efqamp1nbXrl02bfXq1e6GG26wa4d58+ZZuSPt8zqnV6DWp3OAoUOH2o2dHj16WJauYou6ZlDcQGVT8iRu4BVw+/bt80aMGOHVrVvXiv9WrVrV69+/v7d79+78XjQAOdSmTZvAgCDhDz0XbNy4cZm21UODEvgGDx7stWzZ0gYsLFq0qJeWlmYFwjWoQHgh8ezmmwSHUyDf9ezZM8t90D8e+IOPZPWINkDh5MmTvebNm3slS5b0Spcu7XXo0CFiQMItW7Z4V1xxhVevXj07ZujYoUHONGDZypUrD9m2AJLZW2+95Z1zzjletWrVbPCvEiVK2D558803exs2bAi027Ztmw1C1KhRI69cuXK2v2pAwvbt23uvvfaad+DAgZD5aoBiDVB29NFH23z1mo4dO3rTp0/PdFn++usvLz093Y4D+/fvz9P1BpBz0QYi04BD1157rQ0qVLZsWTsmaODBbt26efPnz4/5WBNMA5d27drVjgupqaleixYtvJkzZ+bpugL4r6lTp9r3tuJ+2md1Tt+4cWPv4Ycf9jIyMrxwOk/o06ePV6VKFS8lJcWrVauWd++990ZtK2PGjLFzCs1bxxANUrps2bI8jRsU+ExbAAAAAAAAADicUBsAAAAAAAAAABIIQVsAAAAAAAAASCAEbQEAAAAAAAAggRC0BQAAAAAAAIAEQtAWAAAAAAAAABIIQVsAAAAAAAAASCAEbQEAAAAAAAAggRC0BQAAAAAAAIAEQtAWAAAAAAAAABIIQVsAAAAUOOvXr3eFChVygwYNKtDvGYu7777b1apVy/3999/Ztp0zZ46t08svv5yjeb/77ruuWLFi7vvvv4/DkgIAACQvgrYAAAAHYe3ate6GG25wxx13nCtZsqQrV66cq1+/vuvZs6ebPXt2nr63goNTp07N0/dAZGBW2/2bb75xh6N169a5p556yv3rX/+y4GostO7aBtoW4c477zx3wgknWGAYAAAAsSt6EK8FAABIagsXLnRt2rRxKSkp7qqrrnINGjRwGRkZlmX40UcfubS0NNeuXbs8e/8HH3zQgsPnn39+nr0HQilQqe1+9NFHuyZNmoQ8V7NmTfv8ixZN3FPsRx991JUpU8ZdccUVMc9DQVttg7Zt29p2CNevXz/7f7l8+XLbJwAAAJB7iXtGCQAAkOAUuPrrr78siNW4ceOI53/++ed8WS7kD5URKFGihEtUu3btcq+//rq79tpr7UZDXrnwwgvdjTfe6EaPHu2efvrpPHsfAACAgozyCAAAADFSRm2FChWiBmylcuXK9lO1QytWrOhatGgRtd3w4cMt4PfZZ5/Z33v27LHu5/Xq1bOSC2XLlrUu53fddVdI7VR55ZVX7Hf/EWzWrFmuY8eO9noFExs1amSBtHDKllTW5JIlS1z79u1d6dKlXaVKldwdd9zh9u3bZ8tz5513uqOOOsrm07p1a7dy5cocbycFr2+99VZ3zDHHuOLFi9u8O3To4GbOnBnoUq/1VFAx3IIFC2y9Bg8eHDJ98uTJtsxaN71W20rvkZM6rW+99ZZr2bKlZULrtc2bN3eTJk3K9nWq6+pnTvfq1SuwzbUcmdW0DZ42ceJEy85NTU11tWvXduPGjbM2P/74o7voootc+fLlbZmUBbt79+6I99+yZYsFQ2vUqGGlDapWrWqlObZu3epy4oMPPnB//vmnO/vsszOtR3viiSfaZ1y9enX3wAMPuH/++SekjdZD6y7aFv42uPrqqwNt9P+nVatWOdqmAAAAiI5MWwAAgBgde+yxbtWqVe6dd96x7MLMKMCm7uKPPfaYtVeAMdhLL73k6tata8FQ6du3r01TyYXbb7/dAqcKEH/yySf2vALA48ePd1deeaUFxxS4C/f888+7Pn36uFNPPdXdd999rlSpUhYkVdBvzZo1FigOtmnTJgukdu/e3QKIKu/w+OOPW1d/dXNXt/8BAwa4X3/91Y0YMcJKMihwW7hw1jkACloqWP3LL7/Y+px88skWOPzqq68sqKz3vP766917773n3njjDde7d++Q17/44ov2Htdcc01gmtbnkUcecccff7zr37+/q1Kliq2TArkK7mZVq/X+++93Dz/8sOvUqZMbMmSIzXvKlCnu4osvds8884xt+8zo87n33nvtvbXNte3lyCOPdNl5//33LWB+0003WXBW66V10rJqnmeccYbNV0FqffYKnI4dOzbwegV2TzvtNAtKK1NW//d++OEHN2rUKKudrFId6enpWS7Dp59+aj+bNWsW8Zy2Qbdu3SyAr3q3+twVVJ42bVpIO/0/V/BY/7+03KrfLFqeYFrWGTNmuO+++87qPQMAACCXPAAAAMTkiy++8FJSUjydUtWpU8fr1auX99xzz3krVqyIaLtq1Sprd9ddd4VMnzdvnk0fNmxYYFq5cuW8zp07Z/v+el3Pnj0jpm/evNkrXry4d+mll0Y8d+utt3qFCxf21qxZE5hWs2ZNm9fEiRND2jZt2tQrVKiQ17VrV+/AgQOB6U899ZS1nz59erbLqPXIrO3+/fvt5759+7zq1at7zZo1C3n+zz//9MqUKROyLebPn2/za9eunZeRkRHSXsvoL+e6deus3cCBAwPPL1q0yKbdc889Ecty3nnneWlpad6uXbuyXJ/Zs2fbPMaNGxfxXLT39KeVLFnSW79+fWD61q1b7TPS9n3sscdC5nPBBRfY/6vdu3cHpukzqFixordx48aQtgsWLPCKFCkS8p6Zad26tf3fCudv/woVKnjbtm0LTN+xY4dXo0aNiPXV75qmbZGZ8ePHW5tJkyZlu1wAAACIRHkEAACAGCmbcNGiRZZFu3PnTstMVCalMkCVlbl27dpAW2XSatCyV1991TJnfcq4VFaj5uFTxqSyW5ctWxbTcqlb+t69ey0jU5mxwY8uXbq4AwcOWJZrMJU+ULZpMJUQUGz4lltuCSm94GeYKvs3K7/99pubPn26ZbWeddZZEc/7WbpFihSxrFNlmS5dujRkPVQyQevhU01WGTp0aET92GglIoLptXpe2zp8u3Tt2tVKEnz55ZcuLygzWQOV+ZQtrYxrbYPw7F5tX5UlUJay6P+WMnW1jFrn4OVWZqxKLSgzOjvbtm2zLN9w+j+8ceNGK3twxBFHhPw/VLZ2LFQ2RHJaugEAAAChCNoCAAAcBNWaVa1Tdf9XkE01ZhV0mzt3rtVqDa6xqi71aqcAnChIqDqn5557bkgX+yeffNL9/vvvNm91O7/uuuus3qiCrTnh15tVfVoFB4MfKkcgWo5gtWrViphPuXLloj7nT9++fXuWy6Hu+wr6qk5qdhSYVfBWQWyfflf9WwUrfQoUK/CaWR3h7LaLlkfd9cO3ix8YDt8u8aJ6vuG0HVXaQXV+w6cHb1+V1NBnr+0Rvtx66PmcLLe2238TtEP5NxeilTHQDYhY+O+TVRAdAAAAmaOmLQAAQJwok1J1W/1as59//rn7+uuvLWNVVDNUg2Up+KbMSw2IpfquCsoGU7BXAWANHKU6pMqK1Ws0T/2eVc3W4ICZsnoVFMxJEFEB08xk9ly0AGCsNPCVMnJfe+019+9//9tt2LDBBmbTAGgpKSm5yqjNjJZXr/vwww8zXacGDRq4vJDZ+2W13f3t6//UAGXBGdnBNLhZdhTg1WBzh4KyrP33BAAAQO4RtAUAAIgzBQabN29uQduffvopMF0ZlQrqjhw50m3evNkCsSpLoGBlOHVjV5BODwXtNAiYgpnKuA0vYxCuTp069lNd3ZVtm1/UbV/b4ptvvslRe2Uia+CrqVOnusWLF9u04NIIfpkJBV0VfDzllFNytTzaLirXUKNGjcAAWrmVH5mj/nZU1vbBfJ4NGza0mwAqqxBcBsEP4GvQsHArVqyIaRsoy9p/TwAAAOQe5REAAABiNHPmzJD6tL6MjIxAjdHw7uXXX3+9279/v7v77rvdV1995a6++uqQbEs9t2PHjoggmV9iwM9glNKlS4f87bvkkkssQDxw4EBblnCqkaqat3lNgefOnTtbkDW8hm60TN1zzjnHVa1a1Y0ZM8bKTLRo0SKiy/5ll11mP++9996Q0hOZzTOYMqD912o7h8tJiQFtc4m23fOK6sOeffbZ7p133rH/M9HWWfVqs9O2bVv7GT6Pk046yVWrVs1qMiug61M94dGjR8e0DfQeKvmhur0AAADIPTJtAQAAYtS/f3+rO6qaq6o/W7JkSRvQacKECW716tWWVavpwZThqXIJKgOgYKwG4AqmOrcqaaB5KlCrmq7r1q1zo0aNslqnGkjMd+qpp1owdNiwYZY9qvn16NHDAnBqr7ILej8FK1W6QYE9DfSlTFZlUGoQq7z2zDPPuNNPP92Ct+rarwChAsnz58+399ey+/wByR566CH7+5FHHomYn7JrFfDW65o2beq6d+/uKleubNtIA5epHEXZsmWjLkuzZs3coEGD7NGkSRPLWFaQeMuWLTYYl8pRRAsEB1MQPi0tzT333HP2eeu99BmdccYZLi/p89T/Gw1wp/9X+r+hOreqR6vsa03TemVFGd1adq2n6igHb/cnnnjCgv3avrqxoMHxXnrpJQsY//jjjxHbUQOoPfzww1Z7uVSpUlb3WNnl8scff1hN5/D/2wAAAMgFDwAAADGZMWOGd9NNN3mNGjXyKlSo4BUpUsQrX76817ZtW+/FF1/09u/fH/V1r776qtJBvTPOOCPiub1793oDBgzwmjVrZvMqVqyYV7NmTa9Xr17e6tWrQ9rq7w4dOnhpaWk2v/BTu3nz5nnnn3++V7FiRS8lJcWrUqWKLduIESO8jIyMQDvNv02bNhHLMnDgQJvnunXrQqbrb03X8zmxadMmr3fv3l716tVtOSpVqmTLPWvWrIi269ev9woXLmzr9Mcff2Q6zwkTJninn366V7p0aa9kyZJevXr1vH79+tn2y24Z33//fa9jx45euXLlbPtWq1bN69Spkzdq1Kgcrc+0adO8E0880StevLi9h7/tor1nVsuh12nbhxs3bpy9Zvbs2SHTt23b5t15551enTp17L3T09O9hg0berfeequ3fPnyHC37jTfeaP+v/O0UbPLkyV7jxo0D2+T+++/3PvroI1sWLVOwl19+2atfv759nnq+Z8+eIc9p2tKlS3O0TAAAAIhUSP/kJsgLAACAgzNx4kTLEFVG7qWXXprfi5NQlPWqQclUy1ZlEhBfGuBOJSeUAR0+AF68KANaWdQq5wAAAIDYUNMWAADgEHv22WdtIKgLL7wwvxcl4agMgOrNalAyxJ+CqbfddpuVoMiuFEQsVHpj2bJlIWUvAAAAkHtk2gIAABwCW7dudR9//LHV+lRgcujQoW7AgAH5vVgJ480337TaqRo8rU2bNm769On5vUgAAABAviFoCwAAcAjMmTPHtWvXzgau0mBhI0eOdCkpKfm9WAlDg6iVKFHCtWrVyo0bN84dddRR+b1IAAAAQL4haAsAAAAAAAAACYSatgAAAAAAAACQQAjaAgAAAAAAAEACIWgLAAAAAAAAAAmEoC0AAAAAAAAAJBCCtgAAAAAAAACQQAjaAgAAAAAAAEACIWgLAAAAAAAAAAmEoC0AAAAAAAAAuMTx/4Jt4xh62Db4AAAAAElFTkSuQmCC", + "image/png": "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AAAAsuXw4cPm6NGjAbdt377dFClSJGbLBACIXIUKFUwsUWkLAAAAAAAAAB5CaAsAAAAAAAAAHuKZ9ggAAACIDcdxzJIlS9JdzgsAiNzx48fN/v37A25bvHixKViwYMyWCQDyi2bNmsVNuxlCWwAAgDincGHlypWxXgwAyLfWrFkT60UAgHyhUqVKpkaNGiYe0B4BAAAgzv3777+xXgQAAAAgS//G0X4roS0AAECc27dvX6wXAQAAAMjS3r17TbwgtAUAAIhzwb0XAQAAAC86ePCgiReEtgAAAHEunnZ+AQAAcPI6cOCAiReEtgAAAHEuLS0t1osAAAAAZCktjvZbCW0BAADiXDzt/AIAAODkdejQIXPixAkTDwhtAQAA4px2fgEAAICTweHDh008ILQFAACIc4S2AAAAOFkcipN9V0JbAACAOHbs2DH7BQAAAJwMDsdJpW2h7M5g06ZNZty4cWbevHn251NOOcXUqFHDdO3a1QwaNMiULFkyZ5YUAAAAOS5ednoBICe89957ZtWqVfbncuXKmQEDBsR0eb7//nszf/583/+HDh1qihUr5rnlzMnXBgCH4qTSNluh7TfffGO6detmdu/ebU4//XQb1GogizVr1pjRo0ebyy67zDRq1CjnlhYAAAA5Kl52egGEb8WKFeb999+3P/ft29ekpKQE3O84jpkwYYLZu3evqVWrlundu7eJJ0lJSebiiy82RYsWDTgB9t1335nNmzebv/76y25bdTzcuHHjiOcfybxq1qxpl+fXX3+1x+FZLads377dLFy40GzZssXs37/fJCYm2mC3devWpk6dOgHT7tq1y3z55Zfmzz//tMf6pUqVMmeffbZp1aqVKVy4cMC0umpjwYIFNizWMp922mmmQ4cO5owzzsjx1wYgvh2Kk/3XqEPbf/75x1xxxRU2sFWl7b333msKFCgQcFasUqVKObWcAAAAyAVU2gLISKFChcxPP/2ULrTduHGjDWwLFixo4pFCzoYNGwbcdvDgQfPVV1/ZULNChQp2HUUrknkpbNWXjs+Dg81Qyyk6hte2XwVWJUqUMEePHjW//PKLef31182ll15qmjZtaqfbs2ePefHFF02RIkVM8+bN7VW1ClsV+G7dutVce+21AfOdM2eOnU/Lli1N2bJlzcqVK81rr71m+vTp4/sbyqnXBiC+HTlyxMSDqEPbl156yezYscN06tTJDBkyJN395557ru/nZcuWmYkTJ9ozauvXrzcjRowwjzzySPRLDQAAgBxBaAsgI6qiVQjXuXPngIBWQW7FihVtAHeyH/QHV4tGS+Hn4MGD7XdVkCrs9MK8Qqldu7b98qdQdsqUKbb4yg1t3YrZm266yZQvX97epvtUaa37VHmrIFcU5q5evdpcdNFFtmJXFBhPmjTJfPbZZ+aWW27Jk9cGID4cjpP916hD288//9x+79evX5bTLlq0yCxevNicd955ZufOndE+JQAAAHJYvOz0Aohc/fr17aXpGzZssAGuewm8gtzzzz/f/PDDD+keowpcXU7/22+/2cBPFZcq6GnSpElApee3335rUlNTbTWnKkKrV69uA78yZcoEbJ80L1VZ6jJ+VXyqOvPCCy/0XdWp3q2q1tR4Kv50mb4qOtW2z////fv3N19//bX5/fffTenSpc3tt98e9nJnVZWsIDIn5OS8wqWrZlX9qiA1+PMhuI9s8eLFTUJCQkCQr78J3XbOOef4btPvVevviy++sL9nzT8Wrw1A/nOI9giZ06Bj4t+fJiN33XWXufvuu+3P6n0LAAAAb4iXy8sARE6hZtWqVW1lrRvaKuxUmKdANzi0VbCqKzLdyk31I9X0H3zwgX2MezWmgkEdT2oeGrhaIe7SpUvN9OnT7YBZbvXr3LlzbRioeekyeVX2qreqCoGibcX31ltv2UD2ggsusBWjkSx3ftz+qzWCXuPatWttYK3fiUvH7irA0npo166dXS/6velK2hYtWgRUKW/bts0kJyen659buXJl3/0KbQEgJxyJk/3XbA1EFi7/XrcAAADwDiptAWRGg07pKkuFe6qc/PHHH21/UoWtwVRReeLECVvNqoBPmjVrZt5++23bB1WX1mseujS/Xr16AY/VbVOnTrWVvW4f1nXr1tlKTQ2mlVM0ONaVV14Z1XLnN/PnzzfLly+3P6tKtm7duuaSSy7x3a+gvn379nYAcoW6rjZt2tjQ29++fftCVtCqKte9HwByyuE42X+NOk3VGVdRj1oAAACcnHSgDgAZUbiqlggKUHWQrO8KcoOpalWBa506dezPBw4c8H3p6kw9VoNXiX8Aevz4cVtBq+pXVWm604j+r6pctS7IKW6/1miWO7/RgGHXX3+96d69u6lZs6YNrvX7CK62VkjftWtXc/XV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NGAavQ69dtG6cNfBjTfe6JtGfz9t2rQJa50CAAAgPSptAQAAsuGMM84wa9euNe+++66tLsyIAjZdLj5+/Hg7vQJGfy+//LKpXbu2DUNlwIAB9ja1XLj33nttcKqA+Msvv7T3KwCeOXOmuf766204puAu2AsvvGBuv/1207JlSzNixAhTrFgxG5Iq9Fu/fr0Niv1t3rzZBqk9e/a0AaLaOzz55JP2Un9d5q7L/ocNG2Z27txpnnjiCduSQcFtgQKZ1wEotFRY/ffff9vX07RpUxscLl682IbKes5bb73VfPDBB+b11183/fr1C3j81KlT7XPcdNNNvtv0eh599FFz1llnmUGDBpmKFSva16QgV+FuZr1aR44cacaMGWM6depkHn74YTvv9957z1x11VXm2Weftes+I/r9DB8+3D631rnWvZx22mkmK3PnzrWBef/+/W04q9el16Rl1Tw7dOhg56uQWr97BacvvfSS7/EKds8991wbSqtSVn97v//+u5k8ebLtnaxWHaVKlcp0Gb766iv7vVmzZunu0zq44oorbICvfrf6vStU/uijjwKm09+5wmP9fWm51b9ZtDz+tKzz5883a9assf2eAQAAEAEHAAAAUfvuu++cxMRER7tVtWrVcvr27etMmjTJ+eWXX9JNu3btWjvd0KFDA27/9ttv7e1jx4713VamTBmnc+fOWT6/HtenT590t2/ZssUpUqSIc+2116a7b+DAgU6BAgWc9evX+25LSUmx85o9e3bAtE2aNHESEhKcbt26OSdOnPDd/vTTT9vp582bl+Uy6nVkNO3x48ft92PHjjlVq1Z1mjVrFnD/gQMHnJIlSwasix9++MHOr3379k5aWlrA9FpGdzlTU1PtdKNGjfLdv3z5cnvb/fffn25ZLrvsMqdEiRLO3r17M309CxYssPOYNm1auvtCPad7W1JSkrNx40bf7du3b7e/I63f8ePHB8ynR48e9u9q3759vtv0OyhXrpyzadOmgGmXLl3qFCxYMOA5M3L++efbv61g7vpPTk52duzY4bt99+7dTrVq1dK9Xv2s27QuMjJz5kw7zdtvv53lcgEAACAQ7REAAACyQdWEy5cvt1W0e/bssZWJqqRUBaiqMjds2OCbVpW0GrRsxowZtnLWpYpLVTVqHi5VTKq6dfXq1VEtly5LP3z4sK3IVGWs/1fXrl3N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", "text/plain": [ "
" ] }, - "execution_count": 6, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -137,7 +130,6 @@ }, { "cell_type": "markdown", - "id": "510d563b-ead4-42ae-9ae8-0f9c47461b13", "metadata": {}, "source": [ "You can create custom generator or layout functions and update an existing stylesheet with the custom functions. This way, you can control the most of the appearance of the output image without modifying the codebase of the scheduled circuit drawer. See the [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) API reference for more examples." @@ -145,7 +137,6 @@ }, { "cell_type": "markdown", - "id": "e340a1e4-4416-460c-a2a9-a572d3873bf8", "metadata": {}, "source": [ "## Qiskit Runtime support\n", @@ -155,7 +146,6 @@ }, { "cell_type": "markdown", - "id": "9928291a-8a3f-443b-b47d-4d5c87ee724b", "metadata": {}, "source": [ "### Enable timing data retrieval\n", @@ -165,18 +155,26 @@ }, { "cell_type": "code", - "execution_count": null, - "id": "1bf38969-6fbd-4980-95b7-7626e76c8ba7", + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "c:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\fake_provider\\local_service.py:269: UserWarning: Options {'execution': {'scheduler_timing': True}} have no effect in local testing mode.\n", - " warnings.warn(f\"Options {options_copy} have no effect in local testing mode.\")\n", - "c:\\1docs\\.venv\\Lib\\site-packages\\qiskit\\providers\\fake_provider\\generic_backend_v2.py:348: RuntimeWarning: Aer not found using BasicSimulator and no noise\n", - " warnings.warn(\"Aer not found using BasicSimulator and no noise\", RuntimeWarning)\n" + "management.get:WARNING:2025-10-09 14:47:33,541: Loading default saved account\n" + ] + }, + { + "ename": "IBMInputValueError", + "evalue": "'The given API token is associated with an account that does not have access to the instance crn:v1:bluemix:public:quantum-computing:us-east:a/6c63dae5281147f1a0449b36e0aaba3a:cbf14cbc-4b63-4698-868e-8bb92dbcc8f4::. To use this instance, use an API token generated from the account with this instance available.'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mIBMInputValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[4], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mqiskit_ibm_runtime\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m QiskitRuntimeService, SamplerV2\n\u001b[1;32m----> 3\u001b[0m service \u001b[38;5;241m=\u001b[39m \u001b[43mQiskitRuntimeService\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m backend \u001b[38;5;241m=\u001b[39m service\u001b[38;5;241m.\u001b[39mleast_busy(operational\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, simulator\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[0;32m 6\u001b[0m pm \u001b[38;5;241m=\u001b[39m generate_preset_pass_manager(backend\u001b[38;5;241m=\u001b[39mbackend, optimization_level\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n", + "File \u001b[1;32mc:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\qiskit_runtime_service.py:234\u001b[0m, in \u001b[0;36mQiskitRuntimeService.__init__\u001b[1;34m(self, channel, token, url, filename, name, instance, proxies, verify, private_endpoint, url_resolver, region, plans_preference, tags)\u001b[0m\n\u001b[0;32m 232\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_account\u001b[38;5;241m.\u001b[39minstance:\n\u001b[0;32m 233\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_account\u001b[38;5;241m.\u001b[39minstance \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m [inst[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcrn\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m inst \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minstances()]:\n\u001b[1;32m--> 234\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m IBMInputValueError(\n\u001b[0;32m 235\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe given API token is associated with an account that does not have access to \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 236\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mthe instance \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_account\u001b[38;5;241m.\u001b[39minstance\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 237\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTo use this instance, use an API token generated from the account \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 238\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwith this instance available.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 239\u001b[0m )\n\u001b[0;32m 240\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_default_instance \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[0;32m 241\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_api_clients \u001b[38;5;241m=\u001b[39m {\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_account\u001b[38;5;241m.\u001b[39minstance: RuntimeClient(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_client_params)}\n", + "\u001b[1;31mIBMInputValueError\u001b[0m: 'The given API token is associated with an account that does not have access to the instance crn:v1:bluemix:public:quantum-computing:us-east:a/6c63dae5281147f1a0449b36e0aaba3a:cbf14cbc-4b63-4698-868e-8bb92dbcc8f4::. To use this instance, use an API token generated from the account with this instance available.'" ] } ], @@ -201,7 +199,6 @@ }, { "cell_type": "markdown", - "id": "c2e38cc2-c36d-4422-8351-5f22175442c0", "metadata": {}, "source": [ "### Access the circuit timing data\n", @@ -213,22 +210,9 @@ }, { "cell_type": "code", - "execution_count": 8, - "id": "0e641e1e-5527-46cf-9fcd-d983098278f6", + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "KeyError", - "evalue": "'compilation'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[8], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m job_result \u001b[38;5;241m=\u001b[39m sampler_job\u001b[38;5;241m.\u001b[39mresult()\n\u001b[1;32m----> 2\u001b[0m circuit_schedule \u001b[38;5;241m=\u001b[39m \u001b[43mjob_result\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmetadata\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcompilation\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mscheduler_timing\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 3\u001b[0m circuit_schedule_timing \u001b[38;5;241m=\u001b[39m circuit_schedule[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtiming\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n", - "\u001b[1;31mKeyError\u001b[0m: 'compilation'" - ] - } - ], + "outputs": [], "source": [ "job_result = sampler_job.result()\n", "circuit_schedule = job_result[0].metadata[\"compilation\"][\"scheduler_timing\"]\n", @@ -237,7 +221,6 @@ }, { "cell_type": "markdown", - "id": "2e494c0b-768a-49f1-bbe1-bb984ff2951c", "metadata": {}, "source": [ "### Visualize the timings\n", @@ -248,7 +231,6 @@ { "cell_type": "code", "execution_count": null, - "id": "67bcc7ef-0ed5-49ef-a2c0-5e365298c8da", "metadata": {}, "outputs": [], "source": [ @@ -272,7 +254,6 @@ }, { "cell_type": "markdown", - "id": "c5979bec-17ec-49e8-805c-cf6ea17d8eb6", "metadata": {}, "source": [ "For more information about the `plotly` commands, see [`fig.show()`](https://plotly.com/python-api-reference/generated/plotly.io.show.html) and [`fig.write_image(\"\")`.](https://plotly.com/python-api-reference/generated/plotly.io.write_image.html)" @@ -280,7 +261,6 @@ }, { "cell_type": "markdown", - "id": "8d94c816-aaab-45d9-a2cb-f8dafb532d66", "metadata": {}, "source": [ "### Understand the raw timing data\n", @@ -308,7 +288,6 @@ }, { "cell_type": "markdown", - "id": "0ce5c709-1b73-40f9-8faa-650523fcc689", "metadata": {}, "source": [ "### Understand the generated figure\n", @@ -327,7 +306,6 @@ }, { "cell_type": "markdown", - "id": "720329ad-143c-4332-b1c3-ff09734b4ac3", "metadata": {}, "source": [ "### End-to-end example\n", @@ -340,7 +318,6 @@ { "cell_type": "code", "execution_count": null, - "id": "716ead7d-df51-441a-9b3f-be0c2c43c25d", "metadata": {}, "outputs": [], "source": [ @@ -382,7 +359,6 @@ }, { "cell_type": "markdown", - "id": "1d3c12ac-6ad8-4841-bbdc-915c36274389", "metadata": {}, "source": [ "Next, get the circuit schedule timing:" @@ -391,7 +367,6 @@ { "cell_type": "code", "execution_count": null, - "id": "c1b825a5-f8d5-45ce-ac11-cedcd1f73241", "metadata": {}, "outputs": [], "source": [ @@ -401,7 +376,6 @@ }, { "cell_type": "markdown", - "id": "bb3fe68b-3fe3-4478-b452-e4c22db71915", "metadata": {}, "source": [ "Finally, you can visualize and save the timing:" @@ -410,7 +384,6 @@ { "cell_type": "code", "execution_count": null, - "id": "d6961531-4ef5-4320-959c-39e35b6f6158", "metadata": {}, "outputs": [], "source": [ @@ -435,13 +408,13 @@ }, { "cell_type": "markdown", - "id": "db40cea1-9fa5-4be2-b4a1-89f7dd2880bb", "metadata": {}, "source": [ "## Next steps\n", "\n", "\n", - " - Related information\n", + " - [Classical feedforward and control flow](/docs/guides/classical-feedforward-and-control-flow) (dynamic circuits)\n", + " - [Visucalize circuits](/docs/guides/Visualize circuits)\n", "" ] } @@ -449,7 +422,7 @@ "metadata": { "description": "Visualize scheduling on a circuit by using the Qiskit timeline_drawer method.", "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -463,7 +436,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3" + "version": "3.12.2" }, "title": "Visualize circuit timing" }, diff --git a/scripts/nb-tester/requirements.txt b/scripts/nb-tester/requirements.txt index 72f77928d0a..79d3dde41a3 100644 --- a/scripts/nb-tester/requirements.txt +++ b/scripts/nb-tester/requirements.txt @@ -20,6 +20,7 @@ scipy~=1.16.1 scikit-learn~=1.7.2 pyscf~=2.10.0; sys.platform != 'win32' python-sat~=1.8.dev23 +plotly~=6.3.1 gem-suite~=0.1.6 ffsim~=0.0.58; sys.platform != 'win32' sympy~=1.14.0 From f21503f7a1157c813886693f6c6474fa3238ad8a Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Fri, 10 Oct 2025 08:31:51 -0500 Subject: [PATCH 30/33] There's only one circuit --- docs/guides/visualize-circuit-timing.ipynb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index a67f549c40e..213c711da61 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -343,11 +343,10 @@ "# Generate samplers for backend targets\n", "sampler = SamplerV2(backend)\n", "sampler.options.experimental = {\n", - " \"execution\": {\"scheduler_timing\": True},\n", - "}\n", + " \"execution\": {\"scheduler_timing\": True}}\n", "\n", "# Submit jobs\n", - "sampler_job = sampler.run(isa_circuit)\n", + "sampler_job = sampler.run([isa_circuit])\n", "\n", "print(\n", " f\">>> {' Job ID:':<10} {sampler_job.job_id()} ({sampler_job.status()})\"\n", @@ -414,7 +413,7 @@ "\n", "\n", " - [Classical feedforward and control flow](/docs/guides/classical-feedforward-and-control-flow) (dynamic circuits)\n", - " - [Visucalize circuits](/docs/guides/Visualize circuits)\n", + " - [Visualize circuits](/docs/guides/Visualize circuits)\n", "" ] } From deb232f3e4ef49a6e77067fa48617fcbbbb3fcdb Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Fri, 10 Oct 2025 14:53:12 -0500 Subject: [PATCH 31/33] WOO HOO!! IT WORKSSSS --- docs/guides/scheduler_timing.html | 3888 +++++++++++++++++++ docs/guides/visualize-circuit-timing.ipynb | 4024 +++++++++++++++++++- 2 files changed, 7885 insertions(+), 27 deletions(-) create mode 100644 docs/guides/scheduler_timing.html diff --git a/docs/guides/scheduler_timing.html b/docs/guides/scheduler_timing.html new file mode 100644 index 00000000000..38e0d454e04 --- /dev/null +++ b/docs/guides/scheduler_timing.html @@ -0,0 +1,3888 @@ + + + +
+
+ + \ No newline at end of file diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 213c711da61..854775e30bc 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -155,26 +155,20 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "management.get:WARNING:2025-10-09 14:47:33,541: Loading default saved account\n" - ] - }, - { - "ename": "IBMInputValueError", - "evalue": "'The given API token is associated with an account that does not have access to the instance crn:v1:bluemix:public:quantum-computing:us-east:a/6c63dae5281147f1a0449b36e0aaba3a:cbf14cbc-4b63-4698-868e-8bb92dbcc8f4::. To use this instance, use an API token generated from the account with this instance available.'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mIBMInputValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[4], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mqiskit_ibm_runtime\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m QiskitRuntimeService, SamplerV2\n\u001b[1;32m----> 3\u001b[0m service \u001b[38;5;241m=\u001b[39m \u001b[43mQiskitRuntimeService\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m backend \u001b[38;5;241m=\u001b[39m service\u001b[38;5;241m.\u001b[39mleast_busy(operational\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, simulator\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[0;32m 6\u001b[0m pm \u001b[38;5;241m=\u001b[39m generate_preset_pass_manager(backend\u001b[38;5;241m=\u001b[39mbackend, optimization_level\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n", - "File \u001b[1;32mc:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\qiskit_runtime_service.py:234\u001b[0m, in \u001b[0;36mQiskitRuntimeService.__init__\u001b[1;34m(self, channel, token, url, filename, name, instance, proxies, verify, private_endpoint, url_resolver, region, plans_preference, tags)\u001b[0m\n\u001b[0;32m 232\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_account\u001b[38;5;241m.\u001b[39minstance:\n\u001b[0;32m 233\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_account\u001b[38;5;241m.\u001b[39minstance \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m [inst[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcrn\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m inst \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minstances()]:\n\u001b[1;32m--> 234\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m IBMInputValueError(\n\u001b[0;32m 235\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe given API token is associated with an account that does not have access to \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 236\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mthe instance \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_account\u001b[38;5;241m.\u001b[39minstance\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 237\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTo use this instance, use an API token generated from the account \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 238\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwith this instance available.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 239\u001b[0m )\n\u001b[0;32m 240\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_default_instance \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[0;32m 241\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_api_clients \u001b[38;5;241m=\u001b[39m {\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_account\u001b[38;5;241m.\u001b[39minstance: RuntimeClient(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_client_params)}\n", - "\u001b[1;31mIBMInputValueError\u001b[0m: 'The given API token is associated with an account that does not have access to the instance crn:v1:bluemix:public:quantum-computing:us-east:a/6c63dae5281147f1a0449b36e0aaba3a:cbf14cbc-4b63-4698-868e-8bb92dbcc8f4::. To use this instance, use an API token generated from the account with this instance available.'" + "management.get:WARNING:2025-10-10 13:16:20,443: Loading default saved account\n", + "qiskit_runtime_service.__init__:WARNING:2025-10-10 13:16:27,865: Instance was not set at service instantiation. Free and trial plan instances will be prioritized. Based on the following filters: (tags: None, region: us-east, eu-de), and available plans: (premium, internal), the available account instances are: Documentation premium fleet, Documentation internal fleet, Documentation premium fleet, Documentation internal fleet. If you need a specific instance set it explicitly either by using a saved account with a saved default instance or passing it in directly to QiskitRuntimeService().\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:16:29,034: Loading instance: Documentation premium fleet, plan: premium\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:16:30,879: Loading instance: Documentation internal fleet, plan: internal\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:16:31,477: Loading instance: Documentation premium fleet, plan: premium\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:16:33,163: Loading instance: Documentation internal fleet, plan: internal\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:16:40,307: Using instance: Documentation premium fleet, plan: premium\n" ] } ], @@ -210,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -230,9 +224,3938 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing\n", "\n", @@ -317,9 +4240,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "management.get:WARNING:2025-10-10 13:16:49,033: Loading default saved account\n", + "qiskit_runtime_service.__init__:WARNING:2025-10-10 13:16:55,464: Instance was not set at service instantiation. Free and trial plan instances will be prioritized. Based on the following filters: (tags: None, region: us-east, eu-de), and available plans: (premium, internal), the available account instances are: Documentation premium fleet, Documentation internal fleet, Documentation premium fleet, Documentation internal fleet. If you need a specific instance set it explicitly either by using a saved account with a saved default instance or passing it in directly to QiskitRuntimeService().\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:16:56,781: Loading instance: Documentation premium fleet, plan: premium\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:16:58,681: Loading instance: Documentation internal fleet, plan: internal\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:16:59,473: Loading instance: Documentation premium fleet, plan: premium\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:17:01,483: Loading instance: Documentation internal fleet, plan: internal\n", + "qiskit_runtime_service.backends:WARNING:2025-10-10 13:17:07,156: Using instance: Documentation premium fleet, plan: premium\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">>> Job ID: d3kkr9a9vnss73d7h770 (QUEUED)\n", + ">>> Job: d3kkr9a9vnss73d7h770 finished with:\n", + "PrimitiveResult([SamplerPubResult(data=DataBin(meas=BitArray()), metadata={'circuit_metadata': {}, 'compilation': {'scheduler_timing': {'timing': 'main,barrier,Qubit 0,0,0,barrier\\nmain,barrier,Qubit 1,0,0,barrier\\nmain,INIT_0,Qubit 0,80,20000,play\\nmain,INIT_0,Qubit 0,72,20000,play\\nmain,INIT_1,Qubit 1,80,20000,play\\nmain,INIT_1,Qubit 1,72,20000,play\\nmain,barrier,Qubit 0,20080,0,barrier\\nmain,barrier,Qubit 1,20080,0,barrier\\nmain,rz_0,Qubit 1,20080,0,shift_phase\\nmain,rz_0,Qubit 14,20080,0,shift_phase\\nmain,rz_0,Qubit 0,20080,0,shift_phase\\nmain,sx_0,Qubit 0,20080,120,play\\nmain,sx_0,Qubit 1,20200,0,shift_phase\\nmain,sx_0,Qubit 14,20200,0,shift_phase\\nmain,sx_0,Qubit 0,20200,0,shift_phase\\nmain,rz_1,Qubit 2,20080,0,shift_phase\\nmain,rz_1,Qubit 1,20080,0,shift_phase\\nmain,rz_1,Qubit 0,20080,0,shift_phase\\nmain,sx_1,Qubit 1,20080,120,play\\nmain,sx_1,Qubit 2,20200,0,shift_phase\\nmain,sx_1,Qubit 1,20200,0,shift_phase\\nmain,sx_1,Qubit 0,20200,0,shift_phase\\nmain,rz_1,Qubit 2,20200,0,shift_phase\\nmain,rz_1,Qubit 1,20200,0,shift_phase\\nmain,rz_1,Qubit 0,20200,0,shift_phase\\nmain,ecr_1_0,Qubit 0,20200,600,play\\nmain,ecr_1_0,Qubit 1,20200,600,play\\nmain,ecr_1_0,Qubit 1,20800,120,play\\nmain,ecr_1_0,Qubit 0,20920,600,play\\nmain,ecr_1_0,Qubit 1,20920,600,play\\nmain,rz_0,Qubit 1,21520,0,shift_phase\\nmain,rz_0,Qubit 14,21520,0,shift_phase\\nmain,rz_0,Qubit 0,21520,0,shift_phase\\nmain,sx_0,Qubit 0,21520,120,play\\nmain,sx_0,Qubit 1,21640,0,shift_phase\\nmain,sx_0,Qubit 14,21640,0,shift_phase\\nmain,sx_0,Qubit 0,21640,0,shift_phase\\nmain,rz_0,Qubit 1,21640,0,shift_phase\\nmain,rz_0,Qubit 14,21640,0,shift_phase\\nmain,rz_0,Qubit 0,21640,0,shift_phase\\nmain,rz_1,Qubit 2,21520,0,shift_phase\\nmain,rz_1,Qubit 1,21520,0,shift_phase\\nmain,rz_1,Qubit 0,21520,0,shift_phase\\nmain,sx_1,Qubit 1,21520,120,play\\nmain,sx_1,Qubit 2,21640,0,shift_phase\\nmain,sx_1,Qubit 1,21640,0,shift_phase\\nmain,sx_1,Qubit 0,21640,0,shift_phase\\nmain,rz_1,Qubit 2,21640,0,shift_phase\\nmain,rz_1,Qubit 1,21640,0,shift_phase\\nmain,rz_1,Qubit 0,21640,0,shift_phase\\nmain,barrier,Qubit 0,21640,0,barrier\\nmain,barrier,Qubit 1,21640,0,barrier\\nmain,measure_0,Qubit 0,21640,1440,play\\nmain,measure_0,AWGRM_4,22528,1600,capture\\nmain,measure_1,Qubit 1,21640,1440,play\\nmain,measure_1,AWGRC_8,22528,1600,capture\\n'}, 'stretch_values': None}})], metadata={'execution': {'execution_spans': ExecutionSpans([DoubleSliceSpan()])}, 'version': 2})\n" + ] + } + ], "source": [ "from qiskit_ibm_runtime import SamplerV2\n", "from qiskit.circuit import QuantumCircuit\n", @@ -342,8 +4288,7 @@ "\n", "# Generate samplers for backend targets\n", "sampler = SamplerV2(backend)\n", - "sampler.options.experimental = {\n", - " \"execution\": {\"scheduler_timing\": True}}\n", + "sampler.options.experimental = {\"execution\": {\"scheduler_timing\": True}}\n", "\n", "# Submit jobs\n", "sampler_job = sampler.run([isa_circuit])\n", @@ -365,9 +4310,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'main,barrier,Qubit 0,0,0,barrier\\nmain,barrier,Qubit 1,0,0,barrier\\nmain,INIT_0,Qubit 0,80,20000,play\\nmain,INIT_0,Qubit 0,72,20000,play\\nmain,INIT_1,Qubit 1,80,20000,play\\nmain,INIT_1,Qubit 1,72,20000,play\\nmain,barrier,Qubit 0,20080,0,barrier\\nmain,barrier,Qubit 1,20080,0,barrier\\nmain,rz_0,Qubit 1,20080,0,shift_phase\\nmain,rz_0,Qubit 14,20080,0,shift_phase\\nmain,rz_0,Qubit 0,20080,0,shift_phase\\nmain,sx_0,Qubit 0,20080,120,play\\nmain,sx_0,Qubit 1,20200,0,shift_phase\\nmain,sx_0,Qubit 14,20200,0,shift_phase\\nmain,sx_0,Qubit 0,20200,0,shift_phase\\nmain,rz_1,Qubit 2,20080,0,shift_phase\\nmain,rz_1,Qubit 1,20080,0,shift_phase\\nmain,rz_1,Qubit 0,20080,0,shift_phase\\nmain,sx_1,Qubit 1,20080,120,play\\nmain,sx_1,Qubit 2,20200,0,shift_phase\\nmain,sx_1,Qubit 1,20200,0,shift_phase\\nmain,sx_1,Qubit 0,20200,0,shift_phase\\nmain,rz_1,Qubit 2,20200,0,shift_phase\\nmain,rz_1,Qubit 1,20200,0,shift_phase\\nmain,rz_1,Qubit 0,20200,0,shift_phase\\nmain,ecr_1_0,Qubit 0,20200,600,play\\nmain,ecr_1_0,Qubit 1,20200,600,play\\nmain,ecr_1_0,Qubit 1,20800,120,play\\nmain,ecr_1_0,Qubit 0,20920,600,play\\nmain,ecr_1_0,Qubit 1,20920,600,play\\nmain,rz_0,Qubit 1,21520,0,shift_phase\\nmain,rz_0,Qubit 14,21520,0,shift_phase\\nmain,rz_0,Qubit 0,21520,0,shift_phase\\nmain,sx_0,Qubit 0,21520,120,play\\nmain,sx_0,Qubit 1,21640,0,shift_phase\\nmain,sx_0,Qubit 14,21640,0,shift_phase\\nmain,sx_0,Qubit 0,21640,0,shift_phase\\nmain,rz_0,Qubit 1,21640,0,shift_phase\\nmain,rz_0,Qubit 14,21640,0,shift_phase\\nmain,rz_0,Qubit 0,21640,0,shift_phase\\nmain,rz_1,Qubit 2,21520,0,shift_phase\\nmain,rz_1,Qubit 1,21520,0,shift_phase\\nmain,rz_1,Qubit 0,21520,0,shift_phase\\nmain,sx_1,Qubit 1,21520,120,play\\nmain,sx_1,Qubit 2,21640,0,shift_phase\\nmain,sx_1,Qubit 1,21640,0,shift_phase\\nmain,sx_1,Qubit 0,21640,0,shift_phase\\nmain,rz_1,Qubit 2,21640,0,shift_phase\\nmain,rz_1,Qubit 1,21640,0,shift_phase\\nmain,rz_1,Qubit 0,21640,0,shift_phase\\nmain,barrier,Qubit 0,21640,0,barrier\\nmain,barrier,Qubit 1,21640,0,barrier\\nmain,measure_0,Qubit 0,21640,1440,play\\nmain,measure_0,AWGRM_4,22528,1600,capture\\nmain,measure_1,Qubit 1,21640,1440,play\\nmain,measure_1,AWGRC_8,22528,1600,capture\\n'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Get the circuit schedule timing\n", "result[0].metadata[\"compilation\"][\"scheduler_timing\"][\"timing\"]" @@ -384,14 +4340,28 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "TypeError", + "evalue": "CircuitSchedule expects a str.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[11], line 8\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mqiskit_ibm_runtime\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mvisualization\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m draw_circuit_schedule_timing\n\u001b[0;32m 3\u001b[0m circuit_schedule \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m 4\u001b[0m result[\u001b[38;5;241m0\u001b[39m]\n\u001b[0;32m 5\u001b[0m \u001b[38;5;241m.\u001b[39mmetadata[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompilation\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mscheduler_timing\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtiming\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 6\u001b[0m \u001b[38;5;241m.\u001b[39msplit(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 7\u001b[0m )\n\u001b[1;32m----> 8\u001b[0m fig \u001b[38;5;241m=\u001b[39m \u001b[43mdraw_circuit_schedule_timing\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mcircuit_schedule\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcircuit_schedule\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43mincluded_channels\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilter_readout_channels\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 12\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilter_barriers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 13\u001b[0m \u001b[43m \u001b[49m\u001b[43mwidth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1000\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 14\u001b[0m \u001b[43m)\u001b[49m\n\u001b[0;32m 16\u001b[0m \u001b[38;5;66;03m# Display the figure\u001b[39;00m\n\u001b[0;32m 17\u001b[0m fig\u001b[38;5;241m.\u001b[39mshow(renderer\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnotebook\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[1;32mc:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\visualization\\draw_circuit_schedule_timings.py:51\u001b[0m, in \u001b[0;36mdraw_circuit_schedule_timing\u001b[1;34m(circuit_schedule, included_channels, filter_readout_channels, filter_barriers, width)\u001b[0m\n\u001b[0;32m 48\u001b[0m fig \u001b[38;5;241m=\u001b[39m go\u001b[38;5;241m.\u001b[39mFigure(layout\u001b[38;5;241m=\u001b[39mgo\u001b[38;5;241m.\u001b[39mLayout(width\u001b[38;5;241m=\u001b[39mwidth))\n\u001b[0;32m 50\u001b[0m \u001b[38;5;66;03m# Get the scheduling data\u001b[39;00m\n\u001b[1;32m---> 51\u001b[0m schedule \u001b[38;5;241m=\u001b[39m \u001b[43mCircuitSchedule\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 52\u001b[0m \u001b[43m \u001b[49m\u001b[43mcircuit_schedule\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcircuit_schedule\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 53\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 55\u001b[0m \u001b[38;5;66;03m# Process and filter\u001b[39;00m\n\u001b[0;32m 56\u001b[0m schedule\u001b[38;5;241m.\u001b[39mpreprocess(\n\u001b[0;32m 57\u001b[0m included_channels\u001b[38;5;241m=\u001b[39mincluded_channels,\n\u001b[0;32m 58\u001b[0m filter_awgr\u001b[38;5;241m=\u001b[39mfilter_readout_channels,\n\u001b[0;32m 59\u001b[0m filter_barriers\u001b[38;5;241m=\u001b[39mfilter_barriers,\n\u001b[0;32m 60\u001b[0m )\n", + "File \u001b[1;32mc:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\utils\\circuit_schedule.py:75\u001b[0m, in \u001b[0;36mCircuitSchedule.__init__\u001b[1;34m(self, circuit_schedule)\u001b[0m\n\u001b[0;32m 72\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtype_to_idx: Dict[\u001b[38;5;28mstr\u001b[39m, \u001b[38;5;28mint\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 73\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcircuit_scheduling \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m---> 75\u001b[0m raw_data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_load\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcircuit_schedule\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 76\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_parse(raw_data)\n\u001b[0;32m 78\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minstruction_set: Set[\u001b[38;5;28mstr\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mset\u001b[39m()\n", + "File \u001b[1;32mc:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\utils\\circuit_schedule.py:99\u001b[0m, in \u001b[0;36mCircuitSchedule._load\u001b[1;34m(cls, circuit_schedule)\u001b[0m\n\u001b[0;32m 97\u001b[0m data \u001b[38;5;241m=\u001b[39m circuit_schedule\u001b[38;5;241m.\u001b[39msplit(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 98\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m---> 99\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCircuitSchedule expects a str.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 101\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m data\n", + "\u001b[1;31mTypeError\u001b[0m: CircuitSchedule expects a str." + ] + } + ], "source": [ "from qiskit_ibm_runtime.visualization import draw_circuit_schedule_timing\n", "\n", "circuit_schedule = (\n", " result[0]\n", " .metadata[\"compilation\"][\"scheduler_timing\"][\"timing\"]\n", - " .split(\"\\n\")\n", ")\n", "fig = draw_circuit_schedule_timing(\n", " circuit_schedule=circuit_schedule,\n", @@ -421,7 +4391,7 @@ "metadata": { "description": "Visualize scheduling on a circuit by using the Qiskit timeline_drawer method.", "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -435,7 +4405,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3" }, "title": "Visualize circuit timing" }, From 560bc728f0d570d5c76af1cc173898adf23acaaf Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Fri, 10 Oct 2025 15:59:22 -0500 Subject: [PATCH 32/33] found a missing > --- docs/guides/save-credentials.mdx | 3 +- docs/guides/visualize-circuit-timing.ipynb | 3940 +++++++++++++++++++- 2 files changed, 3929 insertions(+), 14 deletions(-) diff --git a/docs/guides/save-credentials.mdx b/docs/guides/save-credentials.mdx index ed9a2551751..ab9807f9859 100644 --- a/docs/guides/save-credentials.mdx +++ b/docs/guides/save-credentials.mdx @@ -54,7 +54,8 @@ If you don't provide an instance CRN and pass these credentials to Qiskit Runtim QiskitRuntimeService.save_account( token="", # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard name="", # Optional - plans_preference="", # Optional + plans_preference="", # Optional region="", # Optional tags="", # Optional set_as_default=True, # Optional diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 854775e30bc..4996d8f375d 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -4338,22 +4338,3936 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [ { - "ename": "TypeError", - "evalue": "CircuitSchedule expects a str.", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[11], line 8\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mqiskit_ibm_runtime\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mvisualization\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m draw_circuit_schedule_timing\n\u001b[0;32m 3\u001b[0m circuit_schedule \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m 4\u001b[0m result[\u001b[38;5;241m0\u001b[39m]\n\u001b[0;32m 5\u001b[0m \u001b[38;5;241m.\u001b[39mmetadata[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompilation\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mscheduler_timing\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtiming\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 6\u001b[0m \u001b[38;5;241m.\u001b[39msplit(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 7\u001b[0m )\n\u001b[1;32m----> 8\u001b[0m fig \u001b[38;5;241m=\u001b[39m \u001b[43mdraw_circuit_schedule_timing\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mcircuit_schedule\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcircuit_schedule\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43mincluded_channels\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilter_readout_channels\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 12\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilter_barriers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 13\u001b[0m \u001b[43m \u001b[49m\u001b[43mwidth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1000\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 14\u001b[0m \u001b[43m)\u001b[49m\n\u001b[0;32m 16\u001b[0m \u001b[38;5;66;03m# Display the figure\u001b[39;00m\n\u001b[0;32m 17\u001b[0m fig\u001b[38;5;241m.\u001b[39mshow(renderer\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnotebook\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[1;32mc:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\visualization\\draw_circuit_schedule_timings.py:51\u001b[0m, in \u001b[0;36mdraw_circuit_schedule_timing\u001b[1;34m(circuit_schedule, included_channels, filter_readout_channels, filter_barriers, width)\u001b[0m\n\u001b[0;32m 48\u001b[0m fig \u001b[38;5;241m=\u001b[39m go\u001b[38;5;241m.\u001b[39mFigure(layout\u001b[38;5;241m=\u001b[39mgo\u001b[38;5;241m.\u001b[39mLayout(width\u001b[38;5;241m=\u001b[39mwidth))\n\u001b[0;32m 50\u001b[0m \u001b[38;5;66;03m# Get the scheduling data\u001b[39;00m\n\u001b[1;32m---> 51\u001b[0m schedule \u001b[38;5;241m=\u001b[39m \u001b[43mCircuitSchedule\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 52\u001b[0m \u001b[43m \u001b[49m\u001b[43mcircuit_schedule\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcircuit_schedule\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 53\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 55\u001b[0m \u001b[38;5;66;03m# Process and filter\u001b[39;00m\n\u001b[0;32m 56\u001b[0m schedule\u001b[38;5;241m.\u001b[39mpreprocess(\n\u001b[0;32m 57\u001b[0m included_channels\u001b[38;5;241m=\u001b[39mincluded_channels,\n\u001b[0;32m 58\u001b[0m filter_awgr\u001b[38;5;241m=\u001b[39mfilter_readout_channels,\n\u001b[0;32m 59\u001b[0m filter_barriers\u001b[38;5;241m=\u001b[39mfilter_barriers,\n\u001b[0;32m 60\u001b[0m )\n", - "File \u001b[1;32mc:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\utils\\circuit_schedule.py:75\u001b[0m, in \u001b[0;36mCircuitSchedule.__init__\u001b[1;34m(self, circuit_schedule)\u001b[0m\n\u001b[0;32m 72\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtype_to_idx: Dict[\u001b[38;5;28mstr\u001b[39m, \u001b[38;5;28mint\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 73\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcircuit_scheduling \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m---> 75\u001b[0m raw_data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_load\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcircuit_schedule\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 76\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_parse(raw_data)\n\u001b[0;32m 78\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minstruction_set: Set[\u001b[38;5;28mstr\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mset\u001b[39m()\n", - "File \u001b[1;32mc:\\1docs\\.venv\\Lib\\site-packages\\qiskit_ibm_runtime\\utils\\circuit_schedule.py:99\u001b[0m, in \u001b[0;36mCircuitSchedule._load\u001b[1;34m(cls, circuit_schedule)\u001b[0m\n\u001b[0;32m 97\u001b[0m data \u001b[38;5;241m=\u001b[39m circuit_schedule\u001b[38;5;241m.\u001b[39msplit(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 98\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m---> 99\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCircuitSchedule expects a str.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 101\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m data\n", - "\u001b[1;31mTypeError\u001b[0m: CircuitSchedule expects a str." - ] + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ From 713808844b64ffb22c2282af5ee9898bc00205a6 Mon Sep 17 00:00:00 2001 From: Rebecca Dimock Date: Fri, 10 Oct 2025 16:15:01 -0500 Subject: [PATCH 33/33] shuffle some things around --- docs/guides/visualize-circuit-timing.ipynb | 65 ++++++++++------------ 1 file changed, 29 insertions(+), 36 deletions(-) diff --git a/docs/guides/visualize-circuit-timing.ipynb b/docs/guides/visualize-circuit-timing.ipynb index 4996d8f375d..7a770261f1d 100644 --- a/docs/guides/visualize-circuit-timing.ipynb +++ b/docs/guides/visualize-circuit-timing.ipynb @@ -213,13 +213,40 @@ "circuit_schedule_timing = circuit_schedule[\"timing\"]" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Understand the raw timing data\n", + "\n", + "While visualizing the circuit timing data by using the `draw_circuit_schedule_timing` method is the most common use case, it might be useful to understand the structure of the raw timing data returned. This could help you, for example, to extract information programmatically.\n", + "\n", + "The timing data returned in `[\"compilation\"][\"scheduler_timing\"][\"timing\"]` is a list of strings. Each string represents a single instruction on some channel and is comma separated into the following data types:\n", + "\n", + "- `Branch` - Determines whether the instruction is in a control flow (then / else) or a main branch\n", + "- `Instruction` - The gate and the qubit to operate on\n", + "- `Channel` - The channel that is being assigned with the instruction (Qubit x / AWGRx_y / ...). Arbitrary Wave Generator Readout (AWGR) is used for readout channels communication for measuring qubits, as opposed to drive channels, which are for driving the qubits. The `X` and `Y` arguments correspond to the readout instrument ID and the qubit number, respectively.\n", + "- `T0` - The instruction start time within the complete schedule\n", + "- `Duration` - The instruction's duration\n", + "- `Pulse` - The type of pulse operation being used\n", + "\n", + "\n", + "Example:\n", + "\n", + "```python\n", + "main,barrier,Qubit 0,7,0,barrier # A barrier on the main branch on qubit 0 at time 7 with 0 duration\n", + "main,reset_0,Qubit 0,7,64,play # A reset instruction on the main branch on qubit 0 at time 7 with duration 64 and a play operation\n", + "...\n", + "```" + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualize the timings\n", "\n", - "To visualize the timings, you first need to convert the result metadata to `fig` by using the `draw_circuit_schedule_timing` (**link to API reference when available**) method. This method returns a `plotly` figure, which you can display directly, save to a file, or both." + "To visualize the timings, you first need to convert the result metadata to `fig` by using the `draw_circuit_schedule_timing` (**link to API reference when available**) method. This method returns a `plotly` figure, which you can display directly, save to a file, or both. For more information about the `plotly` commands to use, see [`fig.show()`](https://plotly.com/python-api-reference/generated/plotly.io.show.html) and [`fig.write_image(\"\")`.](https://plotly.com/python-api-reference/generated/plotly.io.write_image.html)" ] }, { @@ -4179,41 +4206,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For more information about the `plotly` commands, see [`fig.show()`](https://plotly.com/python-api-reference/generated/plotly.io.show.html) and [`fig.write_image(\"\")`.](https://plotly.com/python-api-reference/generated/plotly.io.write_image.html)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Understand the raw timing data\n", - "\n", - "While visualizing the circuit timing data by using the `draw_circuit_schedule_timing` method is the most common use case, it might be useful to understand the structure of the raw timing data returned. This could help you, for example, to extract information programmatically.\n", - "\n", - "The timing data returned in `[\"compilation\"][\"scheduler_timing\"][\"timing\"]` is a list of strings. Each string represents a single instruction on some channel and is comma separated into the following data types:\n", - "\n", - "- `Branch` - Determines whether the instruction is in a control flow (then / else) or a main branch\n", - "- `Instruction` - The gate and the qubit to operate on\n", - "- `Channel` - The channel that is being assigned with the instruction (Qubit x / AWGRx_y / ...). Arbitrary Wave Generator Readout (AWGR) is used for readout channels communication for measuring qubits, as opposed to drive channels, which are for driving the qubits. The `X` and `Y` arguments correspond to the readout instrument ID and the qubit number, respectively.\n", - "- `T0` - The instruction start time within the complete schedule\n", - "- `Duration` - The instruction's duration\n", - "- `Pulse` - The type of pulse operation being used\n", - "\n", - "\n", - "Example:\n", - "\n", - "```python\n", - "main,barrier,Qubit 0,7,0,barrier # A barrier on the main branch on qubit 0 at time 7 with 0 duration\n", - "main,reset_0,Qubit 0,7,64,play # A reset instruction on the main branch on qubit 0 at time 7 with duration 64 and a play operation\n", - "...\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Understand the generated figure\n", + "#### Understand the generated figure\n", "\n", "The image of the circuit timing data output by `draw_circuit_schedule_timing` conveys the following information:\n", "\n",