{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "dfb19657", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Getting started with the Qiskit-Braket provider" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a95fc7c5", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Qiskit to Braket mapping" ] }, { "attachments": {}, "cell_type": "markdown", "id": "447c275b", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "![qiskit-to-braket-diagram](./data/qiskit-braket-mapping.png)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "04160f91", "metadata": {}, "source": [ "We first start by importing all required classes and functions for this notebook. We also start the cost tracker to print the costs at the end of this notebook." ] }, { "cell_type": "code", "execution_count": 1, "id": "445cc5d9", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:26:03.828647Z", "start_time": "2024-03-06T06:26:02.319740Z" } }, "outputs": [], "source": [ "from qiskit import QuantumCircuit\n", "from qiskit.circuit.random import random_circuit\n", "from qiskit.visualization import plot_histogram\n", "\n", "from braket.tracking import Tracker\n", "\n", "from qiskit_braket_provider import BraketLocalBackend, BraketProvider, to_braket\n", "\n", "# Use Braket SDK Cost Tracking to estimate the cost to run this example\n", "t = Tracker().start()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "6fea9c62", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Access Braket devices from Qiskit \n", "\n", "`BraketProvider` class gives you a method `backends` to access backends that are available through Braket SDK." ] }, { "attachments": {}, "cell_type": "markdown", "id": "a59c288b", "metadata": {}, "source": [ "Let's get available devices to use by Qiskit" ] }, { "cell_type": "code", "execution_count": 2, "id": "2b47da63", "metadata": { "slideshow": { "slide_type": "-" }, "ExecuteTime": { "end_time": "2024-03-06T06:26:13.290746Z", "start_time": "2024-03-06T06:26:08.276905Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[BraketBackend[Aria 1], BraketBackend[Aria 2], BraketBackend[Aspen-M-3], BraketBackend[Forte 1], BraketBackend[Harmony], BraketBackend[Lucy], BraketBackend[SV1], BraketBackend[TN1], BraketBackend[dm1]]\n" ] } ], "source": [ "provider = BraketProvider()\n", "print(provider.backends())" ] }, { "attachments": {}, "cell_type": "markdown", "id": "cf366038", "metadata": {}, "source": [ "If you want to explore what is available by specific contraints, you can specify query arguments to `backends` method of provider.\n", "Arguments are fully compatible with Braket's `get_device` method. See the documentation at [braket.aws.aws_device.AwsDevice.get_devices](https://amazon-braket-sdk-python.readthedocs.io/en/stable/_apidoc/braket.aws.aws_device.html#braket.aws.aws_device.AwsDevice.get_devices). For example, you can retrieve the list of online simulators via:" ] }, { "cell_type": "code", "execution_count": 3, "id": "e182e1a4", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:26:22.044814Z", "start_time": "2024-03-06T06:26:21.478978Z" } }, "outputs": [ { "data": { "text/plain": "[BraketBackend[SV1], BraketBackend[TN1], BraketBackend[dm1]]" }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "online_simulators_backends = provider.backends(statuses=[\"ONLINE\"], types=[\"SIMULATOR\"])\n", "online_simulators_backends" ] }, { "attachments": {}, "cell_type": "markdown", "id": "edbae0ee", "metadata": {}, "source": [ "For prototyping it is usually a good practice to use simulators \n", "to set up workflow of your program and then change it to real device.\n", "We can access local simulator by creating instance of class `BraketLocalBackend`" ] }, { "cell_type": "code", "execution_count": 4, "id": "2517f020", "metadata": { "slideshow": { "slide_type": "slide" }, "ExecuteTime": { "end_time": "2024-03-06T06:26:28.655697Z", "start_time": "2024-03-06T06:26:28.541800Z" } }, "outputs": [ { "data": { "text/plain": "BraketBackend[default]" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "local_simulator = BraketLocalBackend()\n", "local_simulator" ] }, { "attachments": {}, "cell_type": "markdown", "id": "390c3a64", "metadata": {}, "source": [ "Any backend can be instantiated via the `get_backend` method of the provider. Here is an example where we create a Backend object for the IonQ `Aria 1` device." ] }, { "cell_type": "code", "execution_count": 5, "id": "64a9cb24", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:26:38.862397Z", "start_time": "2024-03-06T06:26:36.334650Z" } }, "outputs": [], "source": [ "Aria_1 = provider.get_backend(\"Aria 1\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "e91eeeee", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Running circuits on Braket devices" ] }, { "attachments": {}, "cell_type": "markdown", "id": "137ae345", "metadata": {}, "source": [ "Let's first create Qiskit circuit. We will start with a Bell circuit." ] }, { "cell_type": "code", "execution_count": 6, "id": "22d4a07a", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:26:46.139190Z", "start_time": "2024-03-06T06:26:46.133439Z" } }, "outputs": [ { "data": { "text/plain": " ┌───┐ \nq_0: ┤ H ├──■──\n └───┘┌─┴─┐\nq_1: ─────┤ X ├\n └───┘", "text/html": "
     ┌───┐     \nq_0: ┤ H ├──■──\n     └───┘┌─┴─┐\nq_1: ─────┤ X ├\n          └───┘
" }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc = QuantumCircuit(2)\n", "qc.h(0)\n", "qc.cx(0, 1)\n", "qc.draw()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "512cfd00", "metadata": {}, "source": [ "This circuit can be used to submit a task to the local simulator. In the [tutorials](https://github.com/qiskit-community/qiskit-braket-provider/tree/main/docs/tutorials) associated to the Qiskit-Braket provider, we will use the Braket taxonomy:\n", "- a task is an atomic request to a device or a simulator. \n", "- an hybrid job is a mean to run hybrid quantum-classical algorithms requiring both classical AWS resources and quantum processing units (QPUs). See [What is a Hybrid Job](https://docs.aws.amazon.com/braket/latest/developerguide/braket-what-is-hybrid-job.html) for more details.\n", "\n", "Here, quantum tasks are analogous to Qiskit jobs, which is why tasks have a `job_id` property. If a task has been submitted to Braket managed device, `job_id` will return a Task ARN (Amazon Resource number) which identifies the task and allows to retrieve it in the Braket Console and in your notebooks. " ] }, { "cell_type": "code", "execution_count": 7, "id": "d00d454c", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:26:49.681208Z", "start_time": "2024-03-06T06:26:49.656719Z" } }, "outputs": [], "source": [ "task = local_simulator.run(qc, shots=10)" ] }, { "cell_type": "markdown", "id": "0d22adcd", "metadata": {}, "source": [ "Results are returned via a `Result` object, from which you can extract counts and plot them in a histogram." ] }, { "cell_type": "code", "execution_count": 8, "id": "b653ca31", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:26:55.379878Z", "start_time": "2024-03-06T06:26:55.035869Z" } }, "outputs": [ { "data": { "text/plain": "
", "image/png": "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PXooLCxMYWFh6tu3rz799FPrsRAgFYowp9OpgoKCcz6+oKBATqff94MFAOC81qZNG82YMUNbtmzRli1bNHDgQI0cOVLbt2+3Hg0BUKG/joyIiNC33357zsd/++23at26dYWHAgAA0rXXXlvi4+eee06vvfaaNm7cqG7duhlNhUCp0GmqK664QmvWrNH+/ft/99j9+/drzZo1uvLKK/2dDQAA/H9FRUVavHix8vLy1LdvX+txEAAVirD4+HgVFBTo5ptvVlZWVrnHHTt2TLfccosKCws1adKkSg8JAMD56ptvvlHDhg0VGhqqiRMnaunSperatav1WAiACr0ceckll2jy5MmaM2eOunbtqokTJyo2NlZt2rSRJB06dEirV6/W/PnzdfToUT344IO65JJLqmRwAADOB126dFF6erpOnjypDz74QOPHj9fnn39OiNUCFX4Db6/Xq8cff1yzZ8+Wx+Mp83GXy6WHH35Yzz77rBwOR8CG9Qdv4I3zEW/gDdRegwYNUseOHTVv3jzrUVCGKn0Db4fDoWnTpunOO+9UYmKi1q9fr//+97+SpFatWql///6Ki4tTx44d/ZseAACUy+v1Kj8/33oMBIDfb+DdsWNHPfvss4GcBQAA/Mpjjz2mYcOGKTIyUrm5uVq8eLFSUlK0YsUK69EQAH5HGAAAqFpHjhzRuHHj9MMPPyg8PFw9evTQihUrNHjwYOvREABEGAAAQWrhwoXWI6AKcTt7AAAAA0QYAACAASIMAADAABEGAABggAgDAAAwQIQBAAAYIMIAAAAMEGEAAAAGiDAAAAADRBgAAIAB3rYIAFCl7p5jPQHwPwsmW0/wP5wJAwAAMECEAQAAGCDCAAAADBBhAAAABogwAAAAA0QYAACAASIMAADAABEGAABggAgDAAAwQIQBAAAYIMIAAAAMEGEAAAAGiDAAAAADRBgAAIABIgwAAMAAEQYAAGCACAMAADBAhAEAABggwgAAAAwQYQAAAAaIMAAAAANEGAAAgAEiDAAAwAARBgAAYIAIAwAAMECEAQAAGCDCAAAADBBhAAAABogwAAAAA0QYAACAASIMAADAABEGAABggAgDAAAwQIQBAAAYIMIAAAAMEGEAAAAGiDAAAAADRBgAAIABIgwAAMAAEQYAAGCACAMAADBAhAEAABgIugg7dOiQ5syZoyFDhigqKkp1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zs5W3759NWbMGK1cuVIbNmzQxx9/rKioKF111VUaNGiQYmJi1Lp1azVu3FjffPONpk+frkGDBhFgNRz/30OVK34JcuzYsVqzZo3OnDlT6hiHwyGPxyPplztAZ2Vl6eeff67WOQGguu3atUunT5/WkCFDFB8fr5deeklvv/22pk6dqrZt2+qDDz7QHXfcoTFjxighIUGfffaZlixZory8PN15553W46OSeDkSVa6oqEh//etf9eKLLyo6Olrx8fG6+eab1bJly1LHnjhxQg888ICWL1+uH3/80WBaAKg+77//vm699VYtXrxYt956q2+9oKBA33//vbZu3ap169YpJSVFO3bskNvtltfrVWhoqI4fP244OQKBCEO1mTdvnmbPnq29e/cqIiJCN9xwg4YNG+a7aWvjxo31yiuvaM6cOYqPj9fzzz9vPTIAVCmv16vvvvtOdevWVfv27cu8PUVeXp527dqlnTt3KjExUStXrtR9992nl19+2WhqBAoRhmrj9Xq1e/duLViwQIsXL/a9AW2LFi3kdrv1ww8/yOPxaNSoUZo1a5batGljPDEA2CkryO6//369+uqr+vLLLxUTE2M0GQKFCIOJvLw8paWl6aOPPtLhw4f1448/KiwsTLfddptuvPFG1a1b13pEAAgKxTeu3r9/v0aOHKkTJ04oMzPTeiwEAH8dCRMNGjRQbGysYmNjVVBQILfbbT0SAASl4r+APHTokAoKCnTvvfcaT4RA4UwYAAA1gNfr1cGDB9W0aVM1aNDAehwEABEGAABggPuEAQAAGCDCAAAADBBhAAAABogwAAAAA0QYAACAASIMAADAABEGAABggAgDAAAwQIQBAAAY+H+hVRrAWUq9FwAAAABJRU5ErkJggg==\n" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = task.result()\n", "plot_histogram(results.get_counts())" ] }, { "attachments": {}, "cell_type": "markdown", "id": "43128a91", "metadata": {}, "source": [ "Each single shot measurements are also retrievable." ] }, { "cell_type": "code", "execution_count": 9, "id": "91adc995", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:26:58.125488Z", "start_time": "2024-03-06T06:26:58.120859Z" } }, "outputs": [ { "data": { "text/plain": "['00', '00', '00', '00', '00', '11', '00', '11', '00', '11']" }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results.get_memory()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d48764e8", "metadata": {}, "source": [ "More complex circuits on devices can be submitted to the Braket devices and simulators. Behind the scenes, the qiskit transpiler will adapt the circuits such that they are executable on all devices. In the following, we will focus on running circuit in the IonQ Aria-1 device. \n", "\n", "We will start with generating random circuit and printing it out." ] }, { "cell_type": "code", "execution_count": 10, "id": "2d278880", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:27:10.638790Z", "start_time": "2024-03-06T06:27:10.629393Z" } }, "outputs": [ { "data": { "text/plain": " ┌───────────────────────┐ ┌───┐ ┌────────────┐ \nq_0: ─────────────────────┤0 ├────┤ H ├───────■──────■───┤ Rz(2.9325) ├─────\n ┌───────────────────┐│ │ └─┬─┘ ┌─┴──┐ │ ├────────────┤┌───┐\nq_1: ┤ R(4.3817,0.59173) ├┤ ├──────■───────┤ Sx ├───┼───┤ Ry(2.2276) ├┤ X ├\n └───┬───────────┬───┘│ (XX+YY)(6.13,4.7824) │ ├───┬┘ ┌─┴─┐ └────────────┘└─┬─┘\nq_2: ────┤ Ry(4.939) ├────┤ ├──────■───────┤ H ├──┤ Y ├─────────────────■──\n └───────────┘ │ │┌─────┴──────┐└─┬─┘ ┌┴───┴┐ │ \nq_3: ─────────────────────┤1 ├┤ Ry(4.0455) ├──■───┤ Tdg ├────────────────■──\n └───────────────────────┘└────────────┘ └─────┘ ", "text/html": "
                          ┌───────────────────────┐    ┌───┐                  ┌────────────┐     \nq_0: ─────────────────────┤0                      ├────┤ H ├───────■──────■───┤ Rz(2.9325) ├─────\n     ┌───────────────────┐│                       │    └─┬─┘     ┌─┴──┐   │   ├────────────┤┌───┐\nq_1: ┤ R(4.3817,0.59173) ├┤                       ├──────■───────┤ Sx ├───┼───┤ Ry(2.2276) ├┤ X ├\n     └───┬───────────┬───┘│  (XX+YY)(6.13,4.7824) │              ├───┬┘ ┌─┴─┐ └────────────┘└─┬─┘\nq_2: ────┤ Ry(4.939) ├────┤                       ├──────■───────┤ H ├──┤ Y ├─────────────────■──\n         └───────────┘    │                       │┌─────┴──────┐└─┬─┘ ┌┴───┴┐                │  \nq_3: ─────────────────────┤1                      ├┤ Ry(4.0455) ├──■───┤ Tdg ├────────────────■──\n                          └───────────────────────┘└────────────┘      └─────┘                   
" }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qiskit_random_circuit = random_circuit(4, 5, seed=42)\n", "qiskit_random_circuit.draw(fold=-1)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d9d69137", "metadata": {}, "source": [ "Each device has a set of supported operations which are accessible via the backend." ] }, { "cell_type": "code", "execution_count": 11, "id": "fd631f39", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:27:20.803662Z", "start_time": "2024-03-06T06:27:20.800528Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'tdg', 'rx', 'h', 's', 'x', 'y', 'sdg', 'ry', 'rxx', 'cx', 'rzz', 'sxdg', 'z', 'sx', 'ryy', 'rz', 't', 'swap'}\n" ] } ], "source": [ "aria_supported_gates = Aria_1._get_gateset()\n", "print(aria_supported_gates)" ] }, { "cell_type": "code", "execution_count": 12, "id": "51e60f77", "metadata": { "slideshow": { "slide_type": "slide" }, "ExecuteTime": { "end_time": "2024-03-06T06:27:29.671085Z", "start_time": "2024-03-06T06:27:29.604054Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "T : | 0 |1| 2 | 3 | 4 |5| 6 | 7 | 8 | 9 |10| 11 |12|13|14| 15 |16| 17 |18| 19 |20| 21 | 22 |23|24|25|26|27|28|29|30|31|32|\n", " \n", "q0 : -Rz(4.78)--S------------X-Ry(-3.07)-X-Si--------Rz(-4.78)-S--------H--------T--X---------Ti-H--Si-Rz(0.79)-C------------C-----------------------C-Rz(2.93)-------------------------------\n", " | | | | | | \n", "q1 : -Rz(0.98)--V-Rz(7.52)-V-|-Rz(8.45)--|------------------------------------------C---------H-----------------X--Rz(-0.79)-X--Rz(0.79)-H--Ry(2.23)-|-H--------X--Ti-X--T--X--Ti-X--T--H-----\n", " | | | | | | | \n", "q2 : -Ry(4.94)---------------|-----------|---------------------------------------C------------C--S--H--T--------X--Ti--------H--Si-------Si----------X-S--------|-----C-----|-----C--C--T--C--\n", " | | | | | | | | | \n", "q3 : -Rz(-1.57)-V-Rz(1.57)---C-Ry(-3.07)-C-Rz(-1.57)-Vi--------Rz(1.57)-Ry(2.02)-X--Ry(-2.02)-X-----------------C--Ti-------------------------------------------C-----------C--T-----X--Ti-X--\n", "\n", "T : | 0 |1| 2 | 3 | 4 |5| 6 | 7 | 8 | 9 |10| 11 |12|13|14| 15 |16| 17 |18| 19 |20| 21 | 22 |23|24|25|26|27|28|29|30|31|32|\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/caw/Documents/GitHub/qiskit-braket-provider/qiskit_braket_provider/providers/adapter.py:475: UserWarning: Device does not support global phase; global phase of 5.105088062083414 will not be included in Braket circuit\n", " warnings.warn(\n" ] } ], "source": [ "braket_random_circuit = to_braket(\n", " qiskit_random_circuit, basis_gates=aria_supported_gates\n", ")\n", "print(braket_random_circuit)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "c698ffb1", "metadata": {}, "source": [ "We printed the Braket Circuit object that will be used to create the quantum task on the Aria-1 device. To submit the task, you do not have to create a Braket circuit, this is done internal when you submit the Qiskit circuit to the Backend." ] }, { "cell_type": "code", "execution_count": 13, "id": "dfad043a", "metadata": { "slideshow": { "slide_type": "slide" }, "ExecuteTime": { "end_time": "2024-03-06T06:27:41.090278Z", "start_time": "2024-03-06T06:27:38.860357Z" } }, "outputs": [], "source": [ "aria_task = Aria_1.run(qiskit_random_circuit, shots=10)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "1c129b43", "metadata": {}, "source": [ "If you do not want to wait for the task completion and return to it later, you can use `retrieve_job` method on device to get job object. For this, you will need to know the job_id (which is the task ARN that identifies the task in the AWS cloud)." ] }, { "cell_type": "code", "execution_count": 14, "id": "34787aad", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:27:46.073116Z", "start_time": "2024-03-06T06:27:46.024758Z" } }, "outputs": [], "source": [ "task_arn = aria_task.job_id()\n", "retrieved_task = Aria_1.retrieve_job(task_id=task_arn)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d28a2001", "metadata": {}, "source": [ "From the task, you can check its status: " ] }, { "cell_type": "code", "execution_count": 15, "id": "764d4828", "metadata": { "ExecuteTime": { "end_time": "2024-03-06T06:27:49.833820Z", "start_time": "2024-03-06T06:27:49.416314Z" } }, "outputs": [ { "data": { "text/plain": "" }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "retrieved_task.status()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "6ce860f0", "metadata": {}, "source": [ "and get the results as done previously: " ] }, { "cell_type": "code", "execution_count": 18, "id": "4a8a8760", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "random_circuit_results = retrieved_task.result()\n", "plot_histogram(random_circuit_results.get_counts())" ] }, { "cell_type": "code", "execution_count": 19, "id": "a16ab026", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Quantum Task Summary\n", "{'arn:aws:braket:us-east-1::device/qpu/ionq/Aria-1': {'shots': 10, 'tasks': {'COMPLETED': 1}}}\n", "Note: Charges shown are estimates based on your Amazon Braket simulator and quantum processing unit (QPU) task usage. Estimated charges shown may differ from your actual charges. Estimated charges do not factor in any discounts or credits, and you may experience additional charges based on your use of other services such as Amazon Elastic Compute Cloud (Amazon EC2).\n", "Estimated cost to run this example: 0.600 USD\n" ] } ], "source": [ "print(\"Quantum Task Summary\")\n", "print(t.quantum_tasks_statistics())\n", "print(\n", " \"Note: Charges shown are estimates based on your Amazon Braket simulator and quantum processing \"\n", " \"unit (QPU) task usage. Estimated charges shown may differ from your actual charges. Estimated \"\n", " \"charges do not factor in any discounts or credits, and you may experience additional charges \"\n", " \"based on your use of other services such as Amazon Elastic Compute Cloud (Amazon EC2).\"\n", ")\n", "print(\n", " f\"Estimated cost to run this example: {t.qpu_tasks_cost() + t.simulator_tasks_cost():.3f} USD\"\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 5 }