Today is the start of coding for Google Summer of Code 2013. This year I was accepted by DUNE, a Distributed and Unified Numerics Environment. It is a toolbox for solving partial differential equations, and as a student of Computational Physics I have some experience with that.
My project, however, won’t be directly related to differential equations. Instead, I will provide a tool for measuring, storing and analyzing the performance of DUNE applications. This project consists of several parts, and the final workflow will look like this.
- Measure the time spent compiling and running a program
- Store the result into a database, so they can be compared with previous data
- Perform statistical analysis on the data, find outliers, general trends, and quantify optimizations.
- Visualize the data as a HTML page with pretty graphs
- Upload local data to a central server, where performance of the same program on different computers with different compilers can be compared
- More statistics and visualizations performed on the central server
DUNE currently has helpers for some of the parts (log format, uploading), but the project will still require a lot of work with different languages and frameworks. I plan to use Python for the most part, but charts will require JavaScript. I will also start with some example DUNE programs, which will be written in C++.
My work will progress roughly in the order written above. I’m starting with a small script that measures theĀ running time of a program and writes it to a logfile. I’m leaving for a conference in England after this week, so I hope to complete at least this first item by then.