(WHPC04) Research Software Engineering enabling HPC
Women in HPC Poster
Performance Analysis and Optimization
Scientific Software Development
TimeTuesday, June 18th12:30pm - 5pm CEST
DescriptionIn a 2017 survey of UK-based researchers by the Software Sustainability Institute, 70% of respondents said that it would not be practical to conduct their work without research software and 56% said they developed their own software. However, modern HPC systems are often heterogeneous and massively parallel, leading to highly complex codes. In addition, specialised expertise in profiling and optimisation for a particular target architecture is often required to get close to the peak theoretical performance. Researchers are not guaranteed to have received software development or HPC training, and don't necessarily have time to spend on software maintenance.
The Research Software Engineering role combines training in software development with experience working in close collaboration with researchers. By having the creation of good software as their primary goal, RSEs in HPC are able to contribute lasting code that is fast, maintainable, well tested and easy to use.
We present two examples of RSE work enabling HPC. QuEST is a library for classical simulation of quantum circuits, a prime target for HPC due to memory requirements scaling exponentially with system size. A fundamental design requirement was abstracting the complexity of HPC from the users; QuEST gives access to single CPU, multi-CPU and GPU parallelism through the same API. GS2 a simulator of turbulence in plasma physics, parallelised to run on O(10k) CPU cores. Profiling at scale was used to visualise the complex communication patterns inherent in the algorithm, informing the choice of optimal data distribution strategy.