  Performance and energy are the two most important objectives for optimisation
on modern parallel platforms. Latest research demonstrated the importance of
workload distribution as a decision variable in the bi-objective optimisation
for performance and energy on homogeneous multicore clusters. We show in this
work that bi-objective optimisation for performance and energy on heterogeneous
processors results in a large number of Pareto-optimal optimal solutions
(workload distributions) even in the simple case of linear performance and
energy profiles. We then study performance and energy profiles of real-life
data-parallel applications and find that their shapes are non-linear, complex
and non-smooth. We, therefore, propose an efficient and exact global
optimisation algorithm, which takes as an input most general discrete
performance and dynamic energy profiles of the heterogeneous processors and
solves the bi-objective optimisation problem. The algorithm is also used as a
building block to solve the bi-objective optimisation problem for performance
and total energy. We also propose a novel methodology to build discrete dynamic
energy profiles of individual computing devices, which are input to the
algorithm. The methodology is based purely on system-level measurements and
addresses the fundamental challenge of accurate component-level energy
modelling of a hybrid data-parallel application running on a heterogeneous
platform integrating CPUs and accelerators. We experimentally validate the
proposed method using two data-parallel applications, matrix multiplication and
2D fast Fourier transform (2D-FFT).
