{ "cells": [ { "cell_type": "markdown", "id": "43ae51e2", "metadata": { "tags": [] }, "source": [ "# Parallel tasks on Aquila\n", "\n", "For tasks with few qubits in the register, we can use parallel execution that makes use of full area allowed by the QPU. In this tutorial we go through the previously explored checkerboard preparation but now we take advantage of the full area. \n", "\n", "We will break up the register into __batches__ which will run in parallel." ] }, { "cell_type": "code", "execution_count": 1, "id": "8af10669-31a2-4eef-993c-6fb2f29c698f", "metadata": {}, "outputs": [], "source": [ "# Use Braket SDK Cost Tracking to estimate the cost to run this example\n", "from braket.tracking import Tracker\n", "tracker = Tracker().start()" ] }, { "cell_type": "markdown", "id": "f31e9ade-6b2d-4727-bd4e-cc6a8bbb302e", "metadata": {}, "source": [ "## Defining batches\n", "\n", "First, we will define a _single_ batch containing a 3x3 square grid of atoms" ] }, { "cell_type": "code", "execution_count": 2, "id": "e5598963", "metadata": {}, "outputs": [], "source": [ "from braket.ahs.hamiltonian import Hamiltonian\n", "from braket.ahs.atom_arrangement import AtomArrangement\n", "from braket.ahs.analog_hamiltonian_simulation import AnalogHamiltonianSimulation" ] }, { "cell_type": "code", "execution_count": 3, "id": "4a9c026d", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "# distance between atoms\n", "distance = 6.7e-6\n", "\n", "# number of atoms in a batch\n", "Lx = 3\n", "Ly = 3\n", "\n", "register = AtomArrangement()\n", "\n", "for ix in range(Lx):\n", " for iy in range(Ly):\n", " pos = (ix * distance, iy * distance)\n", " register.add(pos)" ] }, { "cell_type": "markdown", "id": "fa2efd6c", "metadata": {}, "source": [ "## Bounding box\n", "\n", "Next, we define a bounding box by calculating its width and height of the batch. This will prove useful in setting up multiple batches in parallel." ] }, { "cell_type": "code", "execution_count": 4, "id": "db0da94b", "metadata": {}, "outputs": [], "source": [ "x_min = min(*[site.coordinate[0] for site in register])\n", "x_max = max(*[site.coordinate[0] for site in register])\n", "y_min = min(*[site.coordinate[1] for site in register])\n", "y_max = max(*[site.coordinate[1] for site in register])\n", "\n", "single_problem_width = x_max - x_min\n", "single_problem_height = y_max - y_min" ] }, { "cell_type": "markdown", "id": "08ff59e6", "metadata": {}, "source": [ "### Calculating batch placement\n", "\n", "To prevent entanglement via the Rydberg interaction between batches, we need to place them far apart. Each batch needs an area occupied by its bounding box plus a padding that ensure proper separation.\n", "\n", "We pick the distance between the batches to be $3 \\times d$, where $d$ is the distance between neighboring atoms in a single batch. This means the ratio between intra- and inter-batch interaction strengths (using the van der Waals formula, $V = C_6/d^6$) is at most $\\frac{1}{3^6} \\approx 0.001372$.\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "36a82617", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from braket.ahs.atom_arrangement import AtomArrangement, SiteType\n", "from braket.aws import AwsDevice\n", "import json\n", "\n", "qpu = AwsDevice(\"arn:aws:braket:us-east-1::device/qpu/quera/Aquila\")\n", "\n", "# get values from device capabilities\n", "field_of_view_width = qpu.properties.paradigm.lattice.area.width\n", "field_of_view_height = qpu.properties.paradigm.lattice.area.height\n", "n_site_max = qpu.properties.paradigm.lattice.geometry.numberSitesMax\n", "\n", "# set distance between batches to be 3 x d\n", "interproblem_distance = 3 * distance\n", "\n", "# setting up a grid of problems filling the total area\n", "n_width = int(float(field_of_view_width) // (single_problem_width + interproblem_distance))\n", "n_height = int(float(field_of_view_height) // (single_problem_height + interproblem_distance))" ] }, { "cell_type": "markdown", "id": "8f83106e", "metadata": {}, "source": [ "## Generating registers for all batches\n", "\n", "We now loop create the total set of registers that will run on the QPU. \n", "\n", "We will keep track of which set of registers (by atom number) belongs to which batch using a dictionary called `batch_mapping`.\n", "\n", "We stop generating batches once we have reached the maximum number of sites allowed by the QPU. In this case we check to make sure we can fit the necessary number of atoms into a batch in case the number of atoms per batch is not a factor of `n_site_max`. " ] }, { "cell_type": "code", "execution_count": 6, "id": "ab083fd7", "metadata": {}, "outputs": [], "source": [ "batch_mapping = dict()\n", "parallel_register = AtomArrangement()\n", "\n", "atom_number = 0 #counting number of atoms added\n", "\n", "for ix in range(n_width):\n", " x_shift = ix * (single_problem_width + interproblem_distance)\n", "\n", " for iy in range(n_height): \n", " y_shift = iy * (single_problem_height + interproblem_distance)\n", "\n", " # reached the maximum number of batches possible given n_site_max\n", " if atom_number + len(register) > n_site_max: break \n", "\n", " atoms = []\n", " for site in register:\n", " new_coordinate = (x_shift + site.coordinate[0], y_shift + site.coordinate[1])\n", " parallel_register.add(new_coordinate,site.site_type)\n", "\n", " atoms.append(atom_number)\n", "\n", " atom_number += 1\n", "\n", " batch_mapping[(ix,iy)] = atoms" ] }, { "cell_type": "code", "execution_count": 7, "id": "9fab538e-e7fb-4d24-8458-d8de0a38446c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{(0, 0): [0, 1, 2, 3, 4, 5, 6, 7, 8],\n", " (0, 1): [9, 10, 11, 12, 13, 14, 15, 16, 17],\n", " (1, 0): [18, 19, 20, 21, 22, 23, 24, 25, 26],\n", " (1, 1): [27, 28, 29, 30, 31, 32, 33, 34, 35]}" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Key indicates the position of the batch itself on a unitless grid, \n", "# with dictionary value being the atom number\n", "batch_mapping" ] }, { "cell_type": "code", "execution_count": 8, "id": "b26b7e0a", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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CUMu+gpRRETiTiwUYvQcMhUREfGQClFERAQVooiICKBCFBERAVSIIiIigApRREQEUCGKiIgAKkQRERFAhSgiIgKoEEVERAAVooiICKBCFBERAVSIIiIigApRREQEUCGKiIgAKkQRERFAhSgiIgL4UYjOuUTn3J+cc3ucc/uccz+JRDAREZFI6u3HZRqAa83slHOuD/Cqc26jmZWEOZuIiEjE9FiIZmbAqbaTfdoWC2coERGRSPPrPUTnXC/n3G7gCPA/Zrark8vMdc6VOudKjx49GuKYIiIi4eVXIZpZi5mNBYYBk5xzn+/kMqvMbIKZTUhPTw9xTBERkfAK6KdMzawW2ALMCksaERERj/jzU6bpzrlL2/7fF7geeDvMuURERCLKn58y/TSwzjnXC1+B/tbMfh/eWCIiIpHlz0+Z7gXGRSCLiIiIZ/RJNSIiIqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAvhRiM65zzjntjjn3nTO7XPOLYxEMBERkUjq7cdlmoF7zOx151wK8Jpz7n/M7M0wZxMREYmYHvcQzewjM3u97f8ngbeAoeEOJiIiEkkBvYfonBsOjAN2dbJurnOu1DlXevTo0RDFExERiQy/C9E5lwxsAO42s7rz15vZKjObYGYT0tPTQ5lRREQk7PwqROdcH3xl+IyZvRDeSCIiIpHnz0+ZOmA18JaZPRL+SCIiIpHnzx5iHnArcK1zbnfb8uUw5xIREYmoHn/twsxeBVwEsoiIiHhGn1QjIiKCClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAqRBEREUCFKCIiAqgQRUREABWiiIgIoEIUEREBVIgiIiKAClFERARQIYqIiAAxXIj79++noKCA9PR0Bg4cyMyZMykvL/c6VtCcc/Tr14/k5GSSk5O58847vY4UtJdffpnx48fTv39/rrjiClatWuV1JIkT/jzvH330UTIzM+nfvz933HEHDQ0NHqXtXk+zPPfcc2RlZZGamkpGRga33347dXV1HibunD+PyaFDhwA+65w76Zyrds79qydhexCzhVhbW0t+fj7l5eVUVVUxadIkCgoKvI51Ufbs2cOpU6c4deoUTz75pNdxgtLU1MRXv/pVvvOd73DixAmef/55fvCDH7Bnzx6vo0kc6Ol5v2nTJpYvX05xcTEVFRUcOnSIBx54wMPEXetplry8PHbs2MGJEyc4dOgQzc3N3H///R4m7lxPczQ2NnL99dcDnAQygWHA096k7YGZhXzJzc21SDt27JgBVl1dHfH7DgXADhw44HWMi3b48GED7OOPP24/b8KECfbss896mEri1fnP+8LCQrvvvvva12/evNkGDx7sVbyAdPc97OTJk3brrbfaDTfc4EGywJw/xxNPPGFTp041oNTC0DehXGJ2D/F827dvJzMzk0GDBnkdJWjTpk0jMzOTv//7v+e9997zOk5QBg8eTGFhIWvXrqWlpYWdO3dSUVHB1KlTvY4mcej85/2+ffvIyclpX5+Tk0NVVRXHjh3zKqLfOvse9uqrr5KamkpKSgobNmzg7rvv9i6gn86fo6SkhOHDhwOMbDtcutU597+8zNilcLTsRe0h7txpNnu22fjxvn937uzxKn/9619tyJAh0bcXEsAs27Zts4aGBqupqbH58+fbmDFjrKmpKYJhexDALC+99JJlZGRYr169rFevXrZq1aoIBpWYFKLn/RVXXGEbN25sP93Y2GiAvfvuu+FI3bkwfA+rrKy0Bx54wMrLy0OdtmshmuP666+33r17G7Af+BTwQ+AQ8CmLgr3Cc5foKsSlS82Sksyc80VLSPCdXrq0y6scOXLERo8ebcuWLQvuPsMliFnOam5utqSkJNu7d28EgvohgFneeustS0pKsv/+7/+2lpYWe/vtt+2zn/2s/f73v/cguMSEED7vs7Oz7fnnn28/XV1dHdm3UsL4PWznzp02bty4UCfuXAjnyM/PtxkzZrQfMgUccALIsSgowXOX6CnEnTt9X3C4cElK6vTVyfHjx23s2LG2ePHiwO8vnIKY5VzNzc3Wr18/27NnT4QCdyPAWdavX29jx47tcN7ChQtt/vz5kUwtsSLEz/vCwkJbsmRJ++ni4uLIvYcY5u9hr7zyivXv3z8cyTsK8Rz333+/ffGLX1QhBmT27L+9Gjl/SUjwrT/HiRMnbOLEidH5jTbAWcrKyuyNN96w5uZmO3nypC1cuNBGjRpljY2NHg1wjgBneeedd6xfv35WXFxsra2t9s4779iVV15pTzzxhEcDSFQL8fN+48aNNnjwYNu3b5/V1NTYF7/4xci9YA7xLE8//bRVVFSYmdl7771n06ZNs69+9athHyPUc7z99tvWt29fA8qBXsD3gYM6ZNqd8eM7fwDOLufdZlFRkQGWlJRk/fr1a1/ObkCeCnCW4uJiGzVqlCUlJVl6eroVFBTY/v37PQp/ngBnMTN7/vnnbcyYMZacnGxDhw61e++911paWjwIL1EvDM/7hx9+2DIyMiwlJcXmzJlj9fX1MTnLkiVLbOjQoZaUlGRDhw61b3/725E59BuGx2TDhg0G1AN1wFZgjEVBAZ6/RE8hzp7te/XR1auSwsLAb9MrmkXEP/G0fcXLLGGaA/3aRQAWLoTExM7XJSbCggWRzXMxNIuIf+Jp+4qXWeJljiBETyFOngyLFkFSEiS0xUpI8J1etMi3PlZoFhH/xNP2FS+zxMscQXC+PdnQmjBhgpWWlgZ35ZISWLkSDhyAkSN9r1Zi9QHQLCL+iaftK15mCfEczrnXzGxCCBOGXPQVooiIxJ1YKMToOWQqIiLiIRWiiIgIKkQRERFAhSgiIgKoEEVERAAVooiICKBCFBERAVSIIiIigApRREQEUCGKiIgAKkQRERFAhSgiIgKoEEVERAAVooiICKBCFBERAVSIIiIigB+F6Jxb45w74pwri0QgERERL/izh1gEzApzDhEREU/1WIhmth04HoEsIiIingnZe4jOubnOuVLnXOnRo0dDdbMiIiIREbJCNLNVZjbBzCakp6eH6mZFREQiQj9lKiIiggpRREQE8O/XLn4D7ASynHOVzrlvhT+WiIhIZPXu6QJmVhiJICIiIl7SIVMRERFUiCIiIoAKUUREBFAhioiIACpEERERQIUoIiICqBBFREQAFaKIiAigQhQREQFUiCIiIkCMF+LcuXPJysoiISGBoqIir+OExFNPPYVzjieffNLrKEF55ZVXSE5O7rA459iwYYPX0SROdPe8b2ho4Pvf/z5DhgxhwIABzJs3j6amJm+C9mD//v0UFBSQnp7OwIEDmTlzJuXl5e3r161bR25uLv3792fYsGHce++9NDc3e5i4cz3NUVRURK9evQDGOedOtS0zPIrbrZguxJycHB577DHGjx/vdZSQqKmp4cEHH2TMmDFeRwnaNddcw6lTp9qX3//+9yQnJzNr1iyvo0mc6O55v3z5ckpLSykrK2P//v28/vrrLFu2zIOUPautrSU/P5/y8nKqqqqYNGkSBQUF7etPnz7NihUrqK6uZteuXRQXF/PQQw95mLhzPc0BMGXKFIA3zCy5bdnqRdYemVnIl9zcXIukvLw8W7t2bUTvMxy+853v2K9+9SubPn26/cd//IfXcUJizpw5NmfOHK9jSBzq7Hmfm5trv/3tb9tPP/PMMzZs2LAIJwvOsWPHDLDq6upO1z/88MN24403RjhV4M6fY+3atZaXl2dAqYWhb0K5xPQeYjz505/+RGlpKXfddZfXUULm448/5ne/+x23336711HkE8TMOvy/srKSEydOeJjIP9u3byczM5NBgwZ1uT4Wjh51Nscbb7wBkOOc2++c+7Fzrse/tOSF6CvEkhIoLITcXN+/JSVeJwqen7O0tLQwb948/v3f/52EhOh7SICgHpcXXniBtLQ0pk+fHoGAEtNC9LyfNWsWK1eu5OjRoxw+fJhf/OIXgO/wY8QEMUtlZSXz58/nkUce6XT9mjVrKC0tZdGiRaFO27UQzTFt2jTKysoA9gBfAwqBH4Yp9cUJx25n0IdMly41S0oyc84MzBISfKeXLu32alF5yDSAWX7xi1/YP/7jP7afjrpDpkE+Ltddd50t7eEyIqF83p8+fdrmz59vQ4YMsREjRtiDDz5offr0sZaWljAOcI4gZjly5IiNHj3ali1b1un6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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# [Optional] We visually inspect the register\n", "from ahs_utils import show_register\n", "\n", "show_register(register)\n", "show_register(parallel_register)" ] }, { "cell_type": "markdown", "id": "8e30df2e-45fc-4a41-8000-4ee88a3a1519", "metadata": {}, "source": [ "## AHS program for creating the checkerboard phase" ] }, { "cell_type": "markdown", "id": "46bae3ef-1c23-43df-b153-a527d64eea3d", "metadata": {}, "source": [ "We use the same values and timings for the Amplitude, Phase, and Detuning from the [Ordered phases in Rydberg Systems](./02_Ordered_phases_in_Rydberg_systems.ipynb) example " ] }, { "cell_type": "code", "execution_count": 9, "id": "5a31ab21", "metadata": {}, "outputs": [], "source": [ "from ahs_utils import get_drive\n", "\n", "time_points = [0, 2.5e-7, 2.75e-6, 3e-6] # s\n", "\n", "amplitude_min = 0\n", "amplitude_max = 1.5708e7 # rad / s\n", "\n", "detuning_min = -5.49778714e7 # rad / s\n", "detuning_max = 5.49778714e7 # rad / s\n", "\n", "amplitude_values = [amplitude_min, amplitude_max, amplitude_max, amplitude_min]\n", "detuning_values = [detuning_min, detuning_min, detuning_max, detuning_max]\n", "phase_values = [0, 0, 0, 0]\n", "\n", "drive = get_drive(time_points, amplitude_values, detuning_values, phase_values)" ] }, { "cell_type": "code", "execution_count": 10, "id": "9993d59b-7a20-4098-b99c-dcf4e3d1b0ad", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from ahs_utils import show_global_drive\n", "\n", "# [Optional] We visually inspect the time series\n", "\n", "show_global_drive(drive);" ] }, { "cell_type": "markdown", "id": "e8d1fc59-54e2-4518-a65b-ddd2fdcb1f0e", "metadata": {}, "source": [ "We now construct the AHS program to be run. Note that we create two programs and execute them to allow us to compare the accuracy of our results, with `parallel_ahs_program` being run on Aquila and `ahs_program` just being simulated with the local simulator. " ] }, { "cell_type": "code", "execution_count": 11, "id": "20d44c2e-cdc5-44e3-9592-f934999cf914", "metadata": {}, "outputs": [], "source": [ "parallel_ahs_program = AnalogHamiltonianSimulation(\n", " register=parallel_register, \n", " hamiltonian=drive\n", ")\n", "\n", "ahs_program = AnalogHamiltonianSimulation(\n", " register=register, \n", " hamiltonian=drive\n", ")\n", "\n", "ahs_program = ahs_program.discretize(qpu)\n", "parallel_ahs_program = parallel_ahs_program.discretize(qpu)" ] }, { "cell_type": "markdown", "id": "d6c6e1ed-c726-4d46-b5f3-749f9eb07ec0", "metadata": {}, "source": [ "## Run on simulator" ] }, { "cell_type": "markdown", "id": "69aad79a-a494-463f-911f-2e7fc71d0ff7", "metadata": {}, "source": [ "First, we run a non-parallelized register on the local simulator, and sample 400 shots. Below we also explicitly specified the values of `steps`, which are the number of time steps in the simulation." ] }, { "cell_type": "code", "execution_count": 12, "id": "88cdddd1", "metadata": {}, "outputs": [], "source": [ "from braket.devices import LocalSimulator\n", "sim = LocalSimulator(\"braket_ahs\")\n", "\n", "sim_result = sim.run(ahs_program, shots=400, steps=100).result()" ] }, { "cell_type": "markdown", "id": "b8d716b5-acbb-48a4-909d-4d5470d246d9", "metadata": {}, "source": [ "We compute the average Rydberg density on the 9 sites." ] }, { "cell_type": "code", "execution_count": 13, "id": "025f3a2f-d0c0-493e-b6d6-7fd15b7ee348", "metadata": {}, "outputs": [], "source": [ "from ahs_utils import get_avg_density\n", "\n", "sim_density = get_avg_density(sim_result)" ] }, { "cell_type": "markdown", "id": "b27fd6ec-c677-4c18-aee3-533f6faeb24d", "metadata": {}, "source": [ "## Run on Aquila\n", "\n", "Next, we run a the parallelized register on the QPU. This time, we only need to run 100 shots to get to the same statistical certainty, because we are running four batches in parallel in each shot." ] }, { "cell_type": "markdown", "id": "767ec35c-b9f2-4027-a2b6-ea10a3c40512", "metadata": {}, "source": [ "
\n", "Note: Some atoms may be missing even if the shot was successful. We recommend comparing pre_sequence of each shot with the requested atom filling in the AHS program specification. \n", "
" ] }, { "cell_type": "code", "execution_count": 14, "id": "fc86d8ac-9ea0-4005-b156-e271782e3377", "metadata": {}, "outputs": [], "source": [ "# This cell submits the task, waits for its completion, and gets the results.\n", "# To check the status of the task, go to the Amazon Braket tasks page at\n", "# https://us-east-1.console.aws.amazon.com/braket/home?region=us-east-1#/tasks\n", "\n", "qpu_result = qpu.run(parallel_ahs_program, shots=100).result()" ] }, { "cell_type": "code", "execution_count": 15, "id": "5a799030", "metadata": {}, "outputs": [], "source": [ "# collecting QPU Data\n", "\n", "all_sequences = []\n", "for measurement in qpu_result.measurements:\n", " # iterate over key and values\n", " for (ix,iy),inds in batch_mapping.items():\n", " batch_sequence = list(measurement.post_sequence[inds])\n", " all_sequences.append(batch_sequence)\n", "\n", "all_rydberg = 1 - np.array(all_sequences)\n", "qpu_density = all_rydberg.mean(axis=0)" ] }, { "cell_type": "markdown", "id": "19f42800-41ee-4ca4-960c-2da6495d5777", "metadata": {}, "source": [ "After running the separate programs, we can analyze the results.\n", "\n", "We average the data across all the batches that ran in parallel across multiple shots, represented visually as a single batch versus the simulator result which just ran a single batch." ] }, { "cell_type": "code", "execution_count": 16, "id": "8f897f5b-2c9f-4bc7-9f71-b2ab227b1e9e", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from ahs_utils import plot_avg_density_2D\n", "\n", "# Compare results side-by-side\n", "fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(12,5))\n", "\n", "# plot density of all batches that ran in parallel with geometry and averaged values of single batch\n", "\n", "plot_avg_density_2D(qpu_density, parallel_register, batch_mapping=batch_mapping, custom_axes = ax1);\n", "ax1.set_title(\"Averages of Densities across parallelized batches\");\n", "\n", "# plot density of simulator result\n", "plot_avg_density_2D(sim_density, register, custom_axes = ax2);\n", "ax2.set_title(\"Simulator Result\");\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "9c1e79d8-c9ff-4d5d-8b4f-3aa0e0b7d7cb", "metadata": {}, "source": [ "As we can see from the results, the simulated single batch result and the results from the batches running in parallel line up with what we expect for the checkerboard phase." ] }, { "cell_type": "code", "execution_count": null, "id": "5974573a-2a03-46bc-aad9-9a39fefb906a", "metadata": {}, "outputs": [], "source": [ "print(\"Task Summary\")\n", "print(tracker.quantum_tasks_statistics())\n", "print('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", "print(f\"Estimated cost to run this example: {tracker.qpu_tasks_cost() + tracker.simulator_tasks_cost():.2f} USD\")" ] } ], "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.7" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }