Skip to content

SU(2) DMRG performance unexpectedly slower than U(1) ITensor version #311

@drichg

Description

@drichg

Hi, thank you for the great package!
I'm benchmarking DMRG calculations using MPSKit.jl with SU(2) symmetry, and I encountered a significant performance discrepancy compared to a U(1)-symmetric calculation done with ITensor.
Here are my benchmarks:
ITensors (Julia):
Symmetry: U(1)
Bond dimension: D = 4800
Time per sweep: 20.92 hours.
output:
After sweep 1 energy=-337.23217296396973 maxlinkdim=4800 maxerr=3.46E-05 time=70248.585
After sweep 2 energy=-337.2389290839439 maxlinkdim=4800 maxerr=3.78E-05 time=75324.747

MPSKit (0.12.6)
Symmetry: SU(2)
Max bond dimension: D = 4000
Time per sweep: 31.66 hours.
output:
[ Info: DMRG2 1: obj = -3.164484013797e+02 err = 9.1771680577e-01 time = 4.42 min
[ Info: DMRG2 2: obj = -3.292824077866e+02 err = 1.7325899602e-02 time = 17.07 min
[ Info: DMRG2 3: obj = -3.348343234046e+02 err = 4.5124942262e-03 time = 5.39 hr
[ Info: DMRG2 4: obj = -3.360135495584e+02 err = 8.0470138898e-04 time = 31.66 hr

Both calculations were performed on the same hardware, using a 64-core, 128-thread CPU machine. This seems counterintuitive, as I expected that the SU(2) symmetry would help reduce the computational cost due to block structure. Is this behavior expected, or might I have misconfigured something in my setup?
Thanks again for your hard work on this project!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions