Can QuEST simulate a circuit with more than 64 qubits?
Closed this issue · 1 comments
I have simulated a 56-qubit circuit with QuEST and want to simulate a quantum circuit with more than 64 qubits. However, the validateNumQubitsInQureg
function in QuEST prohibits me from doing so. I think I can simply comment this function and try to simulate the circuit on GPU (RTX3090), but I'm not sure if this is appropriate or there are better methods.
P.S. My circuits are generated with https://github.com/sboixo/GRCS.
Hi there,
I'm a little confused by your claim of running a 56-qubit circuit.
QuEST is a "full state" simulator (the E stands for Exact), which means it makes no approximations nor compressions of the quantum state, representing it as 2^#qubits
Z-basis amplitudes. This means a 56-qubit state requires storing 2^56 ~ 7*(10^16)
floating-point complex numbers, which at double precision, is an exbibyte!
In distributed mode, the memory requirements are double due to communication buffers. Hence a 56-qubit state, if distributed between very impressive machines each with 1 TiB RAM, would require over two million nodes. That's over one-thousand times the memory in Pleiades.
To fit a 64-qubit full-state simulation, the total supercomputing memory must exceed half a zebibyte!
Since you wish to simulate supremacy circuits, it sounds like a full-state simulator is not the right tool. Instead, you will wish to (heavily) approximate the output distributions of Sergio's circuits, rather than compute precise amplitudes. I recommended looking for a tensor-network based simulator, which can incorporate many approximations to reduce the total memory requirements which don't comprimise things like the Haar measure. I'm not sure if an open-source distributed tensor network simulator exists however (they're an active area of research, Phys Rev A), but you may wish to reach out to authors of several TN simuators of the supremacy circuits (arXiv).
Hope this helps!