Benchmarking my iDMRG code speed

Hi All
I am trying to implement iDMRG using iTensor. My code roughly follows (though it is a 2D version) this Mueller: Basic Training 2019

And I am trying to benchmark my performance by solving the transverse field ising model, and I am trying to reproduce the results in this paper (Fig1), Dynamical phase transitions in the two-dimensional transverse-field Ising model. The Hamiltonian is

H=\sum_{<i,j>}-J\sigma^z_i\sigma^z_j-\sum_i h\sigma^x_i

My problem is that the iteration becomes super slow near the critical point. I am using a cylidrical geometry with width w.
For example, for width w=2, h=2.3J, it takes around an hour to converge (around 3-400 iterations).

For w=4, h=2.6/2.7J, I never get through the first few iterations within two hours (by iterations, I mean inserting sites).

For reference, I am setting my maximum bond dimension to be 2000, and the SVD cutoff to be 10^(-10).

My question it: for those of you who have either implemented iDMRG using ITensor, or those doing TenPy, what amount of time should I expect points near critical point? Do you have a benchmark results I can calibrate to?

Thanks a lot!

Probably the easiest thing would be to run the same calculation with an existing iDMRG code using parameters that are consistent with your code. Also, the basic steps of iDMRG scale the same as DMRG, so you can benchmark the individual steps against what you expect from DMRG and also check that things like the scaling in the bond dimension are what you expect.

We have an iDMRG code in the C++ version of ITensor: GitHub - ITensor/iDMRG: The infinite-size variant of the Density Matrix Renormalization Group (iDMRG) algorithm, implemented in ITensor., and as you mentioned you can also try TenPy: Contents — TeNPy 1.0.4.dev166+81e6cf6 documentation.