Posted: 22 Aug 2016 | 11:28
This guest post by Simon Hettrick, Deputy Director of the Software Sustainability Institute, explains how the role of research software engineer has gained greater definition and recognition.
On a beautifully sunny day in March 2012, a small group met at Queen’s College Oxford and challenged a long-standing problem: why is there no career for software developers in academia? They didn’t know it at the time, but this meeting led to a nationwide campaign that created a vibrant and rapidly growing community, and established a new role in research: the Research Software Engineer.
Posted: 18 Aug 2016 | 14:51
Summer of HPC visitor Tomislav Subic gives a summary of his project at EPCC: a visualisation of the UK Met Office's weather model.
A legend says that there was once a warm sunny day in Scotland. I have started my quest to find out if the myth was true, but I was not the only one.
Posted: 18 Jul 2016 | 12:20
Over the last 10 years, the growth in performance of HPC systems has come largely from increasing core counts, which poses a question of application developers and users – how to best make use of the parallelism on offer?
Posted: 21 Jun 2016 | 07:59
Choice, choice, choice
I'm often asked "What programming language should I learn for scientific computing?". Or I get involved in religious-like discussions about the best programming language for a particular task, or of all time (think Python vs Fortran, Go vs C, etc...). What's my answer?
Just recently I realised that, to me, programming languages are like musical instruments.
Posted: 23 May 2016 | 14:43
Last week I attended an ExTASY tutorial here in Edinburgh. The project aims to build a set of Extensible Tools for Advanced Sampling and Analysis (hence the name) to allow chemists who use computational methods and off-the-shelf molecular dynamics (MD) packages (such as GROMACS, AMBER and NAMD) to be cleverer and more efficient with their simulations.
The Extasy-based tools are well worth considering if you are doing MD calculations. If you want to be smarter about how you do your simulations, take a look at ExTASY.
Posted: 10 May 2016 | 00:07
Useful software design
Prompted by a recent discussion of a blog post discussing applying commercial development techniques to academic software development, I've been trying to formalise the software design process I'd recommend to academic software developers.
Just the term, software design, puts a lot of people off. It sounds like a long, elaborate process, full of requirements capture and storyboards, but it really doesn't have to be. I think anyone who is writing programs will be doing some form of software design, even if that design is just following the process they've always used, but are just not formalising it. However, formalising your software design could bring important benefits.
Posted: 5 May 2016 | 16:43
Recently I seem to have had many conversations about programming languages for HPC. In some ways this is not a new subject - I have been having similar conversations for the last 20 years. However as HPC hardware evolves, machines become more complex and the issues that need to be addressed by programmers also become more complex. So it is not surprising that we are wondering if there is more the compiler could be doing to help us.
Posted: 5 May 2016 | 15:51
We will be one of the participating sites at this year's Mozilla Science Lab Global Sprint here in Edinburgh.
The event will take place from 2nd-3rd of June, and will bring together researchers, developers, librarians and the general public from all over the world to hack on open science and open data projects.
Posted: 14 Apr 2016 | 21:02
Writing programs assuming that they will be incorrect
I was thinking about development methodologies and software design principles recently and have decided that one of the things I've learned is that it is essential to write programs with the assumption they are going to fail.
I don't think that any of us like to think that the programs we write or maintain will go wrong, or have mistakes/problems in them. However, as I've discussed previously, it is very hard to develop code without making mistakes: coding mistakes, algorithmic errors, mistaken assumptions, etc...
Posted: 7 Apr 2016 | 16:36
I have become a bit of a fan of the distributed revision control provided by git. In my day-to-day work at EPCC, I find myself developing and running code across multiple machines. Trying to keep a code base coherent across all these systems would be a bit of a nightmare were it not for git or any other source control revision system. Arguably, SVN would work as well but I somewhat lost my faith in SVN after trying to commit files over a slow and unstable connection while travelling on a train.