Abstract:
HPC services provide users with a variety of configurations. Differences between
these configurations usually depend on the amount of memory and cores or the type
of hardware that is provided to the user. It is up to the HPC user to decide what
configuration to choose before running their application. This creates a problem
especially when users have little knowledge of their applications’ needs or limited
information about how their application would perform on different configurations.
To address this issue, we propose a tool that predicts the performance of HPC applications on a variety of resource configurations. Our tool profiles a given application
on a select number of configurations and uses the profiling information to predict the
performance of the application for other configurations. Moreover, our tool accounts
for the effect of interference from other instances/applications on the performance
of the application in question. In this work, we focus on HPC applications and
use containers for configuring resource utilization, however, our methods may be
generalized to other contexts. We aim to show that the performance of HPC applications
across various resource configurations in the presence of interference can be
predicted with reasonable accuracy.