paulistrings 0.1.2

Classical simulation of quantum circuits in the Pauli basis, parallel across threads, NUMA domains, MPI ranks and GPUs
Documentation

paulistrings

docs.rs crates.io

Library for simulating quantum circuits in the Pauli basis, built to scale across threads, processes and nodes. Pauli strings are stored as symplectic bitvectors, and terms are assigned to workers by a hash function that is linear over the bitfield. As a result, the library can efficiently parallelize the work and compute the communication patterns for a given circuit. Additionally, for standard gate and noise sets, the amount of communication remains bounded and no global synchronization or reduction is required.

This crate is the Rust core of the paulistrings-rs workspace. Its Python package, paulistrings-rs, is the user interface and is documented on the documentation site.

Rust API

cargo add paulistrings; the crate root re-exports PauliSum, propagate and propagate_with, the built-in channels and truncation policies, and the Channel and TruncationPolicy extension traits. The off-by-default features add per-phase timing (phase-timing), the MPI transport (mpi) and the CUDA backend (cuda). The API documentation is a developer guide in which each item states the contracts it keeps. CLAUDE.md lists the build, test and benchmark commands.

License

Dual-licensed under MIT or Apache-2.0, at your option.