What is Workbench?¶
Workbench is a Python package designed for efficient writing and execution of quantum programs. It allows developers to create quantum circuits and algorithms using Python, while leveraging the performance of an optimized, multi-threaded C++ core.
The design philosophy behind Workbench is to make the operation of a quantum computer accessible and straightforward. To achieve this, it provides a powerful yet lightweight syntax that aligns with familiar programming conventions.
Workbench is an extensible library for quantum programming¶
Workbench enables quantum application development with the following three key layers:
- Frontend API: A comprehensive Python SDK for implementing quantum algorithms.
- Filter Pipelines: Modular and expandable snap-on components for consuming, compiling, and exporting Quantum Processing Unit (QPU) instructions.
- Backend engine: An optimized machine-level native multi-core C++ simulator.
Features¶
-
FTQC Primitives: Build with abstractions designed for fault-tolerant quantum computing, including quantum data types, mid-circuit measurements, and automatic uncompute.
-
Built for Runtime: Scale to large circuits and runtime-style execution with support for streaming billions of operations without relying on fixed kernels.
-
Large Algorithm Library: Access more than 100 interoperable, FTQC-focused algorithm implementations, including alias sampling, quantum phase estimation, and more.
-
Quantum Resource Estimates (QREs): Generate accurate QREs for circuits of any size, including circuits with billions of gates, and analyze results with Resource Analyzer, Bartiq, or the Resource Estimator.
-
Hardware Agnostic: Write, compile, and optimize quantum algorithms for a range of FTQC hardware architectures.
-
Highly Performant Simulation: Iterate quickly with optimized C++ simulation, including native bit and Clifford simulators as well as GPU-powered tensor-network and state-vector simulation via CUDA-Q.
Next Steps¶
- Getting started with Workbench
- Documentation map - Orient yourself in the different sections of Workbench documentation
Getting Help¶
We welcome bug reports, feature requests, and discussions! Please file an issue on PsiQDK GitHub repo ⧉ to report a bug or to request a feature, or start a discussion ⧉ to ask a question.