Release Notes
Release 2.44.0
Release date 16.01.2025
Requires: LabOne 24.10
Includes: Applications Library 1.3.0
Notes & Important Changes
Functionality
- The
QuantumElement
,Qubit
andTransmon
classes have been extensively modified: - Most of the functionality of
Qubit
andTransmon
has been moved to their parentQuantumElement
base class. - Users defining new qubit classes should now inherit directly from
QuantumElement
,
specifying only the required signals and parameters and implementing a.calibration()
method. All other methods are now included on the base classQuantumElement
. - The
Transmon
class inherits directly fromQuantumElement
. - The
Qubit
class is now an alias forTransmon
. - Both
Qubit
andTransmon
are intended for demonstration purposes for now, as more changes are planned for these classes and will come soon. QuantumElement
is now anattrs
class rather than adataclass
.- Some of the new
QuantumElement
methods that may be useful include:from_logical_signal_group
,from_device_setup
,experiment_signals
,replace
,update
. - The
.load
and.save
methods are deprecated and users are encourage to uselaboneq.serializers.load
andlaboneq.serializers.save
instead. - Where possible all three classes remain largely backwards compatible but there are many small changes. Get in touch with us if you need help!
- If you have saved existing qubits you should be able to load them into LabOne Q 2.44
by first loading the qubits in LabOne Q 2.43, saving them with
laboneq.serializers.save
, and then loading them withlaboneq.serializers.load
in LabOne Q 2.44. The saving and loading procedure for users oflaboneq-applications
remains unchanged. See our documentation for details. - Removed the
/logical_signal_groups/
prefix from the signal names ofQuantumElement
s. When usingDeviceSetup.set_calibration
, logical signal calibration may be passed without the/logical_signal_groups/
prefix. - The OpenQASM experiment() method now automatically adds the qubit calibration to the experiment calibration.
- Added support for passing qubit registers to OpenQASM instructions, enabling broadcasting of these operations onto multiple qubits in parallel. See the OpenQASM tutorial in the LabOne Q manual for details.
Applications Library
- Updates
TunableTransmonQubit
to use the refactoredQuantumElement
class.
Note
Since version 2.36.0, LabOne Q uses the asynchronous LabOne API by default when communicating with instruments.
If any issues arise with the asynchronous LabOne API, there is currently still the fallback option to the legacy synchronous API,
using session.connect(use_async_api=False)
. Please notify us immediately if this situation arises.
The synchronous API is now deprecated and will be removed in a future release.
Note
The OpenQASM importer is now considered stable and the API will not undergo major changes in future versions. Comments and feedback on the new API are appreciated.
Note
The Qubit
and Transmon
classes are not yet considered stable and their APIs might still change in future versions.
Comments and feedback regarding the current implementation of these objects and their use in your experiments are welcome.
Bug Fixes
- Fixed a bug in the controller that could lead to erroneous AWG timeout errors.
- Using Openpulse ports that are not declared within the program now raises an exception.
- OpenQASM program
cal
blocks no longer produce emptyExperiment
sections when they do not include any operations. - Openpulse
waveform
variable type can now be used as an input argument for functions. - Added missing dependencies on
qiskit
andqiskit_experiments
tolaboneq-applications
. - Fixed various bugs in the single-qubit randomized benchmarking experiment in
laboneq-applications
.
Documentation
- Updated all the Workflow-based how-to guides for superconducting qubits to give more detailed instructions for defining the experimental setup in practice.
- Updated OpenQASM tutorial with the new qubit-broadcasting feature.
- Added a new tutorial about quantum elements.
- Added
Experiment
built-in functions to the API Reference documentation. - Fixed broken links on several pages.
Deprecation notice
- Deprecated the internal
DataStore
and replaced its usage in all public examples. - Deprecated
GateStore
in favour ofQuantumOperations
. TheGateStore
API is till available. The gates are converted internally intoQuantumOperations
, which will result in additionalreserve
operations within the generatedExperiment
compared to previous behaviour.
Known Issues
- Using runtime checks of the sequencer playback through the
disable_runtime_checks=False
argument ofsession.connect()
, is currently not possible when the experiment contains real-time feedback or is using the on-device PRNG. In the latter case, unintended error messages may be produced if the option is used. - When using the pipeliner in an experiment by specifying a
chunk_count
parameter in a sweep, the number ofacquire
commands in each chunk currently needs to be equal. Typically this means that the number of sweep steps within each chunk has to be the same. - When using
OutputSimulator
or pulse sheet viewer with an experiment using the pipeliner or near-time sweeping, currently only the first sequence step will be displayed. - When delaying logical signal lines of type
rf_signal
via thedelay_signal
calibration property, all rf_signals on the same sequencer core must be set to the same delay. - When delaying logical signal lines on the SHFQA via the
delay_signal
calibration property, the delays for the measure and acquire line must be the same; the measure pulse delay is not added to the acquire pulse delay as on the UHFQA. We recommend to useport_delay
for now. - When creating a section with very short content (below the device’s minimum waveform length), the compiler may fail to map the experiment to valid SeqC, and will generate an error. As a workaround in these cases, manually add delays to the sequence.
Previous versions
- Release 2.43.0
- Release 2.42.0
- Release 2.41.0
- Release 2.40.0
- Release 2.39.0
- Release 2.38.0
- Release 2.37.0
- Release 2.36.0
- Release 2.35.0
- Release 2.34.0
- Release 2.33.1
- Release 2.33.0
- Release 2.32.0
- Release 2.31.0
- Release 2.30.0
- Release 2.29.0
- Release 2.28.0
- Release 2.27.1
- Release 2.27.0
- Release 2.26.0
- Release 2.25.0
- Release 2.24.0
- Release 2.23.0
- Release 2.22.0
- Release 2.21.0
- Release 2.20.1
- Release 2.20.0
- Release 2.19.0
- Release 2.18.0
- Release 2.17.0
- Release 2.16.0
- Release 2.15.0
- Release 2.14.0
- Release 2.13.0
- Release 2.12.0
- Release 2.11.0
- Release 2.10.0
- Release 2.9.0
- Release 2.8.0
- Release 2.7.0
- Release 2.6.0
- Release 2.5.0
- Release 2.4.0
- Release 2.3.0
- Release 2.2.0
- Release 2.1.0
- Release 2.0.0
- prior to Release 2.0.0