  This work proposes a methodology to find performance and energy trade-offs
for parallel applications running on Heterogeneous Multi-Processing systems
with a single instruction-set architecture. These offer flexibility in the form
of different core types and voltage and frequency pairings, defining a vast
design space to explore. Therefore, for a given application, choosing a
configuration that optimizes the performance and energy consumption is not
straightforward. Our method proposes novel analytical models for performance
and power consumption whose parameters can be fitted using only a few
strategically sampled offline measurements. These models are then used to
estimate an application's performance and energy consumption for the whole
configuration space. In turn, these offline predictions define the choice of
estimated Pareto-optimal configurations of the model, which are used to inform
the selection of the configuration that the application should be executed on.
The methodology was validated on an ODROID-XU3 board for eight programs from
the PARSEC Benchmark, Phoronix Test Suite and Rodinia applications. The
generated Pareto-optimal configuration space represented a 99% reduction of the
universe of all available configurations. Energy savings of up to 59.77%,
61.38% and 17.7% were observed when compared to the performance, ondemand and
powersave Linux governors, respectively, with higher or similar performance.
