/mbqc-rs

MBQC simulation back-end written in Rust

Primary LanguageRustApache License 2.0Apache-2.0

mbqc-rs

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).

Installation

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).