Skip to main content

qdk

The Quantum Development Kit (QDK) provides a single, cohesive Python entry point for compiling, simulating, and estimating resources for quantum programs (Q# and OpenQASM), with optional extras for visualization, cloud workflows, and interoperability with Qiskit and Cirq.

Install

To install the core functionality, which include Q# & OpenQASM simulation, compilation, and resource estimation support:

pip install qdk

To include the Jupyter extra, which adds visualizations using Jupyter Widgets in the qdk.widgets submodule and syntax highlighting for Jupyter notebooks in the browser:

pip install "qdk[jupyter]"

To add the Azure Quantum extra, which includes functionality for working with the Azure Quantum service in the qdk.azure submodule:

pip install "qdk[azure]"

For Qiskit integration, which exposes Qiskit interop utilities in the qdk.qiskit submodule:

pip install "qdk[qiskit]"

For Cirq integration, which exposes Cirq interop utilities in the qdk.cirq submodule:

pip install "qdk[cirq]"

To easily install all the above extras:

pip install "qdk[all]"

Quick Start

from qdk import qsharp

result = qsharp.run("{ use q = Qubit(); H(q); return MResetZ(q); }", shots=100)
print(result)

To use widgets (installed via qdk[jupyter] extra):

from qdk.qsharp import eval, run
from qdk.widgets import Histogram

eval("""
operation BellPair() : Result[] {
    use qs = Qubit[2];
    H(qs[0]);CX(qs[0], qs[1]);
    MResetEachZ(qs)
}
""")
results = run("BellPair()", shots=1000, noise=(0.005, 0.0, 0.0))
Histogram(results)

Public API Surface

Submodules:

  • qdk.qsharp – Q# interpreter functions: init, eval, run, compile, circuit, estimate, dump_machine, dump_circuit, dump_operation, and related types.
  • qdk.openqasm – OpenQASM compilation and execution.
  • qdk.estimator – resource estimation utilities.
  • qdk.simulation – noise-aware simulation utilities: NeutralAtomDevice, NoiseConfig, run_qir, DensityMatrixSimulator, StateVectorSimulator, and related types.
  • qdk.code – dynamic namespace populated at runtime with user-defined Q# and OpenQASM callables.
  • qdk.qre – quantum resource estimation v3: estimate, Application, Architecture, ISA, ISATransform, and related types.
  • qdk.applications – domain-specific quantum applications (e.g. qdk.applications.magnets).
  • qdk.widgets – Jupyter widgets for visualization (requires the qdk[jupyter] extra).
  • qdk.azure – Azure Quantum service integration (requires the qdk[azure] extra).
  • qdk.qiskit – Qiskit interop: QSharpBackend, NeutralAtomBackend, and related types (requires the qdk[qiskit] extra).
  • qdk.cirq – Cirq interop: NeutralAtomSampler (requires the qdk[cirq] extra).

Top level exports

For convenience, the following helpers and types are also importable directly from the qdk root (e.g. from qdk import code, Result). Algorithm execution APIs (like run / estimate) remain under qdk.qsharp or qdk.openqasm.

Symbol Type Origin Description
code module qdk.code Exposes operations defined in Q# or OpenQASM
init function qdk.qsharp.init Initialize/configure the QDK interpreter (target profile, options).
set_quantum_seed function qdk.qsharp.set_quantum_seed Deterministic seed for quantum randomness (simulators).
set_classical_seed function qdk.qsharp.set_classical_seed Deterministic seed for classical host RNG.
dump_machine function qdk.qsharp.dump_machine Emit a structured dump of full quantum state (simulator dependent).
Result class qdk.qsharp.Result Measurement result token.
TargetProfile class qdk.qsharp.TargetProfile Target capability / profile descriptor.
StateDump class qdk.qsharp.StateDump Structured state dump object.
ShotResult class qdk.qsharp.ShotResult Multi-shot execution results container.
PauliNoise class qdk.qsharp.PauliNoise Pauli channel noise model spec.
DepolarizingNoise class qdk.qsharp.DepolarizingNoise Depolarizing noise model spec.
BitFlipNoise class qdk.qsharp.BitFlipNoise Bit-flip noise model spec.
PhaseFlipNoise class qdk.qsharp.PhaseFlipNoise Phase-flip noise model spec.
Context class qdk.Context Isolated Q# and OpenQASM interpreter context for independent sessions.

Configuration Map

You can provide configuration at initialization time as a Python dictionary.

In Python, pass qdk_config: dict[str, int | float | str | bool] to Context(...). If qdk_config is omitted, the configuration map is empty. The map is immutable after initialization. To use different configuration values, create a new Context.

In Q#, read values with Std.Core.ConfigValue(name, defaultValue). In Q# code, config values are immutable: in the same program, repeated calls with the same (name, defaultValue) produce the same result.

Supported types: int, float, str, and bool (corresponding to Int, Double, String and Bool in Q#). The type of each value in qdk_config must match the type of its corresponding default value.

Example:

import qdk
context = qdk.Context(qdk_config={"experiment_name": "baseline", "shots": 1000})
assert context.eval('Std.Core.ConfigValue("experiment_name", "")') == "baseline"
assert context.eval('Std.Core.ConfigValue("shots", 100)') == 1000
assert context.eval('Std.Core.ConfigValue("noise_level", 0.01)') == 0.01

Telemetry

This library sends telemetry. Minimal anonymous data is collected to help measure feature usage and performance. All telemetry events can be seen in the source file telemetry_events.py.

To disable sending telemetry from this package, set the environment variable QDK_PYTHON_TELEMETRY=none

Support

For more information about the Microsoft Quantum Development Kit, visit https://aka.ms/qdk.

Contributing

Q# welcomes your contributions! Visit the Q# GitHub repository at [https://github.com/microsoft/qdk] to find out more about the project.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

qdk-1.31.0-cp310-abi3-win_arm64.whl (7.4 MB view details)

Uploaded CPython 3.10+Windows ARM64

qdk-1.31.0-cp310-abi3-win_amd64.whl (8.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

qdk-1.31.0-cp310-abi3-manylinux_2_35_x86_64.whl (7.5 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.35+ x86-64

qdk-1.31.0-cp310-abi3-manylinux_2_35_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.35+ ARM64

qdk-1.31.0-cp310-abi3-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

qdk-1.31.0-cp310-abi3-macosx_10_12_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file qdk-1.31.0-cp310-abi3-win_arm64.whl.

File metadata

  • Download URL: qdk-1.31.0-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: CPython 3.10+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: RestSharp/106.13.0.0

File hashes

Hashes for qdk-1.31.0-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 08afd9acd82a4435d338f33356d3581604c5f7e60c91da9c05c95709943f723e
MD5 7ea2d168d523155ced99f51e1890a972
BLAKE2b-256 63821aab6a7d52719a22f058066107ba6f5fb2b38ee54b251ea91ab0183e2bd6

See more details on using hashes here.

File details

Details for the file qdk-1.31.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: qdk-1.31.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: RestSharp/106.13.0.0

File hashes

Hashes for qdk-1.31.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8c5d5dd5849e6c804c1ea91bed030e89b4b790ef7d6bc4bd112e24864402e9e2
MD5 336c6abee9a58ba61a41e2cd6f19cac1
BLAKE2b-256 ee83cf47734d90972dc92d2066bd3e2eb4411f00d4b672cf4c09817e27787b51

See more details on using hashes here.

File details

Details for the file qdk-1.31.0-cp310-abi3-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for qdk-1.31.0-cp310-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 4882f228c72093a97f5e24839b11d899f6c461fc739bd7164170a534a7cad4ef
MD5 778a4255a3e8cb9015c798f3d7cb7da7
BLAKE2b-256 bda75e6cd8551d6812545111c0707e8963700e3e15aba94fa07446fce5d828fe

See more details on using hashes here.

File details

Details for the file qdk-1.31.0-cp310-abi3-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for qdk-1.31.0-cp310-abi3-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 31a5938c5f65eeacb228d2520a931018563668f1f23f09200cf3a8569dd556ee
MD5 8ff03173a00ae5c1d2a28fd69ac30a64
BLAKE2b-256 0309721c14a312f4c9d21b94c95caf74d17d42e52778403ee34d435303e7ecda

See more details on using hashes here.

File details

Details for the file qdk-1.31.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qdk-1.31.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3481891de5205af165e85edaef4b0288b00e27f2cb18128691412d8a147cb03e
MD5 18e794c137b713d0b4bd5be553360c2a
BLAKE2b-256 b705e7916e3ab0439bee3df31081cf0439e230c4f188e0d7cb5a7e53f9193691

See more details on using hashes here.

File details

Details for the file qdk-1.31.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for qdk-1.31.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cee7a015c4a15bb6f797bead04d86fb21f0a97b5be17bae6fe54aca2fcb3a9d2
MD5 6ba338aa803cf8cfd17e567f63b5f849
BLAKE2b-256 4e574c7910475c02b73a713801450abb78be2d7bc08861adf2c4916a98b159ad

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page