QCMet - Quantum Computing Metrics and Benchmarks ================================================ .. raw:: html

A comprehensive collection of metrics and benchmarks for quantum computers.

.. note:: QCMet is the software accompanying the article `"A Review and Collection of Metrics and Benchmarks for Quantum Computers: definitions, methodologies and software" `_. Why QCMet? ---------- .. grid:: 2 :gutter: 3 .. grid-item-card:: Python :text-align: center QCMet is written in Python for readability and ease of use. .. grid-item-card:: Comprehensive :text-align: center Covers a wide range of quantum computing metrics and benchmarks from qubit quality to full application-level benchmarks. .. grid-item-card:: Hardware Agnostic :text-align: center Works with multiple quantum computing platforms including simulators and real quantum hardware. .. grid-item-card:: Free and Open-Source :text-align: center Licensed under Apache-2.0, QCMet is free to use and modify. Key Features ------------ QCMet provides implementations of various quantum computing metrics organized into categories: - **Qubit Quality Metrics**: T1, T2, idle qubit oscillation frequency - **Gate Execution Quality Metrics**: Randomized benchmarking (Clifford RB, Interleaved RB), over/under-rotation analysis, cycle benchmarking, gate set tomography (vie pyGSTi) - **Circuit Execution Quality Metrics**: Quantum Volume, mirrored circuits, upper bound on the variation distance - **Well-Studied Task Execution Quality Metrics**: QFT, VQE, Hamiltonian simulation, QScore The software is designed with a device interface that allows evaluation of metrics using: - Local simulators (ideal and noisy simulations via Qiskit Aer) - Real quantum computers via compatible device backends - Custom device implementations Getting Started --------------- Installation ^^^^^^^^^^^^ Download the code base and install QCMet via pip: .. code-block:: bash pip install -e . Quick Example ^^^^^^^^^^^^^ .. code-block:: python from qcmet import T1 from qcmet.devices import IdealSimulator import numpy as np # Initialize simulator device = IdealSimulator() # Create T1 benchmark t1 = T1(num_idle_gates_per_circ=np.arange(1, 2000, 200)) # The following generates the circuits, runs them on the device and analyzes the benchmark results = t1(device, num_shots=1024) print(f"T1 Results: {results}") .. toctree:: :maxdepth: 1 :hidden: tutorials/01_installation tutorials/02_quickstart user_guide api/index Citation -------- If you use QCMet in your work, please cite: D. Lall, A Agarwal, W. Zhang, L. Lindoy, T. Lindström, S. Webster, S. Hall, N. Chancellor, P. Wallden, R. Garcia-Patron, E. Kashefi, V. Kendon, J. Pritchard, A. Rossi, A. Datta, T. Kapourniotis, K. Georgopoulos, I. Rungger, *A Review and Collection of Metrics and Benchmarks for Quantum Computers: definitions, methodologies and software*, arXiv:2502.06717 (2025).