Open
Description
I had an idea for how we could make better performance & regression tests.
We could have a secondary testing system for tests which take a long time to run. We have a number of examples with large data sets which we can turn into tests with relative ease. These tests use real world data in plausible user scenarios.
- MNSIT - approx 5 minutes to run
- Hotgym - approx 5 minutes to run
- NAB - several hours to run
- Nupic.py has an example for "MSNBC.com Anonymous Web Data" which tracks users as they brows MSNBC.com and predicts which news article they will read next. I have not tried this example.
- Hopefully more examples?
Design notes:
- Our optimization framework has facilities to run examples and measure their performance. All of our examples already use this framework.
- Keep a persistent file of results, saved on and local to the computer which runs the tests.
- These tests can never run in CI because they take too long, so this is possible.
- Using the same computer hardware for each test means you can compare the run times between versions of the library. Keep the run-times on file, so that you can check for performance regressions after upgrading nupic.
- This would be a long term project.