Workload Profiling and Modeling

The main question this project aims to answer is: “given a workload or set of workloads and a machine, how can the hardware utilization be brought to as close to 100% as possible without impacting performance of the workload(s)?” In order to accomplish this, our team has been working on performance metrics to serve as a proxy for utilization. We separate the performance of the CPU, memory, and disk and create metrics for each that can be both monitored during runtime as well as collected in an aggregate fashion to represent performance for each component of the machine. Using the perf tool for Linux, we periodically dump statistics such as instructions executed and cache misses per unit time at each level of on-chip SRAM. Once workload performance models are in place, they can be combined with hardware models to optimize the workload mix for a machine while simultaneously being able to meet the real-time deadlines of workloads.