Does TDVP offer faster computation than TEBD (2D cylinder)?

Hi everyone,

I have been using the TEBD algorithm from iTensor to simulate 2D cylindrical lattice systems. Converged results were taking as much as 15 hours for 6x6 and 6x12 lattices. However, now I need to look at 12x12 lattices and the code seems to be running forever, even on a cluster.

So I wanted to ask whether TDVP surpassed TEBD complexity wise so that it could run such 12x12 systems. Or maybe if there are other options, I tried multithreading with BLAS or blocksparse and there was no improvement in the performance.

Thanks so much in advance!

Sorry for the slow reply – yes one advantage of TDVP is that it is typically faster than TEBD except perhaps for the simplest problems (your case being quasi-2D it’s even more likely that TDVP would be faster). A big reason TDVP can be more efficient is that it can take a larger step size than TEBD per sweep over the MPS that is being evolved. Basically you can take fewer big steps versus more small steps.

Thanks for the reply Miles! You are right, I actually tried TDVP for my problem it is indeed faster. One nice thing compared to TEBD is that it basically takes constant time for each time step, depending on the max bond dimension, whereas in TEBD it would start fast but then take increasingly more time for the later time steps.

Glad it worked so much better for you. Just as a technical note, you can also run TEBD in a similar style: by fixing the “maxdim” parameter controlling the apply function the time to apply gates will also be constant at each step and not grow at later times. But still TDVP ought to be faster for additional reasons, such as the ability to accurately take larger time steps, and other reasons.

1 Like