Posts Tagged ‘Computational Physics’

[GSoC] Getting started

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.


Education in America and in Slovenia


I’m a 4th year (22 years old) student, studying Physics in Ljubljana, Slovenia. Without trying to sound overconfident, I am quite good at this and have passed the previous years with a very good average, despite my study being one of the hardest in the (rather small) country. So, with my country being small and all, my parents wished that I should study abroad, preferably in USA. However, having heard high praise of our university and not wanting to leave my home just yet, I decided to stay and study here.

I consider myself a good learner, especially when learning by myself, so I taught myself programming in a handful of programming languages. Recently though, I saw that Stanford university is making some computer-related classes publicly available, with video lectures and programming assignments for testing. I immediately signed up for Machine Learning. I skipped over the introductory lectures and tests, seeing that I learned all I needed for this class in previous years. But when the first programming assignment was published, I read it and dropped out of the class immediately.

The American way

It was a 15-page (yes, fifteen pages) instruction to implement a Linear Regression algorithm. For those that don’t know what this is, it’s a task of fitting a straight line between a series of points. It’s publicly available, so if you’re interested, here is the whole package with instructions and a large collection of programs to help you. It takes more time to read through the whole thing than to write a solution.

Fitting lines through data points is something we did in high school, and we learned to do it properly at the beginning of the first year at the university. It’s a very simple problem, and every single mathematical program has a function for it built-in (even Excel). It is even analytically solvable, so there is an exact formula that calculates the coefficients given a number of points.

The Slovene way

While my field is Physics and the class I’m talking about is from Computer Science, I did choose a Computational Physics program, so I have similar subjects at my university as well. I think the closest is Model Analysis, a class with more emphasis on numerical methods, mathematics and computers than on actual physics. The complete first assignment (less than one page) is here, in English.

Here, the task is to figure out how we should slow down or accelerate to arrive to the traffic light at the exact time when the green light turns on, given that we know this time in advance. Besides it involving much more advanced mathematics, the choice of tools is entirely up to us. We are always encouraged to find interesting similarities with other problems, and the assignments always give us some free space to interpret or spice up the solutions.


I’m definitely glad I stayed at home, where I will receive a proper education, even though it’s not a prestigious. But I don’t like being treated as a little kid in school any more. I don’t know what the atmosphere at American universities is, or how much better their access to equipment is, but as long as I’m going to school, I want to learn as much as I can in these years, not just drag along lazily.