Using QAT with simulators

There are a number of routes for testing and executing quantum programs within QAT without using actual hardware.

Zero Engine

The simplest of such is the ZeroEngine, which simply returns all readout results as zeroes. This is primarily useful for testing purposes.

Echo Engine

The next level — only compatible with programs compiled with the WaveformBackend — is the EchoEngine. This engine “echos” back the readout pulses that would have been sent to the hardware. This is again primarily useful for testing purposes, especially when developing compilation pipelines. It’s particularly useful for testing timing of pulse instructions.

Real-time Chip Simulator

This is an engine that aims to simulate the physics behind Transmon physics, using the properties of the hardware model. It is currently only accessible through the PuRR module. However, we have provided pipeline wrappers that expose this simulator through the pipelines API. See LegacyRTCSPipeline for the pipeline, and RTCSModelLoader for loading in hardware models compatible with this simulator.

See Using the real-time chip simulator in new QAT for an example of using the Real-time Chip Simulator with QAT.

Note

The Real-time Chip Simulator is computationally intensive, and may take a while to run depending on the program and hardware model used. It also runs using the legacy PuRR module, and there are currently no plans to implement it with the new ways of working with QAT. This may change in the future.

Qiskit Aer Simulator

To simulate quantum circuits, we make use of Qiskit’s Aer Simulator through the legacy PuRR module. This is particularly useful to exactly simulate quantum circuits (at the circuit model level) to understand what exact results to expect. There is a pipeline wrapper that allows us to use this simulator through the pipelines API. See LegacyQiskitPipeline for the pipeline, and QiskitModelLoader for loading in hardware models compatible with this simulator.

See Using the Qiskit simulator in new QAT for an example of using the Qiskit Aer Simulator with QAT.

Note

This runs using the legacy PuRR module We will likely refactor this to make full use of the new pipelines API in the future.