Search
Close this search box.
Search
Close this search box.

How does a quantum computer simulator work?

How does a quantum computer simulator work?

Technology

undefined
The suspected relationship of BQP to several classical complexity classes

Designing a Fast and Flexible Quantum State Simulator

The design of Spinoza, (one of) the fastest low-qubit quantum simulator(s)

We have just released a short paper describing the design of the single-threaded version of our quantum simulator implemented in Rust: ‘Designing a Fast and Flexible Quantum State Simulator’.

Saveliy Yusufov, one of our high-performance computing experts, and Charlee Stefanski, the lead of our quantum computing platform, will work on making the code available soon. Later we will cover the multi-threaded and distributed versions of this simulator.

Profile photo of Charlee Stefanski
Charlee Stefanski

When discovering efficient circuits, or running QML implementations for a long time, you typically need less than 15 qubits and a fast simulator, with no start-up overhead.

This is how Spinoza was born, our high-performance version of a simple simulator we have ported to multiple languages (e.g. Python, Julia, Go). No large matrix multiplication is needed, just recombining pairs of amplitudes whose probability is preserved when single-qubit gates are applied. We have found out that Qulacs, one of the most popular fast simulators (written in C++) uses similar principles. Rust has many benefits, one of them being efficient SIMD out-of-the-box.

How fast is it?

Faster than other simulators we have tried on typical developer machines or servers. HPC implementations of simulators will still use a single thread below 15 qubits, without GPU, so we have not compared the single-threaded version with such simulators.

It was also important to us that we can customize the implementation to particular circuits that are run many times, leading to multiple strategies for optimizing the cache loading in order to process pairs efficiently depending on the details of a circuit. The current benchmarks reflect default strategies, but we will follow up with optimization examples when we make the code available. The benchmarks are the ones Qulacs uses.

Charlee and I are also writing a book that will include a simple and efficient implementation of a simulator.

In conclusion, I would emphasize we are the fastest. As a result, that puts a target on our backs, and there are always use cases that make one or the other faster! Lastly, ‘Fast and Flexible’ are our goals.

Download the full paper: [2303.01493] Designing a Fast and Flexible Quantum State Simulator (arxiv.org)

Profile photo of Constantin Gonciulea
Constantin Gonciulea

How does a quantum computer simulator work?