Master project: Automated autotuning for energy efficiency for the SKA

Chris Broekema, ASTRON and University of Cambridge

1 Introduction

When co-designing hardware and software we rely on benchmarked codes to estimate the performance of particular hardware implementations for certain algorithms. These benchmarks are generally compiled using default settings. To ensure we can easily and conveniently benchmark codes of interest on a large set of platforms, with minimal setup required, a benchmarking framework based on the existing software tools Spack and ReFrame has been developed for the Square Kilometre Array (SKA).

With autotuning in this context, we mean the practice of randomizing compiler  flags and algorithm parameters to find the most optimal settings for the code under investigation. This often leads to unexpected combinations of flags and parameters, and performance improvements may be dramatic. Much of the work done for autotuning is still highly labour intensive, requiring manual intervention. The above mentioned combination of software tools could be a useful addition to this work, allowing the automation of much of the process. The figure of merit generally used for deciding the most optimal settings in autotuning is absolute performance. However, considering the current climate crisis and taking into account that the highest absolute performance of a system is generally not the most energy efficient way to run such a system, changing this to an energy aware metric would be very valuable, especially for an exascale project like the SKA. In this project we combine the three subjects above into a single coherent investigation.

2 Automated autotuning for energy efficiency

This project extends an existing benchmarking framework designed for the SKA SDP with two additional features (one of which is already at least partly implemented). By adding (more) energy measurement facilities we gain the ability to select energy efficiency as the primary figure of merit for our systems. Adding the ability to autotune benchmarks in an automated way gives us the confidence that all measured results utilize the tested resources in the best possible way, without resorting to platform dependent optimizations. Finally, by combining the energy efficiency figure of merit with automatic autotuning allows us to automatically optimize software and hardware to be as energy efficient as possible.

1. literature study on autotuning tools and best practice

2. identify and commission testbed (this could be a laptop or desktop, but ideally we’d suggest a dedicated server of some sort)

3. install and explore the existing SKA SDP benchmarking framework

4. add energy measurement facility as a gure of merit, either

• using sensors in the node using tools like Intel RAPL, GEOPM or others), or

• using external sensors such as those in Power Distribution Units (PDUs)

5. add a looping benchmark with randomized compile time  tags to the system (use literature study results for this)

6. experiment, measure and report 

7. generate merge request for upstream and write thesis