From fb6e0f34f0ec04a8b81b2b1e56a342f34f4af259 Mon Sep 17 00:00:00 2001 From: Doug Strain Date: Mon, 16 May 2022 16:32:39 -0700 Subject: [PATCH 1/2] Rigetti Getting Started Docs Cleanup - Cleared outputs for testing - Changed service name to be programmatic, since it has changed from 'Aspen-9' to 'Aspen-11'. - Changed links to be external. --- docs/tutorials/rigetti/getting_started.ipynb | 305 +++---------------- 1 file changed, 35 insertions(+), 270 deletions(-) diff --git a/docs/tutorials/rigetti/getting_started.ipynb b/docs/tutorials/rigetti/getting_started.ipynb index 68ac0eff181..5774f91364b 100644 --- a/docs/tutorials/rigetti/getting_started.ipynb +++ b/docs/tutorials/rigetti/getting_started.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "cellView": "form", "id": "oOggJBe6W5nF" @@ -64,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "id": "bd9529db1c0b" }, @@ -75,28 +75,8 @@ "except ImportError:\n", " print(\"installing cirq...\")\n", " !pip install --quiet cirq\n", - " print(\"installed cirq.\")" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": { - "id": "1557fb5c0574" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.12.0.dev\n" - ] - } - ], - "source": [ - "import cirq\n", - "\n", - "print(cirq.__version__)" + " print(\"installed cirq.\")\n", + " import cirq" ] }, { @@ -105,12 +85,12 @@ "id": "jApPwKwJZ76B" }, "source": [ - "Running this notebook requires the pyQuil QVM and Compiler. If you are running on Google Colab or a Linux Debian machine, you can run the below cell to install them if necessary. If you are on a non-Linux Debian machine, see [these instructions](https://pyquil-docs.rigetti.com/en/stable/start.html#downloading-the-qvm-and-compiler) for installation." + "Running this notebook requires the pyQuil QVM and Compiler. If you are running on Google Colab or a Linux Debian machine, you can run the below cell to install them if necessary. If you are on a non-Linux Debian machine, see [these instructions](https://pyquil-docs.rigetti.com/en/stable/start.html#downloading-the-qvm-and-compiler){:.external} for installation." ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "id": "8Jr6CdheZ76C" }, @@ -138,21 +118,11 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "id": "h2KPdYw1Z76D" }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import subprocess\n", "\n", @@ -173,21 +143,11 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "id": "5fc3c30fb03e" }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0: ───H───@───M('m')───\n", - " │ │\n", - "1: ───────X───M────────\n" - ] - } - ], + "outputs": [], "source": [ "bell_circuit = cirq.Circuit()\n", "qubits = cirq.LineQubit.range(2)\n", @@ -208,27 +168,17 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "id": "952d063c5cf1" }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\n", - " \"Aspen-9\"\n", - "]\n" - ] - } - ], + "outputs": [], "source": [ "from cirq_rigetti import RigettiQCSService\n", - "import json\n", "\n", "quantum_processors = RigettiQCSService.list_quantum_processors().quantum_processors\n", - "print(json.dumps([quantum_processor.id for quantum_processor in quantum_processors], sort_keys=True, indent=4))" + "processors_list = [quantum_processor.id for quantum_processor in quantum_processors]\n", + "print(processors_list)" ] }, { @@ -237,30 +187,24 @@ "id": "d36372ac05aa" }, "source": [ - "For now, we'll instantiate the `RigettiQCSService` as a pyQuil [Quantum Virtual Machine](https://docs.rigetti.com/qcs/references/qvm) based on the topology of one of the available Rigetti quantum processors. At the time of this writing, `Aspen-9` is available.\n", + "For now, we'll instantiate the `RigettiQCSService` as a pyQuil [Quantum Virtual Machine](https://docs.rigetti.com/qcs/references/qvm){:.external} based on the topology of one of the available Rigetti quantum processors. At the time of this writing, `Aspen-11` is available.\n", "\n", - "Note, in addition to the quantum processors listed above, you can also instantiate the `RigettiQCSService` by naming an arbitrary virtual device the pyQuil QVM supports. See the documentation for pyquil [get_qc](https://pyquil-docs.rigetti.com/en/stable/apidocs/pyquil.api.html#pyquil.api.get_qc) for more information. " + "Note, in addition to the quantum processors listed above, you can also instantiate the `RigettiQCSService` by naming an arbitrary virtual device the pyQuil QVM supports. See the documentation for pyquil [get_qc](https://pyquil-docs.rigetti.com/en/stable/apidocs/pyquil.api.html#pyquil.api.get_qc){:.external} for more information. " ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "id": "e814a6986f88" }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Counter({3: 510, 0: 490})\n" - ] - } - ], + "outputs": [], "source": [ "from cirq_rigetti import circuit_transformers, circuit_sweep_executors, get_rigetti_qcs_service\n", "\n", - "service = get_rigetti_qcs_service(\"Aspen-9\", as_qvm=True, noisy=False)\n", + "SERVICE_NAME = processors_list[0]\n", + "print(SERVICE_NAME)\n", + "service = get_rigetti_qcs_service(SERVICE_NAME, as_qvm=True, noisy=False)\n", "result = service.run(bell_circuit, repetitions=1000)\n", "\n", "print(result.histogram(key='m'))" @@ -277,24 +221,11 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "id": "01da874989f1" }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -334,43 +265,16 @@ "\n", "You may initialize both the `RigettiQCSService` and `RigettiQCSSampler` with execution functions from the `cirq_rigetti.circuit_sweep_executor` module and transformation functions from `cirq_rigetti.circuit_transformations`.\n", "\n", - "You may invoke these functions with arguments for controlling your circuit execution at a more fine grained level. For instance, you may want add [Pragma statements](https://pyquil-docs.rigetti.com/en/stable/compiler.html#region-specific-compiler-features-through-pragma) to set the [initial rewiring](https://pyquil-docs.rigetti.com/en/stable/compiler.html#initial-rewiring) strategy, invoke [active qubit reset](https://arxiv.org/abs/2001.04449) prior to execution, or explicitly address physical qubits on the quantum computer." + "You may invoke these functions with arguments for controlling your circuit execution at a more fine grained level. For instance, you may want add [Pragma statements](https://pyquil-docs.rigetti.com/en/stable/compiler.html#region-specific-compiler-features-through-pragma){:.external} to set the [initial rewiring](https://pyquil-docs.rigetti.com/en/stable/compiler.html#initial-rewiring){:.external} strategy, invoke [active qubit reset](https://arxiv.org/abs/2001.04449){:.external} prior to execution, or explicitly address physical qubits on the quantum computer." ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "id": "ec8335f28b75" }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "RESET\n", - "PRAGMA INITIAL_REWIRING \"GREEDY\"\n", - "DECLARE m0 BIT[2]\n", - "H 4\n", - "CNOT 4 5\n", - "MEASURE 4 m0[0]\n", - "MEASURE 5 m0[1]\n", - "\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from pyquil.quilbase import Reset, Pragma\n", "\n", @@ -387,7 +291,7 @@ "}\n", "executor = executor = circuit_sweep_executors.with_quilc_compilation_and_cirq_parameter_resolution\n", "transformer = circuit_transformers.build(qubit_id_map=qubit_id_map, qubits=qubits, post_transformation_hooks=[hook])\n", - "service = get_rigetti_qcs_service('Aspen-9', as_qvm=True, executor=executor, transformer=transformer)\n", + "service = get_rigetti_qcs_service(SERVICE_NAME, as_qvm=True, executor=executor, transformer=transformer)\n", "result = service.run(bell_circuit, repetitions=1000)\n", "\n", "plot_bell_state(result.histogram(key='m'))" @@ -401,14 +305,14 @@ "source": [ "# Running a parameterized circuit\n", "\n", - "Of course, you may be running a parameterized circuit and would like to leverage the [Quil compilers](https://pyquil-docs.rigetti.com/en/stable/compiler.html)'s support for parametric compilation. This affords a speedup in execution times as the Cirq Rigetti integration will only compile the circuit once for a single parameter sweep.\n", + "Of course, you may be running a parameterized circuit and would like to leverage the [Quil compilers](https://pyquil-docs.rigetti.com/en/stable/compiler.html){:.external} support for parametric compilation. This affords a speedup in execution times as the Cirq Rigetti integration will only compile the circuit once for a single parameter sweep.\n", "\n", "We start by initializing the `RigettiQCSSampler` and specifying a circuit sweep executor that supports parametric compilation. Note, that this class accepts the same `executor` and `transformer` types as `RigettiQCSService`." ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "id": "58580fce0973" }, @@ -417,7 +321,7 @@ "from cirq_rigetti import get_rigetti_qcs_sampler\n", "\n", "executor = circuit_sweep_executors.with_quilc_parametric_compilation\n", - "sampler = get_rigetti_qcs_sampler('Aspen-9', as_qvm=True, executor=executor)" + "sampler = get_rigetti_qcs_sampler(SERVICE_NAME, as_qvm=True, executor=executor)" ] }, { @@ -431,19 +335,11 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "id": "566e68350c37" }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0: ───H^t───M('m')───\n" - ] - } - ], + "outputs": [], "source": [ "import sympy\n", "\n", @@ -468,143 +364,11 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "id": "f0b7ac7a63b5" }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
t=0.0t=1.0t=2.0t=3.0t=4.0
000000
100000
200000
300000
401000
500010
601010
701000
800000
901010
\n", - "
" - ], - "text/plain": [ - " t=0.0 t=1.0 t=2.0 t=3.0 t=4.0\n", - "0 0 0 0 0 0\n", - "1 0 0 0 0 0\n", - "2 0 0 0 0 0\n", - "3 0 0 0 0 0\n", - "4 0 1 0 0 0\n", - "5 0 0 0 1 0\n", - "6 0 1 0 1 0\n", - "7 0 1 0 0 0\n", - "8 0 0 0 0 0\n", - "9 0 1 0 1 0" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import pandas as pd\n", "\n", @@ -617,6 +381,7 @@ ], "metadata": { "colab": { + "collapsed_sections": [], "name": "getting_started.ipynb", "toc_visible": true }, From e942033edf8b99e288dc67392ea05ca059da34f9 Mon Sep 17 00:00:00 2001 From: Doug Strain Date: Tue, 31 May 2022 15:40:24 -0700 Subject: [PATCH 2/2] Address comments. --- docs/tutorials/rigetti/getting_started.ipynb | 33 +++----------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/docs/tutorials/rigetti/getting_started.ipynb b/docs/tutorials/rigetti/getting_started.ipynb index 5774f91364b..92e294a9827 100644 --- a/docs/tutorials/rigetti/getting_started.ipynb +++ b/docs/tutorials/rigetti/getting_started.ipynb @@ -216,7 +216,7 @@ "id": "e1b4702074dc" }, "source": [ - "We'll define a function to visually verify the results of our Bell state." + "We'll use the built-in `cirq.plot_state_histogram` to visually verify the results of our Bell state." ] }, { @@ -227,32 +227,7 @@ }, "outputs": [], "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "\n", - "def plot_bell_state(result):\n", - " labels = list(result.keys())\n", - " labels.sort()\n", - "\n", - " values = [result[label] for label in labels]\n", - "\n", - " x = np.arange(len(labels)) # the label locations\n", - " width = 0.35 # the width of the bars\n", - "\n", - " fig, ax = plt.subplots()\n", - " rects1 = ax.bar(x, values, width, label='Bell state')\n", - "\n", - " # Add some text for labels, title and custom x-axis tick labels, etc.\n", - " ax.set_ylabel('Frequency')\n", - " ax.set_xticks(x)\n", - " ax.set_xticklabels(labels)\n", - " ax.set_xlabel('Value')\n", - "\n", - " fig.tight_layout()\n", - "\n", - " plt.show()\n", - " \n", - "plot_bell_state(result.histogram(key='m'))" + "cirq.plot_state_histogram(result.histogram(key='m')) " ] }, { @@ -289,12 +264,12 @@ " qubits[0]: 4,\n", " qubits[1]: 5,\n", "}\n", - "executor = executor = circuit_sweep_executors.with_quilc_compilation_and_cirq_parameter_resolution\n", + "executor = circuit_sweep_executors.with_quilc_compilation_and_cirq_parameter_resolution\n", "transformer = circuit_transformers.build(qubit_id_map=qubit_id_map, qubits=qubits, post_transformation_hooks=[hook])\n", "service = get_rigetti_qcs_service(SERVICE_NAME, as_qvm=True, executor=executor, transformer=transformer)\n", "result = service.run(bell_circuit, repetitions=1000)\n", "\n", - "plot_bell_state(result.histogram(key='m'))" + "cirq.plot_state_histogram(result.histogram(key='m'))" ] }, {