Implement option to choose which inverter to use in the Pbp calculation (Feature #731)

Added by Alessandro Sciarra over 2 years ago. Updated about 2 years ago.

Status:In Progress Start date:23 Feb 2015
Priority:Normal Due date:
Assignee:Christopher Pinke % Done:


Target version:-


It was notice that in the pure Wilson formulation the BICGSTAB solver in the pbp calculation is performing much better than the CG solver. It makes then sense to give to the user the possibility to choose which solver to use in the pbp calculation (so far the solver used is the same as that used in the generation executable).

Even if, in principle, it would be good to do the same in all formulations, it has more priority in the Wilson case, where the operator that is inverted in the pbp calculation is different from that inverted during the generation of configurations. In other formulations (e.g. staggered fermions) it is not the case and this modification can be postponed.

Some comparison of the performances of the two solvers in the pure Wilson case:

  • k1550 nt6 ns20 beta5.5300 conf.31000 --sourcetype=volume --sourcecontent=gaussian --num_sources=16

SOLVER [CG] [000310]: CG completed 310 iterations in 966 ms
SOLVER [CG] [000310]: Performance [FLOPS]: 56.27799987793 GFlops. Performance after warmup: 56.764999389648 Gflops.

SOLVER [BICGSTAB] [000101]: Solver completed in 463 ms @ 40.590999603271 Gflops. Performed 101 iterations

  • k1650 nt6 ns24 beta5.3350 conf.17000 --sourcetype=volume --sourcecontent=gaussian --num_sources=16

SOLVER [CG] [001280]: CG completed 1280 iterations in 5897 ms
SOLVER [CG] [001280]: Performance [FLOPS]: 65.652000427246 GFlops. Performance after warmup: 65.916000366211 Gflops.

SOLVER [BICGSTAB] [000241]: Solver completed in 1469 ms @ 52.662998199463 Gflops. Performed 241 iterations

Associated revisions

Revision 37444082
Added by Alessandro Sciarra over 2 years ago

Forced inverter in pbp to be BICGSTAB: temporary workaround!!
refs #731

Revision d6e06dc6
Added by Alessandro Sciarra over 2 years ago

Added a try-catch block to use CG solver when BICGSTAB fails in inversion.
refs #731


Updated by Alessandro Sciarra over 2 years ago

So far, as temporary workaround in order to get the better performance, the inverter in the pbp calculation has been forced to be the BICGSTAB. This has to be changed and implemented properly!

  • Assignee changed from Alessandro Sciarra to Christopher Pinke
  • Status changed from New to In Progress

Updated by Alessandro Sciarra over 2 years ago

Hi Christopher, I forgot to tell you that the modifications I did were done on the branch Feature731 and here one should work to implement the switch between the inverter.

Updated by Alessandro Sciarra about 2 years ago

Just as info, I renamed this branch from Feature731 to ChooseInverterInPbp.

Also available in: Atom PDF