3
$\begingroup$

Now I'm focusing on quantum simulation (especially on classical supercomputers), but I saw there exist so many simulators. Is there any criteria to judge which is the best? https://www.quantiki.org/wiki/list-qc-simulators

Also, I'm doing some research on simulation approaches and read some papers, including: https://arxiv.org/abs/1805.01450, https://arxiv.org/abs/1802.06952, and some others. I found that in these papers, they do not use the simulator toolkit in https://www.quantiki.org/wiki/list-qc-simulators, so I'm wondering which simulator should I follow now?

$\endgroup$
3
$\begingroup$

The best simulator depends heavily on the structure of the circuit you are working with.

In the supremacy experiment we used qsim for state vector simulation. It has hand-rolled vectorized assembly to make applying arbitrary two qubit gates very fast. But it uses space exponential in the number of qubits, so circuits covering the entire chip were too large to store in memory.

We also used qsimh, which is a tensor network simulator. It can cut the circuit into pieces and solve each piece separately. It has cost exponential in the number of operations crossing the cut. It can scale out to a large number of qubits... as long as you can find good cuts. In practice this means the two qubit operations need some form of locality and the circuit depth needs to be low. When testing we would purposefully weaken circuits by removing a few key operations crossing cuts, so they could be simulated.

Another extremely useful form of simulator is a stabilizer circuit simulator. These simulators scale to hundreds of thousands of qubits with no limits on depth, but only support stabilizer operations (yes H, yes S, yes CNOT, no T, no Toffoli). Or, to be more accurate, their time cost increases exponentially for each non-Clifford operation you use.

$\endgroup$
2
$\begingroup$

I think it really depends on what you want from your program and in which language you want to work and if you might want to run it on real quantum hardware. The latter I would go for qiskit or cirq.

But if you just want to go for a fast simulation there might be an advantage in C or C++. In general you can test the runtimes quite good by for example simulating the Q-FT in the different simulators.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.