Scientific Programming at Queen Mary
For the last six months, I've been working away at Queen Mary University of London. There was a large gap for the Transsiberian, but aside from that I've had a lot to learn in a short time. Starting a new job at a large organisation always involves a bit of ramping up. The first month or so, there was the usual 'getting to know the place', but now I'm right in the thick of it.
Basically, my job can be summed up by this image!
My job is to help out wherever programming is needed, in and around the university. I'm the only one here doing that, though my boss chips in with programming bits here and there. So far I've had to look at:
- OpenMPI and MPI in general.
- OpenMP and how to speed up a couple of programs
- High Performance computing clusters and how they generally work
- A little bit of Erlang
- Working with a biologist to sort and compare really large lists!
- Learn Fortran and look at some computational fluid dynamics for a PhD student
- Write tests for a program in C++
- Read about Google Protocol buffers
- Join the Open Source project SOCI and update the codebase to C++11
- Write a little Raytracer to learn about OpenMPI
- Read up on RabbitMQ
- Learn and use Docker and Vagrant for the first time.
- Understand the Intel compiler and how best to profile with VTune
- ... and other things besides
All of these are quite interesting and somewhat more professional than the things I was doing previously, or rather, some of these things are in common use in the industry. Test frameworks like BoostTest, cluster scheduling programs, test environments etc etc.
So far, probably the most interesting thing was to read over this paper on R2KS: a novel measure for comparing gene expression based on ranked gene lists, and make it work on the really large cluster we have here. By doing so, theres a good chance our PhD student will get more results faster, which is a good thing considering he was hunting for new uses for old drugs. Pretty cool, and not often you get to work on such things. It certainly gives you a warm fuzzy feeling that you are doing some good out there in the world. At some point, I'll post the code up so you can all take a look.
Being at a university has many perks, chief among which is meeting people from various different backgrounds. QMUL is quite small in terms of campus size, so it's easy to nip about and talk to people in digital humanities one minute, then dentistry the next. The work culture is somewhat more relaxed than in industry or the freelance world, but the work is perhaps even more challenging. For instance, I had no idea about Fortran before I came here, nor did I really understand biology or fluid dynamics, but it's great to be introduced to new problems where computer programming can help.