Pareto-frontier of resources to run a 4th-order Trotter step of 2D Ising model and Heisenberg model across lattice sizes from 5×5 to 20×20 (Majorana-based hardware, with a 1e-5 error rate and ThreeAux error-correction code)
Simulators: Build confidence before running on hardware
Access to real quantum hardware is often limited and costly, so before a single qubit is allocated on a device, you want confidence that your algorithm actually does what you think it does. That's where simulators come in. They let you run, debug, and validate quantum programs entirely in software. While simulation is ultimately limited (classical hardware can only handle a modest number of qubits before the cost grows exponentially) simulators remain an essential tool for validating an algorithm's logic before it ever runs on a real quantum computer.
In the QDK, simulation works alongside the Resource Estimator: the estimator tells you how much quantum hardware an algorithm will eventually need, while simulators confirm the algorithm is correct and behaves as expected long before you commit to hardware. This release makes simulation dramatically more powerful, with three major upgrades.
1. Clifford simulation
When using the Python APIs qdk.qsharp.run or qdk.openqasm.run, you can now pass a type="clifford" argument to run on the Clifford simulator instead of the default sparse simulator. Clifford simulation scales to far higher qubit counts, with the tradeoff that it only supports a restricted set of quantum operations. See the QDK simulators overview for details.
2. Improved simulator capabilities
New Python APIs enable direct execution of QIR on the CPU state vector, Clifford, and GPU state vector simulators, giving developers streamlined access to the underlying simulation engines for testing, debugging, and validation. These simulators now also handle programs generated for the QIR Adaptive Profile, meaning your quantum programs can include mid-circuit measurements, conditional branching, loops, and other adaptive constructs. Check out the QDK Simulators wiki page for the full rundown.
3. Local neutral atom simulation for Cirq and Qiskit
You can now run your Cirq and Qiskit circuits on the local neutral atom simulator. The new NeutralAtomSampler (for Cirq) and NeutralAtomBackend (for Qiskit) let you simulate noisy neutral atom hardware on your own machine, including qubit loss modeling.
For Cirq, the sampler implements cirq.Sampler, so it drops straight into existing Cirq workflows-no rewiring required. Results come back two ways: a standard Cirq-compatible view with loss shots filtered out, and raw data with loss markers for deeper analysis.
For Qiskit, the backend provides a NeutralAtomTarget and automatically transpiles circuits into the native gate set (rz, sx, cz). Walk through it yourself with the neutral atom simulator sample notebook.
Microsoft’s QDK: What's new in QDK v1.30.0
QDK for chemistry: What’s new in QDK for chemistry v2.0.0
Download Microsoft’s QDK and QDK for chemistry