As part of a release (and in general), performance tests are run for SystemML.
Currently, running and reporting on these performance tests are a manual process. There are helper scripts, but largely the process is manual.
The aim of this GSoC 2017 project is to automate performance testing and its reporting.
These are the tasks that this entails
1. Automate running of the performance tests, including generation of test data
2. Detect errors and report if any
3. Record performance benchmarking information
4. Automatically compare this performance to previous version to check for performance regressions
5. Automatically compare to Spark MLLib, R?, Julia?
6. Prepare report with all the information about failed jobs, performance information, perf info against other comparable projects/algorithms (plotted/in plain text in CSV, PDF or other common format)
7. Create scripts to automatically run this process on a cloud provider that spins up machines, runs the test, saves the reports and spins down the machines.
8. Create a web application to do this interactively without dropping down into a shell.
As part of this project, the student will need to know scripting (in Bash, Python, etc). It may also involve changing error reporting and performance reporting code in SystemML.
Rating - Medium (for the amount of work)
Mentor - Nakul Jindal (Other co-mentors will join in)