Context-Aware Optimization and Run-Time Adaptation of Sequential Libraries for Multi-Core Systems


Context-aware optimization and run-time adaptation of sequential libraries for multi-core systems

DESCRIPTION:

As multi-core systems have become mainstream, system and software developers face a challenge of efficiently parallelizing existing sequential programs. Many programs use specialized libraries such as ATLAS, FFTW, SPIRAL, Intel Math Kernel Library, AMD Core Math Library and others, which are carefully optimized to achieve high performance on a target system. In addition, some of these libraries include multiple versions of functions specialized for different input data and switch at run-time between them depending on input features (typically only on the size of input data). These optimization and adaption techniques, however, largely ignore possible system and program behaviour at invocation time, which is particularly important on multi-core systems where multiple threads compete for shared resources.

Here we propose to evaluate iterative compilation of sequential libraries with multiple datasets under realistic system conditions. Based on this evaluation and on our previous research on program multi-versioning and run-time adaptation, we aim to develop new techniques for run-time predictive adaptation, which will allow selecting appropriate library versions depending on the `context': system and program behaviour, as well as dynamic input features.

THE GOALS OF THE CLUSTER:

This cluster aims to answer the following questions:

  • How to define, characterize and cluster different contexts on multi-core systems (e.g. by using hardware counters or detecting program phases)?
  • How to modify current iterative compilation environments to systematically explore library optimizations for different contexts?
  • How to decide which library functions to make versions of and in which way, to cover multiple context clusters?
  • Which context features are important for effectively predicting which function version to use at run-time with low-overhead?

CURRENT PARTICIPANTS:

Non-HiPEAC members interested in this cluster:

  • Sebastian Pop, AMD, USA
  • Antoniu Pop, France

This cluster welcomes other members interested in the above topic.