Maestro Project: an introduction

Objective

Maestro will build a data and memory-aware middleware framework that addresses the ubiquitous problems of data movement in complex memory hierarchies that exist at multiple levels of the HPC software stack.Though High Performance Computing (HPC) and High Performance Data Analytics (HPDA) applications pose a broad variety of efficiency challenges, the performance of both has become dominated by data movement through the memory and storage systems, rather than the floating point computational capability. Despite this shift, current software technologies remain severely limited in their ability to optimise data movement. MAESTRO, the ‘Middleware for memory and data-awareness in workflows’ project, will address the two following major impediments of the modern HPC software:

DATA AWARENESS:Moving data through memory has not always been a performance bottleneck. The software stack that HPC relies upon was built during the decades where the cost of performing floating point operations (FLOPS) was paramount. This has resulted in a software stack and set of programming models that are optimised for floating point operations but lacking in basic data handling functionality. We characterise the set of technical issues as ‘missing data-awareness’.

MEMORY AWARENESS: Software rightfully insulates users from hardware details, particularly as we move up the software stack. But HPC applications, programming environments and system software cannot make key data movement decisions without some understanding of the hardware, particularly of the increasingly complex memory hierarchy. With the exception of runtimes, which treat memory in a domain-specific manner, software typically makes hardware-neutral decisions which can often result in poor performance We characterise this issue as ‘missing memory-awareness’.

Maestro will build a middleware framework that enables memory- and data-awareness to improve the performance of high performance codes.