Combining Machine Learning and Control to Manage Computing System Complexity and Dynamics (2018)

This paper shows how to use adaptive AI to maintain an accuracy constraint in scientific simulations.

In this case, the science simulation can dynamically report
its accuracy.

We use a control system to determine when to use computationally expensive (but accurate) physics codes and when to use computationally inexpensive (but less accurate) AI surrogates (of the physics codes).

The control system uses AI to achieve large reductions in simulation time when the science result will not be adversely affected, and it uses the physics code when it determines AI would add too much error to the simulation.

This may be one of the first examples of controlling the accuracy of AI inference, which is only enabled by the application of self-aware computing to AI-based systems. See also CALOREE: Learning Control for Predictable Latency and Low Energy

Read abstract

As power and energy become first-order concerns for computing systems, software developers are increasingly tasked with meeting multiple, often conflicting goals, such as creating responsive mobile applications while maximizing battery life. Addressing this challenge involves navigating two major issues: complexity and dynamics.

Complexity arises as modern computer architectures expose more resources to software for management. For example, Samsung’s Galaxy S9+ smartphone introduced an upgraded multicore CPU featuring the first “very large core” in a smartphone. However, a tech reporter observed significantly worse performance and battery life compared to expectations because resource management heuristics that worked well for the Galaxy S9 performed poorly on the S9+. This example highlights how increasing hardware complexity complicates software resource management: a heuristic effective for one system may fail on another.

Dynamics result from fluctuating workloads and varying resource availability. Even if developers identify a resource configuration that works well in one scenario, it may fail to meet goals as the environment changes. Consider a video encoder: during low-motion scenes, performance requirements (e.g., keeping up with the camera) can be met with minimal resource usage. However, in high-motion scenes, the encoder demands additional resources to maintain video quality. Allocating resources for low-motion scenarios compromises quality during high-motion, while allocating for high-motion wastes energy during simpler scenes, shortening battery life.

These challenges underscore the need for dynamic and adaptive resource management strategies that can handle the complexity and variability of modern computing environments.