What is Qermit?¶
The qermit
framework is a software platform for the development and execution of
error-mitigation protocols.
The toolset is designed to aid platform-agnostic software, making running a range
of combined error-mitigation protocols as straightforward as running any experiment.
This user manual is targeted at readers who are already familiar with
CQC pytket,
a python module for interfacing with tket, a set of quantum programming tools. It provides
a comprehensive tour of the qermit
platform, from running basic unmitigated experiments with
pytket
circuits, to running tailored combinations of error-mitigation protocols to get
as much performance out of devices as possible.
What is Error-Mitigation and how does Qermit perform it?¶
It is common knowledge that we are currently in the NISQ-era of Quantum Computers; Noisy, Intermediate-Scale Quantum Computers that have too few high fidelity Qubits for running Quantum Error Correction protocols on, but are characterised as having high error rates such that even for quantum circuits with very few gates (10’s), running experiments on such devices lead to errors accruing quickly and output states being dominated by noise.
As dominating noise is a key problem facing Quantum Computation, naturally many approaches to address it are available. Better quantum circuit compilation is one such approach. Circuit optimisation to reduce the number of logical gates in a quantum circuit and mapping passes for fitting logical circuits to physical constraints can reduce noise by producing circuits that compute identical processes with fewer operations. These methods can be improved by being ‘noise-aware’, having an understanding of the device via noise characterisation and using this to produce circuits that user less noisy qubits, such as those characterised with higher fidelity operations. Error-mitigation methods provide another approach.
The name error-mitigation often functions as an umbrella term for a wide range of loosely-connected techniques at all levels of the quantum computing stack. The loose thread between such methods is that they mitigate errors in quantum computation, caused by noise in quantum devices in some capacity.
qermit
restricts the scope of such a range of methods to those that are defined in the quantum circuit layer of abstraction.
This is a reasonable restriction to make as in many cases a fine
understanding of how noise manifests isn’t required to correct for the errors it produces, but only an understanding
of the error that is produced (though a fine understanding is always helpful).
As an example, we can attempt to suppress the coherent quantum computation error produced by a systematic over-rotation of an operation rotating a Qubit’s state in the z plane without having a fine understanding of what calibration and control problems are occuring in the quantum device. If we can understand what error occurs with what operations, we can design tools to suppress them.
In designing qermit
, the goal was to make using error-mitigation methods easy, easy to integrate into a
typical experiment workflow, easy to access a wide range of useful error-mitigation techniques, and easy to use
different error-mitigation techniques in combination.
To do so, error-mitigation methods in qermit
fit in to two distinctions, MitRes
methods
that result in a modification of a distribution of counts retrieved from some
quantum computer, and MitEx
methods that result in the modification of the
expectation value of some observable. These correspond to two common archetypes for useage of quantum computers,
meaning they are not only useful for improvung results, but there is a wide and ever growing area of research
dedicated to designing mitigation schemes that fit to these archetypes.
In this manner, often the use of a MitRes
or MitEx
object may be able to replace code performing the fiddly aspect
of running and processing experiments, with or without error-mitigation. Furthermore, as they are written using the
pytket
Backend class,
any hardware supported by pytket
via the Backends available in the pytket-extensions
can be used in conjunction with qermit
.
Installation¶
To install using the pip
package manager, run pip install qermit
from your terminal.