spirit icon indicating copy to clipboard operation
spirit copied to clipboard

Benchmark

Open MSallermann opened this issue 6 years ago • 1 comments

I think it would be good if Spirit included a small benchmarking executable, e.g. ./benchmark lying next to the ./spirit executable after compilation. Command line arguments could be used when calling ./benchmark to decide which benchmark problem to execute and possibly write results to a file.

Having a set of standard benchmark problems (and therefore a rough expectation of performance) could be of great help to quickly gauge the impact of changes made to the core and be another way (besides the unit tests) to verify a Spirit installation. Also this could be used to easily track performance improvements (hopefully) over time.

Of course, there is the open question of which benchmark problems to take. I would suggest:

  • A certain number (~100) of gradient and energy evaluations, with a few nearest neighbour shells and without DDI, in a big system
  • The same with DDI activated
  • Time to converge to a minimum in a reasonably non-trivial system with the different minimization algorithms. Maybe a vortex in a cube?
  • ?

MSallermann avatar Oct 23 '19 10:10 MSallermann

Tracking performance improvements over time would be a big benefit! I would recommend also benchmarking MC and GNEB (and maybe also MMF - there, performance can still be increased a lot).

For completeness sake: we could also benchmark critical functions, which would reduce the overhead of a benchmark run. Regarding a library to use in this case, I personally liked using nonius (see also here).

GPMueller avatar Oct 23 '19 11:10 GPMueller