  Modern computer systems need to execute under strict safety constraints
(e.g., a power limit), but doing so often conflicts with their ability to
deliver high performance (i.e. minimal latency). Prior work uses machine
learning to automatically tune hardware resources such that the system
execution meets safety constraints optimally. Such solutions monitor past
system executions to learn the system's behavior under different hardware
resource allocations before dynamically tuning resources to optimize the
application execution. However, system behavior can change significantly
between different applications and even different inputs of the same
applications. Hence, the models learned using data collected a priori are often
suboptimal and violate safety constraints when used with new applications and
inputs. To address this limitation, we introduce the concept of an execution
space, which is the cross product of hardware resources, input features, and
applications. To dynamically and safely allocate hardware resources from the
execution space, we present SCOPE, a resource manager that leverages a novel
safe exploration framework. We evaluate SCOPE's ability to deliver improved
latency while minimizing power constraint violations by dynamically configuring
hardware while running a variety of Apache Spark applications. Compared to
prior approaches that minimize power constraint violations, SCOPE consumes
comparable power while improving latency by up to 9.5X. Compared to prior
approaches that minimize latency, SCOPE achieves similar latency but reduces
power constraint violation rates by up to 45.88X, achieving almost zero safety
constraint violations across all applications.
