QbraidProvider
Runtime integration for streamlined access to quantum devices supported by qBraid.
API Reference: qbraid.runtime.native
Installation & Setup
To interface with the qBraid QIR simulator or any of the other 10+ quantum devices that support managed access through qBraid, install the qBraid runtime extra:
pip install 'qbraid[qir]'
Next, obtain your qBraid API key:
- Login or create an account at account.qbraid.com.
- Copy your API Key from the Plan info card on the left side of your account page.
Save account to disk
Once you have your API key, you can save it locally in a configuration file ~/.qbraid/qbraidrc
,
where ~
corresponds to your home ($HOME
) directory:
Account credentials are saved in plain text, so only do so if you are using a trusted device.
from qbraid.runtime import QbraidProvider
provider = QbraidProvider(api_key='API_KEY')
provider.save_config()
Once the account is saved on disk, you can instantiate the provider without any arguments:
provider = QbraidProvider()
Load account from environment variables
Alternatively, the qBraid-SDK can discover credentials from environment variables:
export QBRAID_API_KEY='QBRAID_API_KEY'
Basic Usage
Given a qbraid_id
, a QbraidDevice
object can be created as follows:
>>> from qbraid.runtime.native import QbraidProvider
>>> provider = QbraidProvider()
>>> provider.get_devices()
[<qbraid.runtime.native.device.QbraidDevice('qbraid_qir_simulator')>]
>>> device = provider.get_device('qbraid_qir_simulator')
>>> type(device)
<class 'qbraid.runtime.native.device.QbraidDevice'>
From here, class methods are available to get information about the device, execute quantum programs, access the wrapped device object directly, and more.
>>> device.metadata()
{'device_id': 'qbraid_qir_simulator',
'device_type': 'SIMULATOR',
'num_qubits': 64,
'status': 'ONLINE',
'queue_depth': 0}
Then you can submit quantum jobs to the device.
run_input = [qiskit_circuit, braket_circuit, cirq_circuit, qasm3_str]
jobs = device.run(run_input, shots=100)
results = [job.result() for job in jobs]
print(results[0].raw_counts())
# {'00': 50, '01': 2, '10': 47, '11': 1}
See how to visualize these results in the Visualization section.