How to manually update device parameters with Boulder Opal
Override QPU component parameters and gate calibrations directly on an existing virtual device
Manual parameter updates are useful when an automated routine has not converged on a value you trust, when you have an independently measured quantity you want to inject directly into the device model, or when you want to test the effect of a specific parameter change without running a full calibration. Boulder Opal lets you fetch the current device state, modify QPU component parameters in place, and persist the changes back to the device.
In this user guide, you will learn how to update a QPU component parameter on an existing device, and inspect a gate calibration (defcal).
You will need an authenticated client (see documentation specific to Qblox and Quantum Machines) and a device configuration YAML file for your quantum processor. If you are starting from scratch, complete the get started tutorial first.
1. Update a QPU component parameter
A QPU component parameter is modified in three steps: fetch the current device data, apply the change with update_component(), and push the modified DeviceData back to the server. The example below corrects the anharmonicity of qubit q0 to -300MHz. The same pattern applies to any other component parameter, such as drive or readout frequencies, coupling strengths, or coherence times.
For the components available on your device and how their labels map to the physical hardware, see the Device data structure reference.
target_qubit = "q0"
device = await client.get_device_data()
device.qpu.update_component(component_id=target_qubit, anharm=-300e6)
await client.update_device(device.qpu)You can read the component back to confirm that the change was applied.
device = await client.get_device_data()
device.qpu.get_component(target_qubit).anharmYou can also display the device data sheet filtered to the qubit you modified. This view reflects component parameter updates such as the anharmonicity change above, but it does not include gate calibrations, which you inspect separately.
await client.display_device_data_sheet(node_name=target_qubit)2. Inspect a gate calibration (defcal)
Gate calibrations in Boulder Opal Scale Up are stored as OpenQASM 3 programs using the OpenPulse grammar for calibrations (defcals). You can retrieve the current definition of a defcal to see which frames, ports, and waveforms are already in play. The example below fetches the calibration for the X gate when applied to the target_qubit.
device = await client.get_device_data()
defcal = device.get_defcal("x", target_qubit)
defcal.show()Next steps
- For a complete explanation of device components and defcals, see Supported architecture in Boulder Opal.
- For the full
DeviceDataAPI, see the Device data structure reference.
