WIP: Resolve "Remove explicit constructions of the Q Matrix from the QR decomposition"
https://git.physik.uni-wuerzburg.de/fassaad/General_QMCT_code/commit/db7ac1b0144b3e6b55b30cf3e8022d57aab5dd51 ). We are now able to revert to the old stabilization scheme.
This branch has now been manually merged into the master branch (I propose to merge the current state of this branch with master, Development will continue on this branch. I worked on the wrapul and wrapur functions. Summary of the changes so far:
- separated out the linear algebra part out into separate functions and separate files.
- tests for those new functions
- take variables off of the stack
- save some mem. I think it is benficial for the master branch to have those tests and the lessened consumption of stack space.
Here are some numbers for the memory usage on the SPT model compared to the current master. Parameters are(L1=L2=5, beta=4, dtau=0.1, Nwrap=15, Nsweep=2, Nbin=3)
The peak usage for the master is 87,052,288 Byte
The peak usage for my branch is 64,897,024 Byte
Therefore at those parameters a decrease of 25%.
For the Hubbard_SU2 model with parameters(L1=L2=16, beta=20, dtau=0.1, Nwrap=30, Nsweep=2,NBin=2)
we have 119,418,880 Bytes for the master
and 104,771,584 Bytes for my branch.
Therefore a decrease of 13% of memory usage.
Since the stabilization is for a lot of systems not very performance relevant no much changes. For parameters tweaked to favor the new stabilization(Hubbard_SU2, L1=L2=10, U=8, beta=160, dtau=0.1, NWrap=1, NSweep=2, NBin=2) I observe the following numbers:
The runtime for the master is 932s
The runtime for my branch is 885s
Therefore at those parameters this amounts to a small speedup of 5%.
With regards to the actual stabilization numbers I observe the following:
The Hubbard_Mz model@ L1=L2=U=4, beta=20, Nwrap=10, Nsweep=4:
current master: Precision Green Mean, Max : 4.0359010899053122E-011 3.7015064791035002E-008
Precision Phase, Max : 0.0000000000000000
Precision tau Mean, Max : 1.0122010829088495E-011 2.3731516446412471E-008
Acceptance : 0.42419921875000000
My branch:
Precision Green Mean, Max : 3.8937351354325768E-011 3.5325195144042532E-008
Precision Phase, Max : 0.0000000000000000
Precision tau Mean, Max : 8.5844925915529122E-012 3.3794579273882519E-008
Acceptance : 0.42419921875000000
For the Hubbard_SU2 model at the same parameters, except NWrap=40, I observe:
For the Master branch:
Precision Green Mean, Max : 8.5678144528853439E-008 2.6138725435686599E-006
Precision Phase, Max : 4.4637963531033305E-006
Precision tau Mean, Max : 1.0129105784082156E-008 3.6504336864824795E-007
Acceptance : 0.34361328125000001
For my branch:
Precision Green Mean, Max : 5.5506963121842017E-008 2.9052145263167015E-006
Precision Phase, Max : 4.1309528503365997E-006
Precision tau Mean, Max : 9.7715100590049246E-009 4.3632596569682565E-007
Acceptance : 0.34361328125000001
For the SPT model@L1=L2=5, Beta=4, Nwrap=20 ham_Lam=0.5 I observe
For the master branch:
Precision Green Mean, Max : 5.2669927928779506E-010 1.6592551890874520E-008
Precision Phase, Max : 2.4819181661713438E-008
Acceptance : 0.43534374999999997
For my branch:
Precision Green Mean, Max : 1.9217713711735632E-010 6.4288760416547413E-009
Precision Phase, Max : 4.5964145551188418E-009
Acceptance : 0.43534374999999997
For the Ising model @ L1=L2=8, Beta=10, dtau=0.1, xi=h=J=1, NWrap=20, NSSweep=20 I observe:
For the master:
Precision Green Mean, Max : 9.6357872846921299E-005 1.8682228134587565E-002
Precision Phase, Max : 0.0000000000000000
Acceptance : 2.6895312500000001E-002
For my branch:
Precision Green Mean, Max : 5.2196663295962717E-005 4.1426907216497418E-004
Precision Phase, Max : 0.0000000000000000
Acceptance : 2.6895312500000001E-002
For the Kondo Honey @ (L1=L2 =3, T=1, J=2.5,Jz=2, U=0, Beta=10, dtau=0.1, Checkerboard=1, NWrap=4, NSweep=10, NBin=2)model I observe this:
For the master branch:
Precision Green Mean, Max : 4.8649997187280620E-005 2.8332747591374630
Precision Phase, Max : 0.0000000000000000
Acceptance : 0.42357291666666669
For my branch:
Precision Green Mean, Max : 4.7651694492231726E-010 4.2789744579752780E-005
Precision Phase, Max : 0.0000000000000000
Acceptance : 0.42356250000000001
For the canonical Hubbard model@(L1=L2=U=4, Model =Hubbard_Mz, beta=20,dtau=0.1, Lambda=2, n_Lambda=10, NWrap=10, NSweep=50) I observe:
For the master branch:
Precision Green Mean, Max : 5.2787338684407404E-011 2.6508232210042973E-007
Precision Phase, Max : 3.1749906202997851E-008
Acceptance : 0.43659423076923076
For my branch:
Precision Green Mean, Max : 4.8712156884014289E-011 1.7553793272730316E-007
Precision Phase, Max : 1.9469902584738813E-008
Acceptance : 0.43659423076923076