Dr Ian Bush, EPSRC Research Software Engineer Fellow, talks about developing new code for X-rays, hydrogen fusion power - and winning at chess
When did you start at the Centre and what was your first role here?
I started in April 2016 as an EPSRC Research Software Engineer Fellow (The Engineering and Physical Sciences Research Council, the UK's main agency for funding research in engineering and the physical sciences), although I had previously worked within the ARC (Advanced Research Computing) Facility which helps researchers access advanced research computing facilities, locally, nationally and internationally. As an EPSRC Fellow, I am exploiting high end computational facilities to enable accurate modelling of a number of scientific processes, from the microscopic (such as how X-rays interact with in vivo proteins) to the macroscopic (for example the ITER project, a 10 billion Euro fusion power facility in France).
What is your background?
Ultimately I'm a chemist/condensed matter physicist, my degree is in the former and my doctorate is more toward the latter, but really the division is artificial. During my doctorate I had to do some coding to solve various models, and as time went by I got more interested in methods for solving the problem rather than the solution of the problem itself; in the end I was investigating and implementing totally different algorithms from that originally proposed for my project. From there I worked supporting and developing parallel computing for what is now the Science and Technologies Facilities Council Daresbury Laboratory, which carries out world leading research in areas such as accelerator science, bio-medicine, physics, chemistry, materials, engineering and computational science. Hence my interest in parallel computing, and since then I have been working on the development, optimisation and support of a number of packages in the materials science/chemistry area.
If asked for my niche, it would be that I couple good parallel programming skills with a good understanding of the scientific areas in which I specialise.
Summarise the research you are doing / your research interests in a few sentences.
The funding provided by EPSRC covers my post and a post-doc over a 5 year period. The theme running through the proposal is to push the scalability of software on the very highest end hardware, and so is very much based in high performance computing (HPC) and the exploitation of 10's and 100's of thousands of cores for the solution of scientific problems.
We will be developing a small set of codes to better utilise HPC, both in terms of scalability and in terms of solving scientifically exciting problems. These are mostly based in my traditional area of material science ( CRYSTAL , a computational tool for solid state chemistry and physics, the CRYSCOR program and DL_POLY , a general purpose molecular dynamics simulation package), but one is a new collaboration with the Culham Centre for Fusion Energy .
Why is this important to the world at large?
As one example take CRYSTAL. We are developing new code which will help us understand what is really happening when X-rays are used on materials - the X-rays will damage the material being studied as the measurements are being taken. It will also provide insights when other soft, organic systems, such as humans, are exposed to high energy electromagnetic radiation.
With the Culham Centre for Fusion Energy we are examining the possibility of using hydrogen fusion power as a cheap, plentiful supply of energy – in other words, cheaper electricity bills!
[No Lego was harmed in the making of this image]
What would you like to do next, funding permitting?
I hope to use the fellowship to raise the profile and recognition of the Research Software Engineers (RSEs) initially within Oxford, and in the longer term more widely. I feel passionately that there should be better respect and career progression possibilities for the people who provide the irreplaceable technical enabling of fundamental scientific research, much of which is just not possible without RSEs.
Are you involved in any wider collaborations? Why are these important?
Many. Some of these have been hinted at above, for the programming side of my fellowship I will work with the University of Turin, the Rutherford Appleton Laboratory (RAL) and Imperial College London for CRYSTAL and CRYSCOR, Daresbury Laboratory (DL) for DL_POLY and the Culham Centre for Fusion Energy, RAL and the Numerical Algorithms Group (NAG) for GS/2, the fusion energy simulation code. And there other less formal associations, for instance with groups at York, Durham and Royal Holloway for work on another code (CASTEP, a leading code for calculating the properties of materials from first principles), and I hope to grow these collaborations during my time at the Centre.
However this is not all. Firstly not mentioned above is that part of my fellowship is to train young researchers in the programming and use of HPC, and this means I will be working with Centres for Doctoral training not only in Oxford, but also at Southampton and Bristol, and possibly London as well – and I very much want to grow this group, training is crucial for the exploitation of THE modern research tool, the computer, and for many researchers "just" being a scientist is not enough anymore.
And there's more! I am a member of the HPC Materials Chemistry Consortium , a body that both brings together scientists from all over the UK and streamlines their access to the UK national supercomputing resource ARCHER . I sit on the panel that helps organise the EPSRC HPC Short Courses Consortium, and help give training through that body at Warwick University. And through my fellowship, the Research Software Developers Network (RSDN) and the Software Sustainability Institute, I interact with other RSEs and RSE fellows at Oxford and other institutions to learn how they address the respect and progression points mentioned above, and to find out what hints they have for the hardest part of my job, instigating change ...
That's a lot! So why is it important? Well if you don't get out there and tell people about what you are doing it's not worth anything, and if you don't go and listen to them and found out their interests you won't find out what is worth doing in the first place! Despite the stereotype of the researcher, human interactions are fundamental to the progression of science and other academic disciplines, and it is through collaborations that you both learn about the wider world, and teach the wider world about yourself and the Centre you work in.
What publication /paper/achievement are you most proud of and why?
Difficult. I've done a number of things over the years so let me pick a few and give a sentence or two on each:
Proudest Achievement – has to be winning the Fellowship, though when at NAG organising the HPC training under the HECToR contract (ARCHER's predecessor) runs it close. 72 days per calendar year is a lot!
Individual paper: Well it's my DaFT paper! This was about a novel implementation of a parallel Fast Fourier Transform, and is fundamental to the current day scalability of DL_POLY. I.J. Bush, I.T. Todorov and W. Smith, Comp. Phys. Commun., 175, 323-329 (2006)
Research story: How through my work on CRYSTAL and in 2003 an initial demonstrator of its scalability via a calculation on the small protein Crambin eventually led to the first ab initio structural calculation of a protein: Piane et al., Chem. Sci., 2, 1496-1507 (2015)
Feedback from a student: "The lecturer was exceptional - the man is a computational wizard, able to speak with clarity, enthusiasm and absolute authority on the lecture material for the full 2 hour slot ... One of the most pleasant and informed lecturers I have ever had!"
Have you received any other awards or fellowships?
Save for a visiting lectureship at Southampton University not since my scholarship to Balliol College, Oxford as an undergraduate.
But I've won ~£300 at chess over the last 12 months!
What do you think the most important issues/challenges in your field will be in the next decade and how is the Centre placed to address them?
In HPC, enabling software to exploit the hardware is going to be an ongoing challenge, and this in itself raises multiple issues. The first is scalability. When I went to STFC Daresbury Laboratory the machine I had to work on had 64 cores. This was big in that day. Nowadays large machines have 100,000 cores or more, and this is only going to grow. Writing software to exploit such high degrees of parallelism is non-trivial, though this is actually a good thing as it keeps me in a job.
However it is not just scalability. HPC machines are not just getting larger, they are also steadily becoming more complex, and the move from a homogeneous to a heterogeneous environment encompassing accelerators such as GPUs is well established. This makes a tricky job harder, but again at least as far as the Centre is concerned it is not a bad thing. Rather, given the width of expertise we have in both traditional CPU based computing and in the use of accelerators, this is a huge opportunity for us – few other institutions can claim this.
Coupled with this increasing complexity is the training of young researchers to use such machines. And I don't just mean programmers, though the situation there is bad enough. The majority of users of HPC facilities are now people who run "black box" applications and would not know a line of code if they saw it. These people need training to exploit their increasingly complex "experimental facility", just as beam line users require it to get the best from a synchrotron such as Diamond, and without this training the potential for misuse and consequent waste of resources is frightening.
What do you think the Centre does best?
What does impress me is the breadth of research the Centre encompasses, this is truly impressive. This reveals interdisciplinary opportunities that would otherwise not be evident, and through the expertise within the Centre, makes such projects possible. So maybe in an increasingly inter-connected world what the Centre does best is connectivity!
See Ian Bush's slides on Modern Fortran in Research Software Engineering from a talk at the first Research Software Engineer Conference in September.