Up to my armpits in code!
EducationEdinburgh University (2001-2005, 2012-present); Selkirk High School (1995-2001); Knowepark Primary School (1988-1995)
QualificationsCurrently studying part-time for a PhD in Condensed Matter Physics; BSc (Hons) 1st class Computer Science & Physics; CSYS Mathematics; Advanced Higher Computing Studies & Physics; 6 Highers
Work HistoryApplications Consultant, EPCC (2008-2012); Software Engineer, IBM UK (2005-2008)
Current JobProject Manager – managing software development and collaborative research projects involving High Performance Computing
EPCC (Edinburgh Parallel Computing Centre), The University of Edinburgh
Favourite thing to do in my job: Stepping out of my comfort zone, learning about a new area of science, then giving a boost to the research area by using High Performance Computing.
My Work: My code runs on some of the world’s largest Supercomputers, simulating how the world works!
I’m a project manager at EPCC, The Edinburgh Parallel Computing Centre – which means I write code than runs on Supercomputers, used for anything from simulating how atoms and molecules interact, how your genome is put together, to how the universe came to be the way it is today!
Supercomputers are the most powerful computing machines in the world. We host and manage ARCHER, the UK’s national supercomputer (currently 25th in the world), which has over 118,000 computer cores, just like the dual or quad-cores in modern PCs, laptops and phones, except that they are all connected together so they can solve really big, complex problems very quickly. The programming tools, computer hardware and algorithms (that’s a fancy word for a precise description of the tasks a computer will perform) we use all fall under the umbrella of High Performance Computing. But Parallel computing is not just for scientists and engineers. Even modern graphics processors (GPUs) have 100s or more computing cores in them, so parallel programming is going to be more and more important in future.
Most of my work is in collaboration with other researchers in different fields who need to use HPC. For example, Computational Biochemists and Materials Scientists want to understand how the stuff that is all around us works at an atomistic level so they can design new drugs, new materials for energy storage (batteries to you and me), better solar panels, and more… I also work with Engineers who use techniques like Fluid Dynamics to help design more efficient industrial processes, and Finite Element Analysis to understand how our bones grow and develop with age. So there’s never a dull moment!
I also work on a big volunteer computing project called PrimeGrid, which enables anyone with computer to sign up and contribute to solving some hard Mathematical problems. We also search for some very large Prime numbers – with millions of digits. It’s great fun, so if you want to find out more go to http://www.primegrid.com and join the 10,000s of people across the world who citizen cyber-scientists!
Another thing I like to do is going out and talking about HPC (and science in general) to anyone who will listen! You can often find me visiting local schools and science festivals, showing off some of the great science we can do with Supercomputers.
My Typical Day: Writing code, analysing performance, playing with parallel supercomputers and working with other scientists.
There’s three parts of software development that I usually get involved in:
Design – this involves spending time with other scientists, to understand what it is they are trying to do, and come up with a plan for how they can use HPC to help them get their research done.
Implementation and testing – writing parallel programs can be hard, and it takes a long time to write the code, and to prove that you’ve got it right. As much as possible I try to get involved with the coding, but more often I’m managing other software developers, reviewing and testing their code.
Performance analysis – to get parallel programs running on 100,000s of cores is not easy, so I spend quite a lot of time trying to understand what the problems are with existing pieces of code that stop them from scaling up to run on massively parallel machines. Finding and fixing performance ‘bottlenecks’ is a bit like being a code detective. First you need to measure performance and see if you can narrow down where the problem is, then use software tools to home in on the problematic code, and finally use some problem solving or intuition to come up with a solution that works better!
I split my time about 50% between project management – which involves meetings, progress reports, reviewing code and documents – and 50% development and research – writing scientific code, running calculations, and working together with other scientists.
Two days per week I work from home. On the days I’m in the office I typically arrive about 8am and leave shortly after 4pm in time to miss the rush-hour traffic and get home in time for dinner with the family. I like to go running at lunchtime – usually a 2 or 4 mile circuit around the University campus.
What I'd do with the prize money: Setting up a ‘Build-a-computer Scrapheap Challenge’ toolkit for schools to take home and try!
Computers today are getting more and more complex, and are so tightly packaged that it’s impossible to get inside them to see how they work. Just think of a laptop or phone – impossible to open up without special tools, and even harder to get back together. For the last few years I’ve been taking computer hardware with me when I visit schools, or at science fairs, and encouraging people to take them apart, explaining what all the bits do, and just letting them get hands-on without worrying about breaking something.
This summer I’m getting a set of 15 PCs which will be recycled from one of our computing lab, and I plan to use these as part of a ‘Scrapheap Challenge’ activity so school kids will be able to go in the space of an hour or so from a pile of parts, to getting a working computer and network them together into a little parallel computer cluster.
If I win the £500 prize, I want to take this further and produce info packs and support material that will enable teachers, school clubs and families to try this out for themselves. Everything will be made freely available on the web for you to download. The money will be spent on the graphic design and running a trial with a local school to make sure the activity works with a real class!
How would you describe yourself in 3 words?
Coder, Father, Scot (not always in that order!)
What or who inspired you to follow your career?
I used to read a lot of Sci-Fi, and my favourite author was Isaac Asimov. His ‘Foundation’ series is an excellent read and is an inspirational vision of the future.
Were you ever in trouble at school?
I was once given a detention at age 5 for telling my classmates that Santa Claus didn’t exist (sorry if I’ve just spoiled that for you!)
If you weren't doing this job, what would you choose instead?
Astronaut – that’s a easy one!
Who is your favourite singer or band?
Bon Jovi – can’t beat some good 80s rock.
What's your favourite food?
Pork pies and Irn-Bru
What is the most fun thing you've done?
I like to go whitewater kayaking, and I’ve had great fun travelling all over Scotland on some great rivers. My all-time favourite has to be the River Leny, near Callander.
If you had 3 wishes for yourself what would they be? - be honest!
Lose a few stones (or 15 kg if you prefer metric), take flying lessons, and move to live somewhere in the remote countryside.
Tell us a joke.
There are 10 kinds of people in the world, those who understand binary and those who don’t.