QMCPACK / miniqmc

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

Move timers into more appropriate classes #130

Closed markdewing closed 6 years ago

markdewing commented 6 years ago

Addresses #129

Move timers related to distance tables into ParticleSet, timers related to Jastrow and determinant handling into WaveFunction, and SPO timers into einspline_spo

The distance table timers are also split more finely according to function.

For Jastrows, get the timer names from the wavefunction component name variable.

Example output:

Stack timer profile
Timer                 Inclusive_time  Exclusive_time  Calls       Time_per_call
Total                    5.0523     0.1033              1       5.052315839
  Diffusion              2.4648     0.0154             40       0.061619387
    Accept move          0.0067     0.0067           7775       0.000000857
    Current Gradient     0.0098     0.0057          15360       0.000000638
      Determinant        0.0015     0.0015          15360       0.000000096
      OneBodyJastrow     0.0014     0.0014          15360       0.000000090
      TwoBodyJastrow     0.0013     0.0013          15360       0.000000084
    Kinetic Energy       0.0003     0.0001             40       0.000007347
      Determinant        0.0000     0.0000             40       0.000000187
      OneBodyJastrow     0.0001     0.0001             40       0.000002765
      TwoBodyJastrow     0.0001     0.0001             40       0.000002332
    Make move            0.3344     0.3344          15360       0.000021773
    Move done            0.0014     0.0014             40       0.000034714
    New Gradient         1.1160     0.8816          15360       0.000072654
      Determinant        0.0877     0.0877          15360       0.000005709
      OneBodyJastrow     0.0138     0.0138          15360       0.000000898
      TwoBodyJastrow     0.1328     0.1328          15360       0.000008648
    Set active           0.3395     0.3395          15360       0.000022103
    Update               0.6413     0.0037           7775       0.000082483
      Determinant        0.5395     0.5395           7775       0.000069383
      OneBodyJastrow     0.0012     0.0012           7775       0.000000151
      TwoBodyJastrow     0.0970     0.0970           7775       0.000012475
  Pseudopotential        2.4842     0.0135             40       0.062106004
    Make move            1.4093     1.4093          65748       0.000021435
    Value                1.0615     0.3942          65748       0.000016145
      Determinant        0.3703     0.3703          65748       0.000005632
      OneBodyJastrow     0.0484     0.0484          65748       0.000000736
      TwoBodyJastrow     0.2486     0.2486          65748       0.000003781
ye-luo commented 6 years ago

It seems that the SPO timer is not printing.

markdewing commented 6 years ago

Created timer in copy constructor Now output is

Stack timer profile
Timer                           Inclusive_time  Exclusive_time  Calls       Time_per_call
Total                              5.1250     0.0754              1       5.125030363
  Diffusion                        2.5237     0.0168             40       0.063093639
    Accept move                    0.0067     0.0067           7775       0.000000860
    Current Gradient               0.0093     0.0057          15360       0.000000606
      Determinant                  0.0010     0.0010          15360       0.000000063
      OneBodyJastrow               0.0014     0.0014          15360       0.000000090
      TwoBodyJastrow               0.0012     0.0012          15360       0.000000081
    Kinetic Energy                 0.0003     0.0001             40       0.000006886
      Determinant                  0.0000     0.0000             40       0.000000165
      OneBodyJastrow               0.0001     0.0001             40       0.000002652
      TwoBodyJastrow               0.0001     0.0001             40       0.000002186
    Make move                      0.3371     0.3371          15360       0.000021946
    Move done                      0.0014     0.0014             40       0.000034678
    New Gradient                   1.1604     0.0070          15360       0.000075549
      Determinant                  0.0879     0.0879          15360       0.000005721
      OneBodyJastrow               0.0133     0.0133          15360       0.000000863
      Single-Particle Orbitals     0.9186     0.9186          15360       0.000059806
      TwoBodyJastrow               0.1336     0.1336          15360       0.000008701
    Set active                     0.3398     0.3398          15360       0.000022120
    Update                         0.6520     0.0036           7775       0.000083856
      Determinant                  0.5514     0.5514           7775       0.000070924
      OneBodyJastrow               0.0012     0.0012           7775       0.000000156
      TwoBodyJastrow               0.0957     0.0957           7775       0.000012307
  Pseudopotential                  2.5259     0.0152             40       0.063146914
    Make move                      1.4284     1.4284          65748       0.000021725
    Value                          1.0823     0.0296          65748       0.000016461
      Determinant                  0.3727     0.3727          65748       0.000005669
      OneBodyJastrow               0.0486     0.0486          65748       0.000000739
      Single-Particle Orbitals     0.3847     0.3847          65748       0.000005851
      TwoBodyJastrow               0.2467     0.2467          65748       0.000003752