Skip to content

v1.25.1

Latest

Choose a tag to compare

@billti billti released this 23 Jan 15:18
· 39 commits to main since this release
4aff131

Below are some of the highlights for the 1.25 release of the QDK.

Branding update

The QDK has been updated to reflect Microsoft's branding for quantum computing, including updating the name of the VS Code extension to "Microsoft Quantum Development Kit" and updating the extension logo to the Mobius strip design.

mobius

New simulators

This release includes two new quantum simulators designed to provide high-performance noisy simulation and the ability to model qubit loss, which is an important "noise" consideration for neutral atom quantum hardware.

  • The Clifford simulator efficiently simulates circuits composed of Clifford operations, and can scale to thousands of qubits and run thousands of shots in seconds. This simulator is ideal for simulating error correction codes or other research involving Clifford circuits.

  • The GPU simulator uses GPU acceleration to simulate shots in parallel with high fidelity noise models. By leveraging the parallel processing power of modern GPUs, this simulator can handle wider (up to 27 qubits) and deeper circuits while modeling realistic noise and provide an order of magnitude speed-up over other simulators for certain challenging circuit types. By using a cross-platform GPU library, this simulator works on Windows, macOS, and Linux systems with compatible GPUs. (It will fall back to CPU simulation if no compatible GPU is found.)

Both simulators are currently exposed via the new NeutralAtomDevice Python class, and the noise models can be specified via the NoiseConfig class, both available in the qdk.simulators module. See the Benzene and Carbon sample notebooks for examples of using these simulators.

When running the simulators with qubit loss configured, lost qubits will be indicated in the measurement results with the special Loss result value when using raw labels, or with a - character when using ket labels.

NoiseConfig

Neutral Atom device visualizer

The NeutralAtomDevice class includes a show_trace method that takes the compiled program and visualizes the execution on an animated representation of a neutral atom device. This allows users to see how qubits are manipulated over time, including gate operations, measurements, and movement. This visualization can help with understanding the unique characteristics of neutral atom hardware, and how programs map to operations on the physical device. See the notebooks mentioned in the prior section for example usage.

nad.mp4

Circuit visualization improvements

In circuit diagrams, loops (for, while, etc.) from the source code are now represented as expandable components. This makes for a more compact and readable diagram, especially for iterative algorithms.

This release also includes other usability improvements to circuit diagrams, including labels at the top of expanded components, the ability to navigate to the call site of an operation by clicking on the corresponding component in the circuit diagram, and automatic expansion of trivial components.

circuits.mp4

Molecule visualizer

A MoleculeViewer class has been added to the collection of widgets (from qdk.widgets import MoleculeViewer) that can display 3D visualizations of molecules using data in .xyz and .cube formats. This is most useful when used in conjunction with the new qdk-chemistry package, which provides advanced tools for quantum chemistry exploration.

MoleculeViewer

TableLookup library

A Table Lookup library has been implemented that provides efficient quantum implementations of table lookup operations. This library can be used to implement oracles for algorithms such as Grover's search, or to load classical data into quantum states for other algorithms. See https://github.com/microsoft/qdk/tree/main/library/table_lookup for the source, and the Configure Q# projects as external dependencies documentation for how to reference libraries in your Q# projects.

Other notable changes

Full Changelog: v1.23.0...v1.25.1