QMCPACK / miniqmc

QMCPACK miniapp: a simplified real space QMC code for algorithm development, performance portability testing, and computer science experiments
Other
26 stars 35 forks source link

Print throughput #213

Closed ye-luo closed 5 years ago

ye-luo commented 5 years ago

I got asked why miniQMC runs slower with OpenMP threads than serial. So I think we need to print out throughput.

Now the following is printed:

========== Throughput ============ 

Total throughput ( N_walkers * N_elec^3 / Total time ) = 2.0438e+09
Diffusion throughput ( N_walkers * N_elec^3 / Diffusion time ) = 3.17103e+09
Pseudopotential throughput ( N_walkers * N_elec^3 / Pseudopotential time ) = 7.80695e+09
markdewing commented 5 years ago

What is the motivation for splitting the throughput into diffusion and PP parts? The determinant update in the diffusion part has the N^3 scaling, so putting the N^3 factor into the diffusion throughput makes sense. Putting an N^3 factor in the PP throughput makes it consistent mathematically, but I'm not sure it is meaningful on it's own?

ye-luo commented 5 years ago

Mathematically NLPP scales as Nelec^2. Fixed printout.