This packages provides a set of tools to compute the Many-Body Quantum Score (MBQS),
which is designed to benchmark the performance of quantum processors in simulating
many-body quantum systems [arXiv:2601.03461]1.
The score is obtained by comparing a given metric, called
The MBQS metric is parametrized by an initial state
- Setup a spin chain with
$L$ spin$\frac{1}{2}$ equally spaced on a$1d$ ring. - Initialize the register with the state
$\ket{\psi}$ . - Evolve the system (quench) with the Ising Hamiltonian at the critical point
$g = 1$ for a duration$t_*(L)$ (“surge time”). - Perform measurements
${ \sigma^z_i }$ and compute the connected 2-point functions:
- Compute the metric (average relative error with respect to the theoretical values in Ising model):
The MBQS score S with the initial state
In this package, we provide the evaluation for the folloling initial states:
$\ket{+ \cdots +}$ $\ket{\downarrow \cdots \downarrow}$
The surge time is defined to be the time at which the antipodal connected 2-point
function is maximum. The only exception is for
Warning
The definition of the surge time for L = 3 is different compared to the original paper.
We provide the computations of the surge time and correlation functions at that time using three different methods:
- Exact simulation with qutip (for
$L \lesssim 20$ on a laptop). - Exact solution with free fermions (for any
$L$ ; not yet implemented). - Tabulated data from free fermions (for
$L \le 50$ ).
The qutip method is provided as a way to check the results for low L but it is
not scalable to large systems. The free fermions method is exact and can be used
for any
We also provide utilities to map the critical Ising model on a neutral atom QPU.
You can use mbqs as a package. The most important classes are available as top-level
imports: MBQS, MBQSProtocol, RydbergMapping. You can check the unit tests and CLI
actions to find how to use them.
- Display in console the parameters needed to run the protocol for a given system size:
mbqs protocol -J 1. -L 4- Display in console the parameters needed to run the protocol for several system sizes:
mbqs protocol -J 1. -L {4..6}- Parameters for running the protocol on an neutral atom analog quantum simulator can
be added using the
--include-rydbergflag or using the interatomic distance as a parameter instead of the coupling constant:
mbqs protocol -J 1. -L 4 --include-rydberg
mbqs protocol -a 7.75 -L 4- Save a json file with the protocol parameters (use
--verboseto also display in the console):
mbqs protocol -J 1. -L {4..6} --json protocol.json- Compute the theoretical correlations at the surge time:
mbqs correlations -L 3- Compute the correlations from a file of samples:
mbqs correlations -i samples.json- Evaluate the metric from correlations functions in a file:
# without parameters in file
mbqs scorer -i examples/correlations_samples.json -L 3 --threshold 0.3
# with parameters
mbqs scorer -i examples/correlations_exact.json- Evaluate the metric from samples in a file:
mbqs scorer -i examples/samples.json- Evaluate the score for a file containing correlations functions for different system sizes:
mbqs scorer -i examples/correlations_sequence.jsonExamples of json files can be found in the examples directory.
Autocompletion can be enabled for the mbqs command by running the following command
(only for the current session):
eval "$(register-python-argcomplete mbqs)"To make it persistent (for example, for bash on Linux), you can execute the following commands:
mkdir -p ~/.local/share/bash-completion/completions
register-python-argcomplete mbqs > ~/.local/share/bash-completion/completions/mbqsTo install all the dependencies including the development tools, run:
uv venv
make install-devBefore performing a commit, ensure that the following returns no error or warning:
make check
make testFootnotes
-
Erbin, H., Burdeau, P.-L., Bertrand, C., Ayral, T., & Misguich, G. (2026). Many-body Quantum Score: a scalable benchmark for digital and analog quantum processors and first test on a commercial neutral atom device. arXiv: 2601.03461 ↩