  Significant efforts have been devoted to choosing the best configuration of a
computing system to run an application energy efficiently. However, available
tuning approaches mainly focus on homogeneous systems and are inextensible for
heterogeneous systems which include several components (e.g., CPUs, GPUs) with
different architectures. This study proposes a holistic tuning approach called
REOH using probabilistic network to predict the most energy-efficient
configuration (i.e., which platform and its setting) of a heterogeneous system
for running a given application. Based on the computation and communication
patterns from Berkeley dwarfs, we conduct experiments to devise the training
set including 7074 data samples covering varying application patterns and
characteristics. Validating the REOH approach on heterogeneous systems
including CPUs and GPUs shows that the energy consumption by the REOH approach
is close to the optimal energy consumption by the Brute Force approach while
saving 17% of sampling runs compared to the previous (homogeneous) approach
using probabilistic network. Based on the REOH approach, we develop an
open-source energy-optimizing runtime framework for selecting an energy
efficient configuration of a heterogeneous system for a given application at
runtime.
