Parallel vumpssvd
This PR also makes vumpSVD parallel.
Again tests have been implemented in another PR and I've tested the combined PR locally on my machine :)
Codecov Report
Attention: Patch coverage is 88.23529% with 4 lines in your changes missing coverage. Please review.
| Files with missing lines | Patch % | Lines |
|---|---|---|
| src/algorithms/changebonds/vumpssvd.jl | 88.23% | 4 Missing :warning: |
| Files with missing lines | Coverage Δ | |
|---|---|---|
| src/algorithms/changebonds/vumpssvd.jl | 79.16% <88.23%> (+7.37%) |
:arrow_up: |
Is this ever a bottleneck? Because this definitely nontrivially changes the algorithm by doing it in parallel, because every bond update is assuming the other sites to be constant, and this implementation breaks that assumption. It might indeed be the case that this does not matter, you're interested in getting the spaces approximately right, but I'm somewhat less confident about this
I just had some code running where this took about half a day. And bond dimensions are still growing.
I wouldn't say its the biggest bottleneck but I was parallelizing stuff anyways so I thought, why not...
I agree that this changes the algorithm, hence my choice to explicitly retain the old algorithm in the non parallel case. I don't think the change is bad though, parallel VUMPS also breaks this assumption and still converges eventually. So I don't see any reason why this wouldn't give something reasonable.