heal.abstract |
Cloud computing has become an increasingly popular way for businesses to scale up
their computing resources without having to make large upfront investments in hardware
and infrastructure. The increasing availability of high-speed internet and the need for
companies to scale their computing resources quickly and efficiently, are some of the
main reasons that explain the rise of cloud computing. Heterogeneous cloud centers are
gaining popularity among organizations that seek to optimize their computing resources
and achieve greater agility, scalability, and cost savings. With this rise comes the need
for cloud providers to manage an increasing workload, targeting different platforms (e.g
CPU, GPU). Cloud providers need to distribute applications on the various platforms
readily available in a way that both execution time and energy consumption are optimized
providing better overall performance and customer service with heterogeneity in mind.
In this direction, we develop a methodology in order to examine the behavior of different
applications, of different sizes on different servers with the use of different number of
threads on both CPU and GPU. To evaluate our methodology we use Rodinia benchmark
suite, that consists of applications targeting multicore CPUs and GPUs, using OpenMP
and CUDA respectively. We compare the experimental results referring to execution
time, energy consumption and low-level metrics. We then develop ML models, targeting
different platforms, that predict these metrics (execution time, energy consumption and
low-level metrics) for different running environments. Using the XGB algorithm, our
models achieve r2 scores of 0.99 in cpu, 0.98 in gpu and 0.99 in cpu to gpu platform,
while they perform poorly when it comes to unseen application and datasizes but very
satisfactory for unseen servers and number of threads. |
en |