During the summer semester 2018 I attended a seminar course called Future Trends in High-Performance Computing (FT-HPC). During the semester I was assigned the task of researching the literature about the topic of resource awareness and producing a survey paper and a presentation.
I chose to focus on a rising star among runtime systems for HPC, HPX, trying to understand to what degree and how it can support resource awareness, reporting on its strengths and limitations.
I put quite some time and effort in researching this topic and I found it very interesting, so I want to share both the survey paper and the slides I prepared for my presentation.
I also believe this kind of material should always be posted for everyone’s benefit, instead of remaining buried deep in my directory tree.
Enjoy! :)
Abstract
Resource awareness is the ability of a program to dynamically read the state of the resources it consumes and to adapt its execution accordingly. This awareness can be exploited to achieve a more efficient resource usage, reduce overheads, improve performance and optimize energy consumption. As HPC systems grow in size and complexity, resource awareness can also offer a way to reduce the effort required for tuning and portability.
As applications use runtime systems for parallelization, there is the need for runtime systems to support and expose resource awareness in an efficient and integrated way.HPX is a modern C++ runtime system for high-performance task-based parallelization which is, to some degree, resource aware and adaptive by design. It supports load-aware task scheduling and a powerful performance monitoring framework which can be used for runtime introspection and for building dynamic resource management heuristics. Recent research efforts also show how HPX can support dynamic task grain size control and how HPX parallel algorithms can be dynamically tuned by using a mix of compile-time and runtime information for better performance.
This work is a survey of existing literature providing an introduction to resource awareness and to HPX architecture and main features, providing also a perspective on how and to what degree HPX can support resource awareness and to its limitations.
Resources
Here you can download the literature survey and slides.