Skip to content

WIP: Resolve "Remove explicit constructions of the Q Matrix from the QR decomposition"

This branch has now been manually merged into the master branch ( https://git.physik.uni-wuerzburg.de/fassaad/General_QMCT_code/commit/db7ac1b0144b3e6b55b30cf3e8022d57aab5dd51 ). We are now able to revert to the old stabilization scheme.

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

Merge request reports