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.