About the Project
The future of high-performance computing is heterogeneous, and with that heterogeneity comes increasingly complex decisions about where data should be located for optimal performance. The range of devices on which data might be hosted on a machine now includes GPUs, FPGAs, and non-volatile memory, as well as the main system DRAM. The detail of memory management on modern computers is hugely complex, with the application (or applications), the operating system, and hardware threading and caching policies all playing a role. That said, the constrained context of HPC, where we have knowledge of specific data access patterns and hardware, opens up the possibility of optimally locating data.
In practice however, the models required to support this decision-making do not yet exist. As part of EPiGRAM-HS (https://epigram-hs.eu/) EPCC has developed a framework, inspired by the LLVM compiler infrastructure, for modelling the cost of data accesses and intranode data movement. The framework aims to strike a balance between complexity and usefulness, and a large part of the project will be the development of new models for HPC applications in this framework. In addition, other related topics we would hope to investigate include extension of the model to include internode communication, and optimal loop tile size prediction using queuing theory.
Importantly, in this project we are interested in applying the model to optimisation of specific applications in domains such as computational fluid dynamics, and weather modelling. The project will include profiling of such applications both to evaluate the performance of, and to provide input data for the model. Access will be provided to HPC platforms such as ARCHER 2 and Cirrus, which includes GPU nodes, for these purposes.
This PhD opportunity is based within EPCC (https://www.epcc.ed.ac.uk), a Centre of Excellence within the College of Science and Engineering at the Unviersity of Edinburgh, and one of Europe’s leading supercomputing centres.
Minimum requirements
A UK 2:1 honours degree, or its international equivalent, in a relevant subject such as computer science and informatics, physics, mathematics, engineering, biology, chemistry and geosciences. You must be a competent programmer in at least one of C, C++, Python, Fortran, or Java and should be familiar with mathematical concepts such as algebra, linear algebra and probability and statistics.
Recommended and desirable skills and experience
• Detailed knowledge of computer hardware.
• Experience with quantitative modelling, e.g. queuing theory, Markov chains.
• Familiarity with numerical application data access patterns.