Abstract
In this paper, we present a novel approach towards providing compiler generated
runtime means for dynamic adaptation. The key novelty of the proposed solution
is a complete separation between the runtime adaptation mechanism itself and the
control mechanism of the adaptation. This strict separation has various
benefits including experimentation with adaptation control mechanisms without
modifying the runtime system itself, and opening up the possibility for control
mechanisms that control several applications possibly even across different
runtime systems.
The paper does not only present the basic principles of the approach taken, it
also describes our prototypical implementation in the context of the functional
array programming language \sac{}. The dynamic adaptation we are concerned with
in the context of this paper is an adaptation in the number of computing cores
utilised during parallel execution on multiple cores. We show how this
adaptation mechanism can be leveraged to deal with changes in the background
load generated from other applications running concurrently with the application
whose parallelism we want to control. As an added benefit, we also see that the
simple control mechanism we propose in the paper is suitable to release cores
during the execution of poorly scaling parts of the application even if no other
application is running concurrently.
runtime means for dynamic adaptation. The key novelty of the proposed solution
is a complete separation between the runtime adaptation mechanism itself and the
control mechanism of the adaptation. This strict separation has various
benefits including experimentation with adaptation control mechanisms without
modifying the runtime system itself, and opening up the possibility for control
mechanisms that control several applications possibly even across different
runtime systems.
The paper does not only present the basic principles of the approach taken, it
also describes our prototypical implementation in the context of the functional
array programming language \sac{}. The dynamic adaptation we are concerned with
in the context of this paper is an adaptation in the number of computing cores
utilised during parallel execution on multiple cores. We show how this
adaptation mechanism can be leveraged to deal with changes in the background
load generated from other applications running concurrently with the application
whose parallelism we want to control. As an added benefit, we also see that the
simple control mechanism we propose in the paper is suitable to release cores
during the execution of poorly scaling parts of the application even if no other
application is running concurrently.
Original language | English |
---|---|
Title of host publication | Proceedings of the 27th Symposium on the Implementation and Application of Functional Programming Languages |
DOIs | |
Publication status | Published - 2015 |
Event | 27th Symposium on the Implementation and Application of Functional Programming Languages - Koblenz, Germany Duration: 14 Sept 2015 → 16 Sept 2015 |
Conference
Conference | 27th Symposium on the Implementation and Application of Functional Programming Languages |
---|---|
Abbreviated title | IFL 2015 |
Country/Territory | Germany |
City | Koblenz |
Period | 14/09/15 → 16/09/15 |