Optimising HPC applications for the Arm ecosystem
Project Title: Optimising HPC applications for the Arm ecosystem
Primary Supervisor: Dr Michèle Weiland
Additional Supervisor(s): Dr Oliver Perks (Arm/EPCC visiting researcher)
In the past couple of years, Arm processors have been shown to be a viable alternative to Intel or AMD CPUs for HPC systems. 2018 and 2019 saw the installation of a number of Arm-based supercomputer in the US and Europe. HPC-grade Arm CPUs are being produced by a range of processor manufacturers, such as Huawei, Marvell, Ampere or Fujitsu, to name a few. Japan’s flagship supercomputer Fugaku, which is currently being installed, is based on Fujitsu’s A64FX Arm CPU.
With Arm CPUs becoming more popular, the surrounding software ecosystem must support the often complex (performance) demands of HPC applications. This ranges from vectorisation and memory management to optimised scientific libraries and programming models. This PhD project will investigate the performance of commonly used scientific applications (both HPC and Machine Learning/AI) in depth, focussing in particular (though not exclusively) on taking advantage of Arm’s Scalable Vector Extension (SVE) and novel instructions for performance. In addition, investigations of the impact of GPUs on Arm and High-Bandwidth Memory are within the scope of this project.
The student will have access to EPCC’s 4096-core Catalyst UK system, Fulhame (based on the Marvell ThunderX2 64-bit Armv8 processor), from the start. Access to other Arm-based system and future-generation architectures will become available during the course of the PhD.
Minimum: A UK 2:1 honours degree, or its international equivalent, in a relevant subject such as computer science and informatics, physics, mathematics, or engineering. You must be a competent programmer in at least one of C, C++, or Fortran.
Student Recommended/Desirable Skills and Experience
The following skills are a bonus, but they are not essential for a student to be considered eligible:
- Understanding of HPC programming concepts;
- Experience of using HPC systems;
- Application benchmarking and optimisation.