What was the topic of your project?
I worked with the UK Met Office to decrease the time to solution for their Numerical Atmospheric Modelling Environment (NAME III) code. NAME III was originally developed to predict the path of atmospheric nuclear material following the accident at Chernobyl. In its current form it is a sophisticated modelling system used for predicting the paths of chemical spills to volcanic ash clouds such as the Eyjafjallajökull eruption which caused air travel chaos in 2010.
Which external company/organisation did you work with?
The Met Office supplied the NAME III code and I was assigned a Met Office supervisor who was always on hand to help explain any sections of the code and help locate areas suitable for speeding up using parallel processing. This enabled me to have a good understanding of the project at an early stage so that I was able to contribute real results.
How successful was the project?
I accelerated key parts of the code by rewriting them to use General Purpose Graphics Processing Unit (GP-GPU) accelerators. I was able to show that a speedup of around 50-100x may be possible with extensive re-writing of the NAME III code. However, because of commercial considerations I also found that using a more traditional parallel processing approach, OpenMP, a speed up of around 7x could also be achieved with far less extensive code rewriting.
What was the most challenging part of the project?
Working with such a large legacy code was particularly challenging, but this was aided by the excellent support from the Met Office. It was also very challenging using the CUDA- Fortran compiler from PGI, as this was a very new development; however, due to the excellent reputation of the EPCC I was able to obtain support from PGI directly.
What was the most interesting part of the project?
The most interesting part of the project was seeing how the Met Office had mapped a physical problem of Legrangian particle motion into software, and then facing the challenge of mapping this back into the physical constraints associated with GP-GPU programming. It was very interesting to appreciate how many everyday problems are inherently massively parallel and are well suited to exploit the parallel nature of GP-GPU accelerators.
How did undertaking this project with an external company/organisation benefit you?
Working with the Met Office helped me in numerous ways: With regard to the project, it not only enabled me to do work which could easily be of commercial value, but helped me understand that although there may be exciting and potentially beneficial ways to solve a problem, business constraints, such as the investment in time to recode a whole system, or the availability of open source compilers can often mean that a technically less desirable solution may be preferred. And with regard to my career having finished my Masters, the prestige of having worked with the Met Office has given me a great boost when talking with employers and colleagues.