diff --git a/.gitignore b/.gitignore index b6e4761..af48cb0 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,6 @@ dmypy.json # Pyre type checker .pyre/ + +./DS_Store +**/.DS_Store \ No newline at end of file diff --git a/qbraid_lab/quantum_jobs/aws_iqm_quantum_jobs.ipynb b/qbraid_lab/quantum_jobs/aws_iqm_quantum_jobs.ipynb index 0d30558..57f31cd 100644 --- a/qbraid_lab/quantum_jobs/aws_iqm_quantum_jobs.ipynb +++ b/qbraid_lab/quantum_jobs/aws_iqm_quantum_jobs.ipynb @@ -20,15 +20,17 @@ "source": [ "

qBraid instructions

\n", "\n", - "If you are not planning to submit jobs to quantum computers, this notebook should work well with the `Python [Default]` kernel. If you want to submit jobs to quantum computers, make sure that you have installed the amazon braket environment on qBraid ([installation instructions](https://qbraid-qbraid.readthedocs-hosted.com/en/latest/lab/environments.html#install-environment)) and have selected the `Python [Braket]` kernel. (You can switch kernels by going to the Menu Bar → Kernel → Change Kernel).\n", + "If you are not planning to submit jobs to quantum computers, this notebook should work well with the `Python [Default]` kernel. If you want to submit jobs to quantum computers, make sure that you have installed the amazon braket environment on qBraid ([installation instructions](https://qbraid-qbraid.readthedocs-hosted.com/en/latest/lab/environments.html#install-environment)) and have selected the `Python [Braket]` kernel. (You can switch kernels by going to the Menu Bar → Kernel → Change Kernel). You would want to use the amazon-braket-sdk latest release for it. Check our environments.\n", "\n", "If you do not have AWS credentials for submitting your quantum jobs, you will need qBraid Credits. If you have qBraid Credits, you can run the following line of code to submit quantum jobs through qBraid:" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 1, + "metadata": { + "tags": [] + }, "outputs": [], "source": [ "#!qbraid jobs enable amazon_braket #You only need to run this line once after you install the environment" @@ -87,52 +89,9 @@ "Gate set supported by SDK:\n", " ['CCNot', 'CNot', 'CPhaseShift', 'CPhaseShift00', 'CPhaseShift01', 'CPhaseShift10', 'CSwap', 'CV', 'CY', 'CZ', 'ECR', 'GPhase', 'GPi', 'GPi2', 'H', 'I', 'ISwap', 'MS', 'PRx', 'PSwap', 'PhaseShift', 'PulseGate', 'Rx', 'Ry', 'Rz', 'S', 'Si', 'Swap', 'T', 'Ti', 'U', 'Unitary', 'V', 'Vi', 'X', 'XX', 'XY', 'Y', 'YY', 'Z', 'ZZ']\n", "\n", - "\n" - ] - }, - { - "ename": "ClientError", - "evalue": "An error occurred (UnrecognizedClientException) when calling the GetDevice operation: The security token included in the request is invalid.", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mClientError\u001b[0m Traceback (most recent call last)", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "Cell \u001b[0;32mIn[3], line 8\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# the IQM Garnet device\u001b[39;00m\n\u001b[0;32m----> 8\u001b[0m device \u001b[38;5;241m=\u001b[39m \u001b[43mAwsDevice\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43marn:aws:braket:eu-north-1::device/qpu/iqm/Garnet\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 9\u001b[0m supported_gates \u001b[38;5;241m=\u001b[39m device\u001b[38;5;241m.\u001b[39mproperties\u001b[38;5;241m.\u001b[39maction[\n\u001b[1;32m 10\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbraket.ir.openqasm.program\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 11\u001b[0m ]\u001b[38;5;241m.\u001b[39msupportedOperations\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:113\u001b[0m, in \u001b[0;36mAwsDevice.__init__\u001b[0;34m(self, arn, aws_session, noise_model)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_type \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m--> 113\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_aws_session \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_session_and_initialize\u001b[49m\u001b[43m(\u001b[49m\u001b[43maws_session\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mAwsSession\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ports \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:337\u001b[0m, in \u001b[0;36mAwsDevice._get_session_and_initialize\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 335\u001b[0m device_region \u001b[38;5;241m=\u001b[39m AwsDevice\u001b[38;5;241m.\u001b[39mget_device_region(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_arn)\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\n\u001b[0;32m--> 337\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_regional_device_session\u001b[49m\u001b[43m(\u001b[49m\u001b[43msession\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 338\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m device_region\n\u001b[1;32m 339\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_non_regional_device_session(session)\n\u001b[1;32m 340\u001b[0m )\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:353\u001b[0m, in \u001b[0;36mAwsDevice._get_regional_device_session\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m ClientError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m--> 353\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m (\n\u001b[1;32m 354\u001b[0m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_arn\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m not found\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 355\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m e\u001b[38;5;241m.\u001b[39mresponse[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mError\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCode\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mResourceNotFoundException\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 356\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m e\n\u001b[1;32m 357\u001b[0m ) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01me\u001b[39;00m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:350\u001b[0m, in \u001b[0;36mAwsDevice._get_regional_device_session\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 349\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 350\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_populate_properties\u001b[49m\u001b[43m(\u001b[49m\u001b[43mregion_session\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 351\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m region_session\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:381\u001b[0m, in \u001b[0;36mAwsDevice._populate_properties\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 380\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_populate_properties\u001b[39m(\u001b[38;5;28mself\u001b[39m, session: AwsSession) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 381\u001b[0m metadata \u001b[38;5;241m=\u001b[39m \u001b[43msession\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_device\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_arn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 382\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_name \u001b[38;5;241m=\u001b[39m metadata\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdeviceName\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_session.py:634\u001b[0m, in \u001b[0;36mAwsSession.get_device\u001b[0;34m(self, arn)\u001b[0m\n\u001b[1;32m 626\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Calls the Amazon Braket `get_device` API to retrieve device metadata.\u001b[39;00m\n\u001b[1;32m 627\u001b[0m \n\u001b[1;32m 628\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 632\u001b[0m \u001b[38;5;124;03m dict[str, Any]: The response from the Amazon Braket `GetDevice` operation.\u001b[39;00m\n\u001b[1;32m 633\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 634\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbraket_client\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_device\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdeviceArn\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marn\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/botocore/client.py:565\u001b[0m, in \u001b[0;36mClientCreator._create_api_method.._api_call\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 564\u001b[0m \u001b[38;5;66;03m# The \"self\" in this scope is referring to the BaseClient.\u001b[39;00m\n\u001b[0;32m--> 565\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_api_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43moperation_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/botocore/client.py:1021\u001b[0m, in \u001b[0;36mBaseClient._make_api_call\u001b[0;34m(self, operation_name, api_params)\u001b[0m\n\u001b[1;32m 1020\u001b[0m error_class \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexceptions\u001b[38;5;241m.\u001b[39mfrom_code(error_code)\n\u001b[0;32m-> 1021\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m error_class(parsed_response, operation_name)\n\u001b[1;32m 1022\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "\u001b[0;31mClientError\u001b[0m: An error occurred (UnrecognizedClientException) when calling the GetDevice operation: The security token included in the request is invalid.", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mClientError\u001b[0m Traceback (most recent call last)", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "Cell \u001b[0;32mIn[3], line 8\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# the IQM Garnet device\u001b[39;00m\n\u001b[0;32m----> 8\u001b[0m device \u001b[38;5;241m=\u001b[39m \u001b[43mAwsDevice\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43marn:aws:braket:eu-north-1::device/qpu/iqm/Garnet\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 9\u001b[0m supported_gates \u001b[38;5;241m=\u001b[39m device\u001b[38;5;241m.\u001b[39mproperties\u001b[38;5;241m.\u001b[39maction[\n\u001b[1;32m 10\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbraket.ir.openqasm.program\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 11\u001b[0m ]\u001b[38;5;241m.\u001b[39msupportedOperations\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:113\u001b[0m, in \u001b[0;36mAwsDevice.__init__\u001b[0;34m(self, arn, aws_session, noise_model)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_type \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m--> 113\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_aws_session \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_session_and_initialize\u001b[49m\u001b[43m(\u001b[49m\u001b[43maws_session\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mAwsSession\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ports \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:337\u001b[0m, in \u001b[0;36mAwsDevice._get_session_and_initialize\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 335\u001b[0m device_region \u001b[38;5;241m=\u001b[39m AwsDevice\u001b[38;5;241m.\u001b[39mget_device_region(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_arn)\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\n\u001b[0;32m--> 337\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_regional_device_session\u001b[49m\u001b[43m(\u001b[49m\u001b[43msession\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 338\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m device_region\n\u001b[1;32m 339\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_non_regional_device_session(session)\n\u001b[1;32m 340\u001b[0m )\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:353\u001b[0m, in \u001b[0;36mAwsDevice._get_regional_device_session\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 352\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m ClientError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m--> 353\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m (\n\u001b[1;32m 354\u001b[0m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_arn\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m not found\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 355\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m e\u001b[38;5;241m.\u001b[39mresponse[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mError\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCode\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mResourceNotFoundException\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 356\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m e\n\u001b[1;32m 357\u001b[0m ) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01me\u001b[39;00m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:350\u001b[0m, in \u001b[0;36mAwsDevice._get_regional_device_session\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 349\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 350\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_populate_properties\u001b[49m\u001b[43m(\u001b[49m\u001b[43mregion_session\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 351\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m region_session\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:381\u001b[0m, in \u001b[0;36mAwsDevice._populate_properties\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 380\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_populate_properties\u001b[39m(\u001b[38;5;28mself\u001b[39m, session: AwsSession) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 381\u001b[0m metadata \u001b[38;5;241m=\u001b[39m \u001b[43msession\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_device\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_arn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 382\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_name \u001b[38;5;241m=\u001b[39m metadata\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdeviceName\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_session.py:634\u001b[0m, in \u001b[0;36mAwsSession.get_device\u001b[0;34m(self, arn)\u001b[0m\n\u001b[1;32m 626\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Calls the Amazon Braket `get_device` API to retrieve device metadata.\u001b[39;00m\n\u001b[1;32m 627\u001b[0m \n\u001b[1;32m 628\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 632\u001b[0m \u001b[38;5;124;03m dict[str, Any]: The response from the Amazon Braket `GetDevice` operation.\u001b[39;00m\n\u001b[1;32m 633\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m--> 634\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbraket_client\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_device\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdeviceArn\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marn\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/botocore/client.py:565\u001b[0m, in \u001b[0;36mClientCreator._create_api_method.._api_call\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 564\u001b[0m \u001b[38;5;66;03m# The \"self\" in this scope is referring to the BaseClient.\u001b[39;00m\n\u001b[0;32m--> 565\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_api_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43moperation_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/botocore/client.py:1021\u001b[0m, in \u001b[0;36mBaseClient._make_api_call\u001b[0;34m(self, operation_name, api_params)\u001b[0m\n\u001b[1;32m 1020\u001b[0m error_class \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexceptions\u001b[38;5;241m.\u001b[39mfrom_code(error_code)\n\u001b[0;32m-> 1021\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m error_class(parsed_response, operation_name)\n\u001b[1;32m 1022\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "\u001b[0;31mClientError\u001b[0m: An error occurred (UnrecognizedClientException) when calling the GetDevice operation: The security token included in the request is invalid.", - "\nThe above exception was the direct cause of the following exception:\n", - "\u001b[0;31mClientError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[3], line 8\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 7\u001b[0m \u001b[38;5;66;03m# the IQM Garnet device\u001b[39;00m\n\u001b[0;32m----> 8\u001b[0m device \u001b[38;5;241m=\u001b[39m \u001b[43mAwsDevice\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43marn:aws:braket:eu-north-1::device/qpu/iqm/Garnet\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 9\u001b[0m supported_gates \u001b[38;5;241m=\u001b[39m device\u001b[38;5;241m.\u001b[39mproperties\u001b[38;5;241m.\u001b[39maction[\n\u001b[1;32m 10\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbraket.ir.openqasm.program\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 11\u001b[0m ]\u001b[38;5;241m.\u001b[39msupportedOperations\n\u001b[1;32m 12\u001b[0m \u001b[38;5;66;03m# print the supported gate set\u001b[39;00m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:113\u001b[0m, in \u001b[0;36mAwsDevice.__init__\u001b[0;34m(self, arn, aws_session, noise_model)\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_poll_interval_seconds \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_type \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m--> 113\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_aws_session \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_session_and_initialize\u001b[49m\u001b[43m(\u001b[49m\u001b[43maws_session\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mAwsSession\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 114\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ports \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_frames \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:337\u001b[0m, in \u001b[0;36mAwsDevice._get_session_and_initialize\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 334\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_get_session_and_initialize\u001b[39m(\u001b[38;5;28mself\u001b[39m, session: AwsSession) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m AwsSession:\n\u001b[1;32m 335\u001b[0m device_region \u001b[38;5;241m=\u001b[39m AwsDevice\u001b[38;5;241m.\u001b[39mget_device_region(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_arn)\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\n\u001b[0;32m--> 337\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_regional_device_session\u001b[49m\u001b[43m(\u001b[49m\u001b[43msession\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 338\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m device_region\n\u001b[1;32m 339\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_non_regional_device_session(session)\n\u001b[1;32m 340\u001b[0m )\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:353\u001b[0m, in \u001b[0;36mAwsDevice._get_regional_device_session\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 351\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m region_session\n\u001b[1;32m 352\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m ClientError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m--> 353\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m (\n\u001b[1;32m 354\u001b[0m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_arn\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m not found\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 355\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m e\u001b[38;5;241m.\u001b[39mresponse[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mError\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCode\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mResourceNotFoundException\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 356\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m e\n\u001b[1;32m 357\u001b[0m ) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01me\u001b[39;00m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:350\u001b[0m, in \u001b[0;36mAwsDevice._get_regional_device_session\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 344\u001b[0m region_session \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 345\u001b[0m session\n\u001b[1;32m 346\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m session\u001b[38;5;241m.\u001b[39mregion \u001b[38;5;241m==\u001b[39m device_region\n\u001b[1;32m 347\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m AwsSession\u001b[38;5;241m.\u001b[39mcopy_session(session, device_region)\n\u001b[1;32m 348\u001b[0m )\n\u001b[1;32m 349\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 350\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_populate_properties\u001b[49m\u001b[43m(\u001b[49m\u001b[43mregion_session\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 351\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m region_session\n\u001b[1;32m 352\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m ClientError \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_device.py:381\u001b[0m, in \u001b[0;36mAwsDevice._populate_properties\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 380\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_populate_properties\u001b[39m(\u001b[38;5;28mself\u001b[39m, session: AwsSession) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 381\u001b[0m metadata \u001b[38;5;241m=\u001b[39m \u001b[43msession\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_device\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_arn\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 382\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_name \u001b[38;5;241m=\u001b[39m metadata\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdeviceName\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 383\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_status \u001b[38;5;241m=\u001b[39m metadata\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdeviceStatus\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/braket/aws/aws_session.py:634\u001b[0m, in \u001b[0;36mAwsSession.get_device\u001b[0;34m(self, arn)\u001b[0m\n\u001b[1;32m 625\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget_device\u001b[39m(\u001b[38;5;28mself\u001b[39m, arn: \u001b[38;5;28mstr\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mdict\u001b[39m[\u001b[38;5;28mstr\u001b[39m, Any]:\n\u001b[1;32m 626\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Calls the Amazon Braket `get_device` API to retrieve device metadata.\u001b[39;00m\n\u001b[1;32m 627\u001b[0m \n\u001b[1;32m 628\u001b[0m \u001b[38;5;124;03m Args:\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 632\u001b[0m \u001b[38;5;124;03m dict[str, Any]: The response from the Amazon Braket `GetDevice` operation.\u001b[39;00m\n\u001b[1;32m 633\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 634\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbraket_client\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_device\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdeviceArn\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marn\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/botocore/client.py:565\u001b[0m, in \u001b[0;36mClientCreator._create_api_method.._api_call\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 561\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 562\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mpy_operation_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m() only accepts keyword arguments.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 563\u001b[0m )\n\u001b[1;32m 564\u001b[0m \u001b[38;5;66;03m# The \"self\" in this scope is referring to the BaseClient.\u001b[39;00m\n\u001b[0;32m--> 565\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_api_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43moperation_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/opt/.qbraid/environments/qbraid_000000/pyenv/lib/python3.11/site-packages/botocore/client.py:1021\u001b[0m, in \u001b[0;36mBaseClient._make_api_call\u001b[0;34m(self, operation_name, api_params)\u001b[0m\n\u001b[1;32m 1017\u001b[0m error_code \u001b[38;5;241m=\u001b[39m error_info\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mQueryErrorCode\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m error_info\u001b[38;5;241m.\u001b[39mget(\n\u001b[1;32m 1018\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCode\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1019\u001b[0m )\n\u001b[1;32m 1020\u001b[0m error_class \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexceptions\u001b[38;5;241m.\u001b[39mfrom_code(error_code)\n\u001b[0;32m-> 1021\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m error_class(parsed_response, operation_name)\n\u001b[1;32m 1022\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1023\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parsed_response\n", - "\u001b[0;31mClientError\u001b[0m: An error occurred (UnrecognizedClientException) when calling the GetDevice operation: The security token included in the request is invalid." + "\n", + "Gate set supported by the IQM device:\n", + " ['ccnot', 'cnot', 'cphaseshift', 'cphaseshift00', 'cphaseshift01', 'cphaseshift10', 'cswap', 'swap', 'iswap', 'pswap', 'ecr', 'cy', 'cz', 'xy', 'xx', 'yy', 'zz', 'h', 'i', 'phaseshift', 'rx', 'ry', 'rz', 's', 'si', 't', 'ti', 'v', 'vi', 'x', 'y', 'z', 'start_verbatim_box', 'end_verbatim_box']\n" ] } ], @@ -187,7 +146,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": { "pycharm": { "name": "#%%\n" @@ -202,7 +161,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": { "tags": [] }, @@ -247,7 +206,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": { "pycharm": { "name": "#%%\n" @@ -262,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": { "tags": [] }, @@ -271,7 +230,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Counter({'11': 509, '00': 491})\n" + "Counter({'11': 515, '00': 485})\n" ] } ], @@ -286,7 +245,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": { "tags": [] }, @@ -297,13 +256,13 @@ "Text(0, 0.5, 'counts')" ] }, - "execution_count": 10, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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pM/+AyjJ+r9BAJcHj8ejwsJCjR8/XhMmTNCaNWt05swZzZw5Uw6HQ7NmzZLH41FKSorsdrvmz58vt9vNJ7GuRAHAMK+//npAUqdbYWFhIBAIBDZs2HDB7StWrIjo3AAu3dq1awOZmZmBhISEwIQJEwJ79uyxtp07dy7w4x//OHDVVVcF+vXrF7j99tsDtbW1EZwWkcL37AAAAKNxzQ4AADAasQMAAIxG7AAAAKMROwAAwGjEDgAAMBqxAwAAjEbsAAAAoxE7AADAaMQOgB538803a8GCBRfdPmzYMK1Zs6ZXZjl27JhsNpsOHDjQK88HIPKIHQARt3//fs2ZM8dattlseumll7p8/40bNyo5OblL+2ZkZKi2tlajRo26xCkBXK74Q6AAIi41NbVXnqelpUUJCQn8wVfgCsOZHQC94vz585o3b54cDocGDRqkZcuWqeNP833+baxhw4ZJkm6//XbZbDZr+c9//rO+8Y1vaMCAAbLb7crOztZbb72lXbt2aebMmWpsbJTNZpPNZtMDDzxgPdbDDz+sGTNmyG63a86cOZ3extq1a5dsNpvKy8s1fvx49evXTzfccIOqqqqC5n/kkUeUlpamAQMG6Ic//KGWLFmicePGWdt37dqlCRMmKCkpScnJyfra176mjz76qKf+OQFcAmIHQK/YtGmT4uLitG/fPj355JN64okn9G//9m+d9tu/f78kacOGDaqtrbWWp0+friFDhmj//v2qrKzUkiVLFB8frxtuuEFr1qyR3W5XbW2tamtrdf/991uP94tf/EJjx47VO++8o2XLll10vp/97Gd6/PHH9dZbbykuLk733nuvte3555/Xo48+qscee0yVlZXKzMzUunXrrO3nz5/Xbbfdpq9//et699135fV6NWfOHNlstm7/uwHoPt7GAtArMjIytHr1atlsNg0fPlwHDx7U6tWrNXv27KD9Ot7SSk5ODnq7qbq6WosWLdKIESMkSddcc421zeFwyGazXfDtqUmTJuknP/mJtXzs2LELzvfoo4/q61//uiRpyZIlys/PV1NTk/r06aO1a9dq1qxZmjlzpiRp+fLl2rlzp06fPi1J8vv9amxs1K233qqvfOUrkqSRI0de0r8PgJ7DmR0AvSInJyfoTIfb7daRI0fU1tbWpft7PB798Ic/VG5urlauXKkPP/ywS/cbP358l/YbM2aM9fPgwYMlSfX19ZKkqqoqTZgwIWj/zy+npKTonnvuUV5enqZOnaonn3xStbW1XXpeAD2P2AFwWXjggQd06NAh5efn67XXXlNWVpa2bt36hfdLSkrq0uPHx8dbP3dEWXt7e5fn27Bhg7xer2644Qa9+OKLuvbaa7Vnz54u3x9AzyF2APSKvXv3Bi3v2bNH11xzjWJjYzvtGx8ff8EzPtdee60WLlyonTt3atq0adqwYYMkKSEhoctniEIxfPhw69qhDv93WZL+7u/+TsXFxdq9e7dGjRqlzZs399hMALqO2AHQK6qrq+XxeFRVVaVf//rXWrt2re67774L7jts2DCVl5fL5/Pp008/1blz5zRv3jzt2rVLH330kd58803t37/fui5m2LBhOn36tMrLy/Xxxx/r7NmzYZ19/vz5evbZZ7Vp0yYdOXJEjzzyiN59913rDNDRo0dVXFwsr9erjz76SDt37tSRI0e4bgeIElygDKBXzJgxQ+fOndOECRMUGxur++67L+iLBD/v8ccfl8fj0TPPPKMvfelL+p//+R+dPHlSM2bMUF1dnQYNGqRp06bpwQcflCTdcMMN+tGPfqQ777xTJ0+e1IoVK6yPn4fD9OnT9b//+7+6//771dTUpO9973u65557tG/fPklSv379dPjwYW3atEknT57U4MGDVVRUpH/6p38K2wwAQmcLdHzRBQCgy2655Ra5XC79x3/8R6RHAfAFOLMDAF/g7NmzWr9+vfLy8hQbG6tf//rXevXVV1VWVhbp0QB0AWd2AOALnDt3TlOnTtU777yjpqYmDR8+XEuXLtW0adMiPRqALiB2AACA0fg0FgAAMBqxAwAAjEbsAAAAoxE7AADAaMQOAAAwGrEDAACMRuwAAACjETsAAMBo/w85rHuw159HHgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -339,7 +298,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": { "pycharm": { "name": "#%%\n" @@ -388,7 +347,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": { "pycharm": { "name": "#%%\n" @@ -437,7 +396,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": { "pycharm": { "name": "#%%\n" @@ -449,11 +408,35 @@ "name": "stdout", "output_type": "stream", "text": [ - "Status of (reconstructed) task: QUEUED\n", + "Status of (reconstructed) task: COMPLETED\n", + "\n", "\n", + "10 shots taken on machine arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet.\n", "\n", - "Sorry, your task is still being processed and has not been finalized yet.\n" + "The compiled circuit is:\n", + " OPENQASM 3.0;\n", + "bit[2] c;\n", + "#pragma braket verbatim\n", + "box {\n", + "prx(0.5*pi,1.5*pi) $1;\n", + "prx(0.5*pi,1.5*pi) $4;\n", + "cz $4,$1;\n", + "prx(0.5*pi,0.5*pi) $1;\n", + "}\n", + "c[0] = measure $4;\n", + "c[1] = measure $1;\n", + "Measurement counts: Counter({'11': 6, '00': 4})\n" ] + }, + { + "data": { + "image/png": "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LY2lS5d2+HW2bNkS559/fjQ0NER5eXmccMIJ8V//9V9x2mmnFTIWAMCnWkFhd/zxx8f69evjgQceiJdeeikiIs4777yYMWNG9O7du8Ov8/3vf7+QwwMAsBcFhV1NTU0MGjQoLrroojbr77333nj99dfj6quv7pThAADouII+Y3fXXXfFyJEj260fNWpU3Hnnnfs9FAAA+66gsGtsbIwhQ4a0W19RURENDQ37PRQAAPuuoLCrrKyMp59+ut36p59+OoYOHbrfQwEAsO8K+ozdRRddFHPnzo1du3bFlClTIiJi2bJl8Vd/9Vf7/MsTAAB0joLC7tvf/nZs3bo1/vIv/zJ27twZERG9evWKq6++Oqqrqzt1QAAAOqagsMvlcrFgwYK49tpr43//93+jd+/ecfTRR/u5LwCADBUUdh847LDD4sQTT+ysWQAA2A8F3TwBAEDXI+wAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEpFp2NXU1MSJJ54Yffr0iYEDB8ZZZ50V69aty3IkAICilWnYLV++PGbPnh0rV66Mxx9/PHbt2hVf+cpXYvv27VmOBQBQlHpkefDHHnuszfLixYtj4MCBsXr16jjllFMymgoAoDh1qc/YNTU1RUREv379Mp4EAKD4ZHrG7sP27NkTc+fOjZNPPjlGjx69131aWlqipaUlv9zc3HywxgMA6PK6zBm72bNnx4svvhgPP/zwR+5TU1MT5eXl+UdlZeVBnBAAoGvrEmE3Z86c+I//+I948sknY9iwYR+5X3V1dTQ1NeUf9fX1B3FKAICuLdNLsa2trXHppZfGkiVLora2No466qiP3b+0tDRKS0sP0nQAAMUl07CbPXt2PPjgg/GjH/0o+vTpE42NjRERUV5eHr17985yNACAopPppdhFixZFU1NTTJ48OYYMGZJ/PPLII1mOBQBQlDK/FAsAQOfoEjdPAACw/4QdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCIyDbunnnoqpk+fHkOHDo1cLhePPvpoluMAABS1TMNu+/btMWbMmLjjjjuyHAMAIAk9sjz46aefHqeffnqWIwAAJCPTsNtXLS0t0dLSkl9ubm7OcBoAgK6lqG6eqKmpifLy8vyjsrIy65EAALqMogq76urqaGpqyj/q6+uzHgkAoMsoqkuxpaWlUVpamvUYAABdUlGdsQMA4KNlesZu27Zt8fLLL+eXN2zYEGvXro1+/frFEUcckeFkAADFJ9Owe/bZZ+PUU0/NL1dVVUVExMyZM2Px4sUZTQUAUJwyDbvJkydHa2trliMAACTDZ+wAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEtElwu6OO+6I4cOHR69evWLixImxatWqrEcCACg6mYfdI488ElVVVTFv3rx47rnnYsyYMTFt2rTYsmVL1qMBABSVzMPue9/7Xlx00UUxa9asOO644+LOO++MQw45JO69996sRwMAKCqZht3OnTtj9erVMXXq1Py6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tm0REdHc3BxNTU1x5plnxuc+97mIiDj22GP36e8H+PRxxg4oWl/84hfbnMGaNGlSrF+/Pnbv3t2h51dVVcU3v/nNmDp1atx0003xyiuvdOh548eP79B+J5xwQv7PQ4YMiYiILVu2RETEunXrYsKECW32//Byv3794hvf+EZMmzYtpk+fHrfeems0NDR06LjAp5ewAz61rr/++vif//mfOOOMM+K///u/47jjjoslS5Z84vMOPfTQDr1+z54983/+IED37NnT4fnuu+++WLFiRZx00knxyCOPxDHHHBMrV67s8POBTx9hBxStn//8522WV65cGUcffXR079693b49e/bc65m8Y445Jq644opYunRpnH322XHfffdFRERJSUmHz/wVYsSIEfnP+n3gd5cjIr7whS9EdXV1PPPMMzF69Oh48MEHD9hMQPETdkDR2rRpU1RVVcW6devioYceittuuy0uv/zyve47fPjwWLZsWTQ2Nsabb74Z7777bsyZMydqa2vj1Vdfjaeffjrq6uryn2MbPnx4bNu2LZYtWxZvvPFGvPPOO506+6WXXhrf//734/7774/169fHDTfcEM8//3z+zN6GDRuiuro6VqxYEa+++mosXbo01q9f73N2wMdy8wRQtM4///x49913Y8KECdG9e/e4/PLL23wp8YfdfPPNUVVVFffcc0985jOfiV/96lexdevWOP/88+O1116LAQMGxNlnnx3z58+PiIiTTjopvvWtb8W5554bW7dujXnz5uW/8qQzzJgxI37961/HVVddFTt27Iivf/3r8Y1vfCNWrVoVERGHHHJIvPTSS3H//ffH1q1bY8iQITF79uz4i7/4i06bAUhPrvWDL30CIFOnnXZaDB48OP7lX/4l61GAIuWMHUAG3nnnnbjzzjtj2rRp0b1793jooYfiiSeeiMcffzzr0YAi5owdQAbefffdmD59eqxZsyZ27NgRI0aMiL/5m7+Js88+O+vRgCIm7AAAEuGuWACARAg7AIBECDsAgEQIOwCARAg7AIBECDsAgEQIOwCARAg7AIBECDsAgET8P3yA7dYTEPcsAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -480,7 +463,7 @@ " print(\"{} shots taken on machine {}.\\n\".format(shots, machine))\n", " \n", " # get the compiled circuit\n", - " print(\"The compiled circuit is:\\n\", iqm_results.additionalMetadata.iqmMetadata.compiledProgram)\n", + " print(\"The compiled circuit is:\\n\", iqm_results.additional_metadata.iqmMetadata.compiledProgram)\n", " \n", " # get measurement counts\n", " iqm_counts = iqm_results.measurement_counts\n", @@ -504,7 +487,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 13, "metadata": { "tags": [] }, @@ -513,9 +496,20 @@ "name": "stdout", "output_type": "stream", "text": [ - "Status of (reconstructed) task: QUEUED\n", - "Sorry, your task is still being processed and has not been finalized yet.\n" + "Status of (reconstructed) task: COMPLETED\n", + "10 shots taken on machine arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet.\n", + "Measurement counts: Counter({'11': 6, '00': 4})\n" ] + }, + { + "data": { + "image/png": "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LY2lS5d2+HW2bNkS559/fjQ0NER5eXmccMIJ8V//9V9x2mmnFTIWAMCnWkFhd/zxx8f69evjgQceiJdeeikiIs4777yYMWNG9O7du8Ov8/3vf7+QwwMAsBcFhV1NTU0MGjQoLrroojbr77333nj99dfj6quv7pThAADouII+Y3fXXXfFyJEj260fNWpU3Hnnnfs9FAAA+66gsGtsbIwhQ4a0W19RURENDQ37PRQAAPuuoLCrrKyMp59+ut36p59+OoYOHbrfQwEAsO8K+ozdRRddFHPnzo1du3bFlClTIiJi2bJl8Vd/9Vf7/MsTAAB0joLC7tvf/nZs3bo1/vIv/zJ27twZERG9evWKq6++Oqqrqzt1QAAAOqagsMvlcrFgwYK49tpr43//93+jd+/ecfTRR/u5LwCADBUUdh847LDD4sQTT+ysWQAA2A8F3TwBAEDXI+wAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEpFp2NXU1MSJJ54Yffr0iYEDB8ZZZ50V69aty3IkAICilWnYLV++PGbPnh0rV66Mxx9/PHbt2hVf+cpXYvv27VmOBQBQlHpkefDHHnuszfLixYtj4MCBsXr16jjllFMymgoAoDh1qc/YNTU1RUREv379Mp4EAKD4ZHrG7sP27NkTc+fOjZNPPjlGjx69131aWlqipaUlv9zc3HywxgMA6PK6zBm72bNnx4svvhgPP/zwR+5TU1MT5eXl+UdlZeVBnBAAoGvrEmE3Z86c+I//+I948sknY9iwYR+5X3V1dTQ1NeUf9fX1B3FKAICuLdNLsa2trXHppZfGkiVLora2No466qiP3b+0tDRKS0sP0nQAAMUl07CbPXt2PPjgg/GjH/0o+vTpE42NjRERUV5eHr17985yNACAopPppdhFixZFU1NTTJ48OYYMGZJ/PPLII1mOBQBQlDK/FAsAQOfoEjdPAACw/4QdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCKEHQBAIoQdAEAihB0AQCIyDbunnnoqpk+fHkOHDo1cLhePPvpoluMAABS1TMNu+/btMWbMmLjjjjuyHAMAIAk9sjz46aefHqeffnqWIwAAJCPTsNtXLS0t0dLSkl9ubm7OcBoAgK6lqG6eqKmpifLy8vyjsrIy65EAALqMogq76urqaGpqyj/q6+uzHgkAoMsoqkuxpaWlUVpamvUYAABdUlGdsQMA4KNlesZu27Zt8fLLL+eXN2zYEGvXro1+/frFEUcckeFkAADFJ9Owe/bZZ+PUU0/NL1dVVUVExMyZM2Px4sUZTQUAUJwyDbvJkydHa2trliMAACTDZ+wAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEiHsAAASIewAABIh7AAAEtElwu6OO+6I4cOHR69evWLixImxatWqrEcCACg6mYfdI488ElVVVTFv3rx47rnnYsyYMTFt2rTYsmVL1qMBABSVzMPue9/7Xlx00UUxa9asOO644+LOO++MQw45JO69996sRwMAKCqZht3OnTtj9erVMXXq1Py6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tm0REdHc3BxNTU1x5plnxuc+97mIiDj22GP36e8H+PRxxg4oWl/84hfbnMGaNGlSrF+/Pnbv3t2h51dVVcU3v/nNmDp1atx0003xyiuvdOh548eP79B+J5xwQv7PQ4YMiYiILVu2RETEunXrYsKECW32//Byv3794hvf+EZMmzYtpk+fHrfeems0NDR06LjAp5ewAz61rr/++vif//mfOOOMM+K///u/47jjjoslS5Z84vMOPfTQDr1+z54983/+IED37NnT4fnuu+++WLFiRZx00knxyCOPxDHHHBMrV67s8POBTx9hBxStn//8522WV65cGUcffXR079693b49e/bc65m8Y445Jq644opYunRpnH322XHfffdFRERJSUmHz/wVYsSIEfnP+n3gd5cjIr7whS9EdXV1PPPMMzF69Oh48MEHD9hMQPETdkDR2rRpU1RVVcW6devioYceittuuy0uv/zyve47fPjwWLZsWTQ2Nsabb74Z7777bsyZMydqa2vj1Vdfjaeffjrq6uryn2MbPnx4bNu2LZYtWxZvvPFGvPPOO506+6WXXhrf//734/7774/169fHDTfcEM8//3z+zN6GDRuiuro6VqxYEa+++mosXbo01q9f73N2wMdy8wRQtM4///x49913Y8KECdG9e/e4/PLL23wp8YfdfPPNUVVVFffcc0985jOfiV/96lexdevWOP/88+O1116LAQMGxNlnnx3z58+PiIiTTjopvvWtb8W5554bW7dujXnz5uW/8qQzzJgxI37961/HVVddFTt27Iivf/3r8Y1vfCNWrVoVERGHHHJIvPTSS3H//ffH1q1bY8iQITF79uz4i7/4i06bAUhPrvWDL30CIFOnnXZaDB48OP7lX/4l61GAIuWMHUAG3nnnnbjzzjtj2rRp0b1793jooYfiiSeeiMcffzzr0YAi5owdQAbefffdmD59eqxZsyZ27NgRI0aMiL/5m7+Js88+O+vRgCIm7AAAEuGuWACARAg7AIBECDsAgEQIOwCARAg7AIBECDsAgEQIOwCARAg7AIBECDsAgET8P3yA7dYTEPcsAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -625,20 +619,13 @@ "plt.tight_layout()\n", "plt.savefig('iqm2.png', dpi=700)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Braket v1.80]", "language": "python", - "name": "python3" + "name": "python3_amazon_4cmb66" }, "language_info": { "codemirror_mode": { @@ -650,7 +637,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.9.18" } }, "nbformat": 4,