MBQC simulation back-end written in Rust
This repository is very experimental and supposed to be used with my
rust_backend
branch of the graphix
Python library for MBQC.
The graphix rust_backend
branch adds an impl
keyword argument to
graphix.sim.statevec.StatevectorBackend
class, which is set to
graphix.sim.statevec.RustStatevec
by default
(legacy graphix.sim.statevec.Statevec
is still available).
There is a simple benchmark in benchmarks/simple.py
in the graphix
rust_backend
branch.
The benchmark samples 20 random patterns from 16-nqubits 2-depth circuits. On my machine (MacBook Pro M2 2022), the rust simulator takes around 1.6s to execute them, wheras the legacy (numpy-based) simulator takes around 14.6s (~9x speed-up).
The mbqc_rs
Python package needed by the rust_backend
branch can
be installed by running the following command on top of a local clone
of this repository: maturin develop --release
(look at the
maturin
homepage for instructions to install maturin
).