Using Supermarq

The benchmarks are defined as classes within supermarq/benchmarks/. Each application defines two methods; circuit and score. These methods are used to generate the benchmarking circuit and evaluate its performance after execution on hardware.

The quantum benchmarks within Supermarq are designed to be scalable, meaning that the benchmarks can be instantiated and generated for a wide range of circuit sizes and depths.

The notebooks below contain an end-to-end example of how to execute the GHZ benchmark using Superstaq. The general workflow is as follows:

import supermarq

ghz = supermarq.benchmarks.ghz.GHZ(num_qubits=3)
ghz_circuit = ghz.circuit()
counts = execute_circuit_on_quantum_hardware(ghz_circuit) # For example, via AWS Braket, IBM Qiskit, or Superstaq
score = ghz.score(counts)