Do you have a zest for problem solving and a passion for science? David Robson finds out why work as a high-performance computing consultant may be the ideal job for you
Upon finishing a PhD, many dedicated scientists are faced with the tough decision of where to take their careers next. Do they face the tough academic road, hunting for grants and temporary postdoctoral research positions until eventually they attain a permanent fellowship at an esteemed institution; or do they leave the world of academic science for a more stable position elsewhere?
Fiona Reid believes that working in HPC is a good alternative to a career in academic science: ‘It allows me to do all the fun stuff in academia, while largely avoiding the administrative aspects.’
When Fiona Reid, a former geophysicist and now an applications consultant at EPCC (Edinburgh Parallel Computing Centre) in Scotland, faced this decision, she chose the middle road of working in high-performance computing – a career path that allowed her to play an important part in the latest cuttingedge scientific research, while maintaining the stability of a steady job with a good career path.
Reid’s job now involves working with research groups – in disciplines ranging from oceanography to oncology – whose work involves the manipulation of data sets that would simply be too difficult to process on a normal computer. Having chosen to use the many cores available on the clusters at EPCC’s/University of Edinburgh’s own supercomputers, or the UK’s national supercomputers HECToR and HPCx, the researchers may not have the programming expertise to adapt their code to run many smaller jobs on each core, so they collaborate with consultants like Reid who can help to rewrite the code to suit the architecture. Often the projects simply wouldn’t be possible without the input of consultants like Reid, and their value does not go unnoticed. She was recently credited as an author of a paper in Nature Genetics for her role in setting up an oncology project on a supercomputing architecture, and it is not uncommon for other consultants to receive similar recognition for their contribution to projects.
The decision to move into highperformance computing made sense for a number of reasons. ‘High performance computing is a good area to go into,’ she says. ‘I can use the skills I learnt as a researcher, while extending my knowledge of computing, and I still maintain contact with the scientific community without needing to continually chase after grants all the time.’
Reid had already grappled with advanced computing techniques while completing her different degrees. A geophysicist, she gained a BSc (Hons) from the University of Edinburgh before undertaking a DPhil in global seismology at Oxford University, which she completed in 1999. On completing this, she took up post-doc positions at both Oxford University and the Institute of Petroleum Engineering at Heriot-Watt University in Edinburgh.
Throughout this research, Reid learnt a proficiency in programming in both C and Fortran, often for difficult computational tasks. ‘I’d always done a lot of coding in my research. At this stage I didn’t use parallel computing, but I did need to manipulate large data sets, which got me thinking about how the data could be split up to overcome memory limitations,’ she said.
Reid joined the EPCC in 2004. ‘From a personal perspective, it gave me a new challenge – the opportunity to learn new things with new problems to solve.’ To learn how to adapt computer programs to run on parallel architectures, Reid attended many of the lecture courses on EPCC’s MSc in High Performance Computing.
In addition to Fortran and C, it is also useful to have good knowledge of OpenMP, which is used to parallelise a code. Consultants also need to learn new tricks all the time to overcome the barriers that prevent the programs from benefiting from highperformance computing.
Typically, the difficulty lies in finding ways of splitting up the problem into a number of smaller jobs without damaging the overall integrity of the problem. Typically, the calculations on one processor may feed from the results from another processor, and Reid needs to find ways to coordinate the activity on the different processors so that the computations run in a sensible order, and bottlenecks don’t build up.
A recent project run-through on the HPCx supercomputer, administrated by UoE HPCX, produced detailed simulations of the development of tidal surges following big storms. The researchers wanted the simulations to cover three lots of 30 years of activity. Reid found that the results of the simulation did not depend on its past activity after two years, so it was possible to split up each 30-year simulation into 15 blocks, each of which could run on a separate, independent, block of processors. This allowed many more processors (in excess of 1,000 compared with 62) to run at the same time, which significantly decreased the time taken to solve the problem.
‘Instead of taking one to one and a half years to run, it took about a month or so,’ she said. Often, these special tricks can vary from one discipline to another. ‘What works in one scientific area may not work well in another,’ says Reid. Before the programming begins, the consultants have lengthy discussions with the research group to try to decide exactly what is required for the project. For this, the consultants need to be able to converse in another scientific discipline that may be a far cry from their original academic background. ‘You need good communication skills,’ explains Reid. ‘The research group needs to understand how high-performance computing works – sometimes they’re not aware how long it might take to create a parallel version of the code – and you need to understand their science to be able to advise them. But once you start to understand one another, you can talk on a level field, and you’ve helped them to do something that they couldn’t manage beforehand.’
According to Jon Hill, another consultant from EPCC, the familiarity with highperformance computing does vary from discipline to discipline, but ultimately it’s becoming more popular all the time. ‘The chemistry department [at Edinburgh University] recent bought a new cluster, whereas three years ago few would have considered using high-performance computing for computational chemistry.’
Jon Hill’s work as an applications consultant for EPCC in Edinburgh involves both teaching and programming high-level code.
Hill says that a zest for problem solving is essential for the job. ‘You need the mindset to explore different avenues and options,’ he says. ‘You need a scary single-minded determination to get something working. Occasionally you can spend months at a time trying to get a solution to work. You also need the ability to visualise all the different jobs working in parallel with each other. It can be frustrating – there can be days or even weeks of banging your head against a wall – but when you do get it right it’s very rewarding.’
An HPC consultant also needs to be quick to learn, to keep up with the ever-changing landscape of high-performance computing. ‘You need a willingness to learn new things,’ says Hill, and Reid agrees: ‘You have to be able to learn very quickly, because the HPC world changes so quickly. We’ve gone from singlecore to dual-core to quad-core, and it’s going to go beyond this. There are always new things to learn in order to get the best out of the chips.’
Reid works with a number of different supercomputers – HECToR, HPCx, the EPCC/University of Edinburgh systems, Blue Gene, Ness and other computers across the country, and each of these have different requirements to which she needs to adapt. In addition, the different disciplines each have their own computer codes that she may need to learn for the different projects.
‘A lot of the scientific codes have been parallelised for years, but when we work with a research group new to high-performance computing, we need to work out how the code can be parallelised,’ she says.
Like many academic positions, a job as a consultant includes teaching as well as research. Reid teaches courses for EPCC’s Masters degree in high-performance computing, and Jon Hill has recently been organising some aspects of the Edikt2 project, which aims to promote the use of highperformance computing to Scottish researchers. This includes the organisation of symposia and workshops to teach scientists about the benefits of HPC and the steps they need to follow to take advantage of it.
Ultimately, it leads to a varied and often unpredictable job: ‘I sometimes don’t know what I’m going to do until I come in in the morning,’ says Reid. But the intellectual pleasure of solving cutting-edge scientific problems using cutting-edge technology more than makes up for this. ‘It allows me to do all the fun stuff in academia, while largely avoiding the administrative aspects,’ says Reid.