etmc / tmLQCD

tmLQCD is a freely available software suite providing a set of tools to be used in lattice QCD simulations. This is mainly a HMC implementation (including PHMC and RHMC) for Wilson, Wilson Clover and Wilson twisted mass fermions and inverter for different versions of the Dirac operator. The code is fully parallelised and ships with optimisations for various modern architectures, such as commodity PC clusters and the Blue Gene family.
http://www.itkp.uni-bonn.de/~urbach/software.html
GNU General Public License v3.0
32 stars 47 forks source link

have we ever mixed QPhiX && DDalphaAMG in the 1+1 HMC? #480

Open kostrzewa opened 3 years ago

kostrzewa commented 3 years ago

@sbacchio @urbach @Finkenrath

I just realised that we might have a bug in tmLQCD + DDalphaAMG + QPhiX if DDalphaAMG with initial guesses is used in the 1+1 sector...

See line 235 below.

https://github.com/etmc/tmLQCD/blob/926f87f0ffb1d4dc0d55c2b7a28c4684f104e013/solver/monomial_solve.c#L214-L256

I guess, however, that we never used this combination in practice, did we?

sbacchio commented 3 years ago

HI @kostrzewa not clear why you say it might be a bug.

The point behind no_cgmms_init_guess is to iterate in the CGMMS procedure also vectors that then will be solved by multigrid. Meaning that these vectors will not be checked for convergence but still iterated together with the other target solutions. The partial solution then is passed to the multigrid for completion.

The point why this variable with QPhiX is set to zero is because I didn't try know how to ask QPhiX to partially invert some shifts. On the other hand I did this with CGMMS in tmLQCD.

Independently on the value of that variable, DDalphaAMG should still take care of computing the remaining shifts (mg_nshifts)

Finkenrath commented 3 years ago

Hi @kostrzewa, DDalphaAMG and QPhiX was not used in the same monomial, due to the outlined issue by Simone. Namely that the multishift solver in QPhiX can not exit without iterating all solutions to the target residual. From such optimization would profit mainly the correction term, but the question would be if that would justified the coding effort (would probably require to add additional parameters to QPhiX).