spirit-code / spirit

Atomistic Spin Simulation Framework
http://spirit-code.github.io
MIT License
117 stars 52 forks source link

Benchmark #548

Open MSallermann opened 4 years ago

MSallermann commented 4 years ago

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:

GPMueller commented 4 years ago

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).