Release Notes
Release 2.43.0
Release date 19.12.2024
Requires: LabOne 24.10
Includes: Applications Library 1.2.0
Notes & Important Changes
Functionality
- Removed experimental flag from OpenQASM support and upgraded the API. Check out the new tutorial to see how the new API works. Below, we summarise the major changes:
- Added
laboneq.openqasm3.OpenQASMTranspiler
to transpile OpenQASM programs into LabOne Q objects by usingQuantumOperations
. The new tutorial shows how to use theQuantumOperations
andOpenQASMTranspiler
to transpile QASM programs into a LabOne QExperiment
. - The following objects are deprecated in favor of newly added
laboneq.openqasm3.OpenQASMTranspiler
laboneq.openqasm3.GateStore
supplemented by QuantumOperationslaboneq.openqasm3.exp_from_qasm
supplemented byOpenQASMTranspiler.experiment
laboneq.openqasm3.exp_from_qasm_list
supplemented byOpenQASMTranspiler.batch_experiment
- Added the possibility to transpile a QASM program into a LabOne Q
Section
usingOpenQASMTranspiler.section()
. - Added two options classes
SingleProgramOptions
andMultiProgramOptions
to be used with the newOpenQASMTranspiler.experiment
andOpenQASMTranspiler.batch_experiment
. - OpenQASM
wavefroms
can now be specified either as alist
of samples or as an instance oflaboneq
Pulse
. The former was not supported in the old API. - In the new API,
OpenPulse
implicit inputwaveforms
are passed via theinputs
argument compared toexp_from_qasm
where they were passed in as input arguments:
exp_from_qasm(waveforms={"wf0": Pulse()}) --> .transpile(inputs={"wf0": Pulse()})
- In the new API, ports are passed in via the
externs
argument compared toexp_from_qasm
where they were passed in as input arguments:exp_from_qasm(ports={"port": "port"}) --> .transpile(externs={"port": "port"})
- Improved input validation when importing QASM programs.
- Added tracking of overrange indicators on SHF instruments.
If an overrange condition is detected during the execution of your experiment, a
warning will be logged by LabOne Q indicating the channel on which the overrange
condition was present. Overrange can be indicative of an incompatible power
range
setting on signal inputs or be caused by overshoots from very steep pulse edges on output channels.
Applications Library
- Updated the
TunableTransmonOperations
set_frequency
andset_amplitude
that access the experiment calibration to work without an experiment context. - Removed the restriction to one qubit for the
active_reset
operation. - Upgrades contrib/single_qubit_randomized_benchmarking.py to the new
OpenQASMTranspiler
API.
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 where automuting did not engage for very long delay periods.
- Fixed a bug where
opts.spectroscopy_reset_delay
was not passed to the call to thepassive_reset
operation inqubit_spectroscopy_amplitude.py/create_experiment
, like it is done inqubit_spectroscopy.py
. - Fixed a bug where the multiple-QASM-program
Experiment
generation functionexp_from_qasm_list
(nowOpenQASMTranspiler.batch_experiment
) wrongly applied anExperimentCalibration
.
Documentation
- Expands the page Phase and Amplitude of Pulses with more detailed explanations.
- Fixes the failing code in Sweeping parameters with QCoDeS in LabOne Q and Color Centers: Using Time Tagger with neartime callback functions by enabling emulation of the missing resources.
- Adds more tutorials and how-to guides related to the new
Workflow
andQuantumOperations
features of LabOne Q and the Applications Library: - Two tune-up guides for superconducting transmon qubits, qubit tune-up
and active reset tune-up. - How to write experiment workflows with quantum operations.
- New tutorial describing in details the
TunableTransmonOperations
and how they use theTunableTransmonParameter
ofTunableTransmonQubits
. - More details in Defining your Experimental Setup about how to create your experimental setup before using the experiments in the Applications Library.
- More description about Tasks, options, and QuantumOperations.
- Tutorial on the new OpenQASM API.
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.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