From 2434a9a29900972e5fe6dace3804384ee08d9df7 Mon Sep 17 00:00:00 2001 From: Kshitij Chhabra Date: Thu, 8 Jun 2023 10:58:31 -0700 Subject: [PATCH] fix: Fallback to JAQCD for device properties (#104) * fix: Fallback to JAQCD for device properties * fix: reformat --- .../0_how_to_access_AWS_Braket_devices.ipynb | 159 ++++++++++-------- docs/how_tos/4_how_to_verbatim_circuits.ipynb | 8 +- ...rial_qiskit-braket-provider_overview.ipynb | 14 +- qiskit_braket_provider/providers/adapter.py | 6 +- 4 files changed, 108 insertions(+), 79 deletions(-) diff --git a/docs/how_tos/0_how_to_access_AWS_Braket_devices.ipynb b/docs/how_tos/0_how_to_access_AWS_Braket_devices.ipynb index 5518bdd0..32123f1d 100644 --- a/docs/how_tos/0_how_to_access_AWS_Braket_devices.ipynb +++ b/docs/how_tos/0_how_to_access_AWS_Braket_devices.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "5e768d55", "metadata": {}, "outputs": [], @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "id": "200f52ee", "metadata": {}, "outputs": [], @@ -43,26 +43,29 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 3, "id": "906ecc1a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[BraketBackend[Aspen-10],\n", + "[BraketBackend[Aria 1],\n", + " BraketBackend[Aspen-10],\n", " BraketBackend[Aspen-11],\n", " BraketBackend[Aspen-8],\n", " BraketBackend[Aspen-9],\n", " BraketBackend[Aspen-M-1],\n", - " BraketBackend[IonQ Device],\n", + " BraketBackend[Aspen-M-2],\n", + " BraketBackend[Aspen-M-3],\n", + " BraketBackend[Harmony],\n", " BraketBackend[Lucy],\n", " BraketBackend[SV1],\n", " BraketBackend[TN1],\n", " BraketBackend[dm1]]" ] }, - "execution_count": 52, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -74,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 4, "id": "8c8672a6", "metadata": {}, "outputs": [ @@ -82,106 +85,136 @@ "name": "stdout", "output_type": "stream", "text": [ + "{'backend version': 2,\n", + " 'description': 'AWS Device: IonQ Aria 1.',\n", + " 'name': 'Aria 1',\n", + " 'number of qubits': 25,\n", + " 'online date': datetime.datetime(2023, 6, 7, 11, 12, 40, tzinfo=datetime.timezone.utc),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='x', num_qubits=1, num_clbits=0, params=[]),\n", + " Instruction(name='y', num_qubits=1, num_clbits=0, params=[]),\n", + " Instruction(name='z', num_qubits=1, num_clbits=0, params=[]),\n", + " Instruction(name='rx', num_qubits=1, num_clbits=0, params=[Parameter(theta)])]}\n", "{'backend version': 2,\n", " 'description': 'AWS Device: Rigetti Aspen-10.',\n", " 'name': 'Aspen-10',\n", " 'number of qubits': 38,\n", " 'online date': datetime.datetime(2021, 12, 15, 19, 48, 30, tzinfo=datetime.timezone.utc),\n", - " 'operations': [Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", - " Instruction(name='h', num_qubits=1, num_clbits=0, params=[]),\n", - " Instruction(name='id', num_qubits=1, num_clbits=0, params=[])]}\n", + " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", "{'backend version': 2,\n", " 'description': 'AWS Device: Rigetti Aspen-11.',\n", " 'name': 'Aspen-11',\n", " 'number of qubits': 48,\n", - " 'online date': datetime.datetime(2022, 3, 4, 20, 18, 30, tzinfo=datetime.timezone.utc),\n", - " 'operations': [Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", + " 'online date': datetime.datetime(2022, 8, 17, 21, 25, 7, tzinfo=datetime.timezone.utc),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", - " Instruction(name='h', num_qubits=1, num_clbits=0, params=[]),\n", - " Instruction(name='id', num_qubits=1, num_clbits=0, params=[])]}\n", + " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", "{'backend version': 2,\n", " 'description': 'AWS Device: Rigetti Aspen-8.',\n", " 'name': 'Aspen-8',\n", " 'number of qubits': 38,\n", " 'online date': None,\n", - " 'operations': [Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", - " Instruction(name='h', num_qubits=1, num_clbits=0, params=[]),\n", - " Instruction(name='id', num_qubits=1, num_clbits=0, params=[])]}\n", + " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", "{'backend version': 2,\n", " 'description': 'AWS Device: Rigetti Aspen-9.',\n", " 'name': 'Aspen-9',\n", " 'number of qubits': 38,\n", " 'online date': datetime.datetime(2021, 11, 18, 16, 13, 30, tzinfo=datetime.timezone.utc),\n", - " 'operations': [Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", - " Instruction(name='h', num_qubits=1, num_clbits=0, params=[]),\n", - " Instruction(name='id', num_qubits=1, num_clbits=0, params=[])]}\n", + " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", "{'backend version': 2,\n", " 'description': 'AWS Device: Rigetti Aspen-M-1.',\n", " 'name': 'Aspen-M-1',\n", " 'number of qubits': 148,\n", - " 'online date': datetime.datetime(2022, 4, 18, 17, 3, 38, tzinfo=datetime.timezone.utc),\n", - " 'operations': [Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", + " 'online date': datetime.datetime(2022, 6, 17, 20, 13, 38, tzinfo=datetime.timezone.utc),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", - " Instruction(name='h', num_qubits=1, num_clbits=0, params=[]),\n", - " Instruction(name='id', num_qubits=1, num_clbits=0, params=[])]}\n", + " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", "{'backend version': 2,\n", - " 'description': 'AWS Device: IonQ IonQ Device.',\n", - " 'name': 'IonQ Device',\n", + " 'description': 'AWS Device: Rigetti Aspen-M-2.',\n", + " 'name': 'Aspen-M-2',\n", + " 'number of qubits': 148,\n", + " 'online date': datetime.datetime(2023, 1, 20, 19, 31, 9, tzinfo=datetime.timezone.utc),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", + " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", + " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", + " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", + "{'backend version': 2,\n", + " 'description': 'AWS Device: Rigetti Aspen-M-3.',\n", + " 'name': 'Aspen-M-3',\n", + " 'number of qubits': 148,\n", + " 'online date': datetime.datetime(2023, 6, 8, 17, 35, 32, tzinfo=datetime.timezone.utc),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", + " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", + " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", + " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", + "{'backend version': 2,\n", + " 'description': 'AWS Device: IonQ Harmony.',\n", + " 'name': 'Harmony',\n", " 'number of qubits': 11,\n", - " 'online date': datetime.datetime(2022, 4, 13, 18, 51, 48, 328000, tzinfo=datetime.timezone.utc),\n", - " 'operations': [Instruction(name='x', num_qubits=1, num_clbits=0, params=[]),\n", + " 'online date': datetime.datetime(2023, 6, 8, 11, 0, 4, tzinfo=datetime.timezone.utc),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='x', num_qubits=1, num_clbits=0, params=[]),\n", " Instruction(name='y', num_qubits=1, num_clbits=0, params=[]),\n", " Instruction(name='z', num_qubits=1, num_clbits=0, params=[]),\n", - " Instruction(name='rx', num_qubits=1, num_clbits=0, params=[Parameter(theta)]),\n", - " Instruction(name='ry', num_qubits=1, num_clbits=0, params=[Parameter(theta)])]}\n", + " Instruction(name='rx', num_qubits=1, num_clbits=0, params=[Parameter(theta)])]}\n", "{'backend version': 2,\n", " 'description': 'AWS Device: Oxford Lucy.',\n", " 'name': 'Lucy',\n", " 'number of qubits': 8,\n", - " 'online date': datetime.datetime(2022, 4, 18, 17, 0, 8, tzinfo=datetime.timezone.utc),\n", - " 'operations': [Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", + " 'online date': datetime.datetime(2023, 6, 8, 17, 0, 8, tzinfo=datetime.timezone.utc),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", " Instruction(name='cy', num_qubits=2, num_clbits=0, params=[]),\n", - " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", - " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[])]}\n", "{'backend version': 2,\n", " 'description': 'AWS Device: Amazon Braket SV1.',\n", " 'name': 'SV1',\n", " 'number of qubits': 34,\n", - " 'online date': datetime.datetime(2022, 1, 28, 17, 18, 44, 525122),\n", - " 'operations': [Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", + " 'online date': datetime.datetime(2022, 6, 22, 10, 18),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", " Instruction(name='cy', num_qubits=2, num_clbits=0, params=[]),\n", - " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", - " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[])]}\n", "{'backend version': 2,\n", " 'description': 'AWS Device: Amazon Braket TN1.',\n", " 'name': 'TN1',\n", " 'number of qubits': 50,\n", - " 'online date': datetime.datetime(2022, 1, 28, 17, 19, 33, 143757),\n", - " 'operations': [Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", + " 'online date': datetime.datetime(2022, 6, 22, 10, 18),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", " Instruction(name='cy', num_qubits=2, num_clbits=0, params=[]),\n", - " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", - " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n", + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[])]}\n", "{'backend version': 2,\n", " 'description': 'AWS Device: Amazon Braket dm1.',\n", " 'name': 'dm1',\n", " 'number of qubits': 17,\n", - " 'online date': datetime.datetime(2022, 3, 1, 22, 53, 1, 476669),\n", - " 'operations': [Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", + " 'online date': datetime.datetime(2022, 6, 22, 10, 18),\n", + " 'operations': [Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]),\n", + " Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]),\n", " Instruction(name='cp', num_qubits=2, num_clbits=0, params=[Parameter(theta)]),\n", " Instruction(name='cy', num_qubits=2, num_clbits=0, params=[]),\n", - " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]),\n", - " Instruction(name='h', num_qubits=1, num_clbits=0, params=[])]}\n" + " Instruction(name='cz', num_qubits=2, num_clbits=0, params=[])]}\n" ] } ], @@ -209,7 +242,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 5, "id": "c1e408c4", "metadata": {}, "outputs": [ @@ -219,7 +252,7 @@ "BraketBackend[SV1]" ] }, - "execution_count": 42, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -232,30 +265,30 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 6, "id": "97112d3e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "BraketBackend[IonQ Device]" + "BraketBackend[Harmony]" ] }, - "execution_count": 45, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# IonQ device\n", - "ionq_backend = provider.get_backend(\"IonQ Device\")\n", + "ionq_backend = provider.get_backend(\"Harmony\")\n", "ionq_backend" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 7, "id": "32545fd3", "metadata": {}, "outputs": [ @@ -265,7 +298,7 @@ "BraketBackend[Aspen-11]" ] }, - "execution_count": 46, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -278,7 +311,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 8, "id": "9c99034e", "metadata": {}, "outputs": [ @@ -288,7 +321,7 @@ "BraketBackend[Lucy]" ] }, - "execution_count": 47, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -311,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 9, "id": "f29a72eb", "metadata": {}, "outputs": [ @@ -321,7 +354,7 @@ "[BraketBackend[SV1], BraketBackend[TN1], BraketBackend[dm1]]" ] }, - "execution_count": 51, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -330,14 +363,6 @@ "online_simulators_backends = provider.backends(statuses=[\"ONLINE\"], types=[\"SIMULATOR\"])\n", "online_simulators_backends" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "648a6638", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -356,7 +381,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.6" } }, "nbformat": 4, diff --git a/docs/how_tos/4_how_to_verbatim_circuits.ipynb b/docs/how_tos/4_how_to_verbatim_circuits.ipynb index da87bc41..8c70ae71 100644 --- a/docs/how_tos/4_how_to_verbatim_circuits.ipynb +++ b/docs/how_tos/4_how_to_verbatim_circuits.ipynb @@ -38,7 +38,7 @@ "\n", "Typically, one wants to design circuits using high-level concepts, without worrying about qubit placement or gate compilation. However, in some cases it might be desirable to have a precise control of the circuits being submitted.\n", "\n", - "We will start this how-to by defining a simple circuit comprising `cnot(0, 1)` gate and running it on Aspem-M-2 device.\n" + "We will start this how-to by defining a simple circuit comprising `cnot(0, 1)` gate and running it on Aspem-M-3 device.\n" ], "metadata": { "collapsed": false, @@ -63,7 +63,7 @@ ], "source": [ "provider = AWSBraketProvider()\n", - "aspen = provider.get_backend(\"Aspen-M-2\")\n", + "aspen = provider.get_backend(\"Aspen-M-3\")\n", "\n", "circuit = QuantumCircuit(2)\n", "circuit.cnot(0, 1)\n", @@ -99,7 +99,7 @@ "outputs": [ { "ename": "ValidationException", - "evalue": "An error occurred (ValidationException) when calling the CreateQuantumTask operation: Backend ARN, arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-2, does not support the operation cnot as a native gate. Supported operations for this Backend ARN are ['rz', 'cz', 'xy', 'rx', 'cphaseshift'].", + "evalue": "An error occurred (ValidationException) when calling the CreateQuantumTask operation: Backend ARN, arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3, does not support the operation cnot as a native gate. Supported operations for this Backend ARN are ['rz', 'cz', 'xy', 'rx', 'cphaseshift'].", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", @@ -120,7 +120,7 @@ "File \u001b[0;32m~/.virtualenvs/pyqbench/lib/python3.9/site-packages/braket/aws/aws_session.py:180\u001b[0m, in \u001b[0;36mAwsSession.create_quantum_task\u001b[0;34m(self, **boto3_kwargs)\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m job_token:\n\u001b[1;32m 179\u001b[0m boto3_kwargs\u001b[38;5;241m.\u001b[39mupdate({\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mjobToken\u001b[39m\u001b[38;5;124m\"\u001b[39m: job_token})\n\u001b[0;32m--> 180\u001b[0m response \u001b[38;5;241m=\u001b[39m \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[43mcreate_quantum_task\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mboto3_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 181\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m response[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquantumTaskArn\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n", "File \u001b[0;32m~/.virtualenvs/pyqbench/lib/python3.9/site-packages/botocore/client.py:508\u001b[0m, in \u001b[0;36mClientCreator._create_api_method.._api_call\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 505\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 506\u001b[0m )\n\u001b[1;32m 507\u001b[0m \u001b[38;5;66;03m# The \"self\" in this scope is referring to the BaseClient.\u001b[39;00m\n\u001b[0;32m--> 508\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~/.virtualenvs/pyqbench/lib/python3.9/site-packages/botocore/client.py:915\u001b[0m, in \u001b[0;36mBaseClient._make_api_call\u001b[0;34m(self, operation_name, api_params)\u001b[0m\n\u001b[1;32m 913\u001b[0m error_code \u001b[38;5;241m=\u001b[39m parsed_response\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mError\u001b[39m\u001b[38;5;124m\"\u001b[39m, {})\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCode\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 914\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--> 915\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m error_class(parsed_response, operation_name)\n\u001b[1;32m 916\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 917\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parsed_response\n", - "\u001b[0;31mValidationException\u001b[0m: An error occurred (ValidationException) when calling the CreateQuantumTask operation: Backend ARN, arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-2, does not support the operation cnot as a native gate. Supported operations for this Backend ARN are ['rz', 'cz', 'xy', 'rx', 'cphaseshift']." + "\u001b[0;31mValidationException\u001b[0m: An error occurred (ValidationException) when calling the CreateQuantumTask operation: Backend ARN, arn:aws:braket:us-west-1::device/qpu/rigetti/Aspen-M-3, does not support the operation cnot as a native gate. Supported operations for this Backend ARN are ['rz', 'cz', 'xy', 'rx', 'cphaseshift']." ] } ], diff --git a/docs/tutorials/0_tutorial_qiskit-braket-provider_overview.ipynb b/docs/tutorials/0_tutorial_qiskit-braket-provider_overview.ipynb index fdaea4cf..62159438 100644 --- a/docs/tutorials/0_tutorial_qiskit-braket-provider_overview.ipynb +++ b/docs/tutorials/0_tutorial_qiskit-braket-provider_overview.ipynb @@ -116,13 +116,15 @@ { "data": { "text/plain": [ - "[BraketBackend[Aspen-10],\n", + "[BraketBackend[Aria 1],\n", + " BraketBackend[Aspen-10],\n", " BraketBackend[Aspen-11],\n", " BraketBackend[Aspen-8],\n", " BraketBackend[Aspen-9],\n", " BraketBackend[Aspen-M-1],\n", " BraketBackend[Aspen-M-2],\n", - " BraketBackend[IonQ Device],\n", + " BraketBackend[Aspen-M-3],\n", + " BraketBackend[Harmony],\n", " BraketBackend[Lucy],\n", " BraketBackend[SV1],\n", " BraketBackend[TN1],\n", @@ -163,7 +165,7 @@ { "data": { "text/plain": [ - "BraketBackend[sv_simulator]" + "BraketBackend[default]" ] }, "execution_count": 4, @@ -223,7 +225,7 @@ { "data": { "text/plain": [ - "(BraketBackend[IonQ Device], BraketBackend[Aspen-M-1])" + "(BraketBackend[Harmony], BraketBackend[Aspen-M-1])" ] }, "execution_count": 6, @@ -232,7 +234,7 @@ } ], "source": [ - "ionq_device = provider.get_backend(\"IonQ Device\")\n", + "ionq_device = provider.get_backend(\"Harmony\")\n", "rigetti_device = provider.get_backend(\"Aspen-M-1\")\n", "\n", "ionq_device, rigetti_device" @@ -913,7 +915,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.6" } }, "nbformat": 4, diff --git a/qiskit_braket_provider/providers/adapter.py b/qiskit_braket_provider/providers/adapter.py index 6706574d..ab889f01 100644 --- a/qiskit_braket_provider/providers/adapter.py +++ b/qiskit_braket_provider/providers/adapter.py @@ -251,8 +251,10 @@ def aws_device_to_target(device: AwsDevice) -> Target: properties, (IonqDeviceCapabilities, RigettiDeviceCapabilities, OqcDeviceCapabilities), ): - action_properties: OpenQASMDeviceActionProperties = properties.action.get( - DeviceActionType.OPENQASM + action_properties: OpenQASMDeviceActionProperties = ( + properties.action.get(DeviceActionType.OPENQASM) + if properties.action.get(DeviceActionType.OPENQASM) + else properties.action.get(DeviceActionType.JAQCD) ) paradigm: GateModelQpuParadigmProperties = properties.paradigm connectivity = paradigm.connectivity