Can you provide any preliminary data on Julia vs C++ runtime for iTensorâ€™s DMRG? Is the algorithm implemented in Julia the same 2-site algorithm implemented in Julia?

+1 vote

Hi Matthew,

We now have publicly available benchmarks of both the C++ and Julia version of ITensor, including DMRG benchmarks but also algorithms like TRG (http://tensornetwork.org/trg/) and corner-transfer renormalization group (CTMRG). Here is the link:

https://github.com/ITensor/ITensorsBenchmarks.jl

If you specifically look at the plots subfolder you can see some comparison graphs:

https://github.com/ITensor/ITensorsBenchmarks.jl/tree/main/benchmarks/julia_vs_c%2B%2B/plots

The summary of what we've observed is that the Julia version is always very competitive with the C++ version, and typically even exceeds the C++ version's performance. We aren't totally sure why this is, but could include lots of effort by ITensor lead developer Matt Fishman to optimize the Julia version, and our use of high-quality Julia libraries for which we don't have an analogue in C++. Plus in some sense the Julia version got a head start by being based on years of effort designing and optimizing the C++ version.

We plan to put these benchmark results into the published version of the ITensor Paper (https://arxiv.org/abs/2007.14822) and give a more thorough discussion of them there.

Best regards,

Miles

...