How-to: retrieve results from backend¶
[1]:
from qiskit import transpile
from qiskit.circuit.random import random_circuit
from qiskit_braket_provider import AWSBraketProvider
Let’s create random circuit
[4]:
circuit = random_circuit(5, 3, seed=42)
circuit.draw()
[4]:
┌───┐ q_0: ─────X────────────■───────────────────────────┤ X ├ │ │ ┌─────┐┌────────────┐└─┬─┘ q_1: ─────X────────────┼──────┤ Sdg ├┤ Rx(3.9689) ├──┼── ┌──────────┐ │ └─────┘└────────────┘ │ q_2: ┤ U1(6.13) ├──────┼─────────X───────────────────■── └──┬───┬───┘┌─────┴─────┐ │ ┌───┐ │ q_3: ───┤ T ├────┤ Rz(5.823) ├───┼───────┤ S ├───────┼── ┌┴───┴┐ └───────────┘ │ └───┘ │ q_4: ──┤ Tdg ├───────────────────X───────────────────■── └─────┘
Get backend
[5]:
provider = AWSBraketProvider()
backend = provider.get_backend("SV1")
backend
[5]:
BraketBackend[SV1]
Transpile circuit against given backend
[6]:
transpiled_circuit = transpile(circuit, backend=backend, seed_transpiler=42)
transpiled_circuit.draw(idle_wires=False, fold=-1)
[6]:
global phase: 4.8274 ┌───┐┌───┐┌─────┐┌───┐┌───┐┌───┐┌─────┐┌───┐┌───┐ ┌───┐ q_0 -> 0 ───────────X────────────────────■─────────────────────────────■──┤ H ├┤ X ├┤ Tdg ├┤ X ├┤ T ├┤ X ├┤ Tdg ├┤ X ├┤ T ├─┤ H ├────── │ ┌─────┐ │ ┌────────────┐ │ └───┘└─┬─┘└─────┘└─┬─┘└───┘└─┬─┘└─────┘└─┬─┘└───┘ └───┘ q_1 -> 1 ───────────X───────────┤ Sdg ├──┼────────┤ Rx(3.9689) ├───────┼─────────┼───────────┼─────────┼───────────┼─────────────────── ┌─────────────────────┐└─────┘ │ └────────────┘ │ │ │ │ │ ┌───┐ q_2 -> 2 ┤ P(6.13001602516006) ├───X─────┼─────────────────────────────┼─────────┼───────────■─────────┼───────────■────■───┤ T ├───■── └────┬────────────┬───┘ │ ┌─┴─┐┌───────────────────────┐┌─┴─┐┌───┐ │ │ │ └───┘ │ q_3 -> 3 ─────┤ P(-2.5863) ├───────┼───┤ X ├┤ Rz(-2.91151808057099) ├┤ X ├┤ S ├──┼─────────────────────┼────────────────┼───────────┼── └──┬─────┬───┘ │ └───┘└───────────────────────┘└───┘└───┘ │ │ ┌───┐ ┌─┴─┐┌─────┐┌─┴─┐ q_4 -> 4 ────────┤ Tdg ├───────────X─────────────────────────────────────────────■─────────────────────■───┤ T ├──────┤ X ├┤ Tdg ├┤ X ├ └─────┘ └───┘ └───┘└─────┘└───┘
Run circuit
[7]:
job = backend.run(transpiled_circuit, shots=10)
[8]:
f"Task id {job.job_id().split('/')[-1]}"
[8]:
'Task id 3e6b6feb-fdc9-42c3-a7ba-0c4cd94089e2'
Retrieve job by id from backend
[10]:
retrieved_job = backend.retrieve_job(job_id=job.job_id())
retrieved_job
[10]:
<qiskit_braket_plugin.providers.braket_job.AWSBraketJob at 0x7f8821bc6220>
[12]:
retrieved_job.result().get_counts()
[12]:
{'00010': 7, '00000': 3}