Building and using application utility models to dynamically choose thread counts
On todays multiprocessor systems, simultaneously executing multi-threaded applications contend for cache space and CPU time. This contention can be managed by changing application thread count. In this paper, we describe a technique to configure thread count using utility models. A utility model predicts application performance given its thread count and other workload thread counts. Built offline with linear regression, utility models are used online by a system policy to dynamically configure applications thread counts. We present a policy which uses the models to maximize throughput while maintaining QoS. Our approach improves system throughput by 6% and meets QoS 22% more often than the best evaluated traditional policy.
multicore multithreading quality of service performance model interference