LabOne Q User Manual
Welcome
Welcome to the Zurich Instruments LabOne Q user manual. LabOne Q is designed for you to perform quantum experiments on the Zurich Instruments QCCS together with third party control hardware. With LabOne Q, you can control complex setups as a single machine with intuitive programming in a Python-based domain-specific language. Here, you will find resources for performing everything from basic qubit characterization experiments to complex quantum circuits.
Tip
With version 2.41, LabOne Q has been updated with lots of new functionality including Workflows, Tasks, Quantum Operations, and more. Examples of these are included in the Applications Library part of the documentation. Let us know if you'd like to learn more!
Would you like help getting started? Want a demonstration of how LabOne Q can help you accelerate your experiments? Have any questions about the code or functionality? Please don’t hesitate to contact us at info@zhinst.com and we will be happy to assist you.
How to use this manual
The manual contains a variety of information and practical examples to serve you depending on your use case:
- The Getting Started chapters will help you begin your LabOne Q journey with installation instructions and your first experiment.
- Functionality & Concepts covers details and explanations of the software components. This is a good place to look if you are looking to understand, for example, what Sections are and how they are used when designing your pulse sequences.
- The API references for LabOne Q core and the Applications Library contain basic information about the Python classes and methods you'll use when programming your experiments. This is where to look if you need to know what arguments a function takes or what a parameter defaults to or if you are developer looking to incorporate LabOne Q into your own project.
- Consult the Tutorials both in LabOne Q core, which are grouped with the respective topics in Functionality and Concepts, and in the Applications Library if you would like hands-on demonstrations to learn about the components of LabOne Q. They are intended help you learn and master the functionality of the software. These Learning Guides can be downloaded as Python notebooks at the top of their pages and can also be found on the GitHub repositories for LabOne Q core and the Applications Library.
- Our How-to Guides are experiment and application-focused examples that already assume some knowledge of the software. Many of these can be run out-of-the-box. They can be thought of as recipes from which you can build your own software and experiments. These how-to guides can be downloaded as Python notebooks at the top of their pages and can also be found on our GitHub.
- The Release Notes are a great place to see how the software is evolving, to find new features, and to check a list of known issues for each release.
LabOne Q Benefits
LabOne Q enables you to program complex setups as a single machine with intuitive programming in a Python-based domain-specific language and control over hundreds of channels. It maximizes system uptime through fast quantum circuit updates and increases the lab throughput by allowing for automated tune-up and calibration.
LabOne Q enables you to define basic characterization experiments as efficiently as complex quantum circuits, such as quantum error correction. LabOne Q is also tailored for optimized scheduling of custom gates, pulses, and waveforms with ultrafast playback and decision logic and waveform replacement thanks to optimized code generation and code execution for Zurich Instruments' advanced signal generators and quantum analyzers.
Intuitive Programming
With LabOne Q, you will take full advantage of Zurich Instruments' system control approach. The software takes care of programming individual Zurich Instruments' quantum computing products and third-party devices, executing experiments and retrieving measurement results while ensuring synchronization and control through one software interface (API). You will define experiments independently of an instrument setup in the domain-specific language (DSL) in Python, and you can manage the connection and execution of experiments on your desired hardware within a session. You don’t need to program the instruments directly (though you have the ability to!); instead, you can focus on scheduling your experiment along with the required gates and pulses directly on the whole quantum system.
High Uptime
LabOne Q separates code generation, handled by the compiler, and execution, handled by the controller. This approach optimizes the balance between execution in the software and on the hardware within and outside of a qubit’s coherence time. While the optimization in the Compiler affects code generation, users maintain full control of the pulses at the sample level within the abstract definition of their quantum circuits in the DSL. LabOne Q guarantees sample-precise radio frequency pulses with optimal operation on the QCCS hardware, so that the burden of optimizing code and resources does not weigh on the experimenter. Users benefit from a maximized usage of the quantum processing unit that enables them to define and schedule experiments continuously, thus achieving a high quantum computer uptime.
Optimized Scheduling
LabOne Q is designed for demanding applications such as error correction protocols, surface code implementations, waveform replacement, and randomized benchmarking on many qubits. Parametric control of pulses, dynamic pulses, modulation frequency and phase updates, real-time branching for feedback, and near-time call-back to user-defined pulse libraries on a higher level are all possible with optimized waveform memory usage and memory-efficient code generation by the compiler and the controller.
Users can easily move from gate to pulse level and to sample-precise control as they program their quantum algorithm or characterization experiments; LabOne Q takes care of scheduling each experiment on Zurich Instruments' hardware.