Setup a benchmark suite
We should setup a rigorous benchmark suite that we can use for benchmarking the code, profiling and checking if optimization work.
Preferably this should be done before any optimization is carried out.
If possible we could have a light-weight benchmark suite which runs in a few minutes which can yield a quick estimate of the performance and then the real benchmark which runs more realistic systems which perhaps takes hour/hours?
Tasks
-
Benchmarking scripts
For this we need to pick good representative systems that reflect usingHiPhive
in real applications. Benchmarking can and should be done along multiple "dimensions", for example: -
Second order for low symmetry systems
-
Higher order terms for high symmetry systems
-
...
-
Learn about python profiling and setup scripts to do this in the best way.