LoadOpt - Workload and Optimization for Multicore Systems
Multicore architectures have become the standard both for general-purpose PCs and for high-end servers. Such platforms provide an environment that is ideally suited for consolidating multiple applications within the same machine to fully take advantage of the available parallelism. As multicores become the basic building blocks of data centers and Cloud computing platforms, the problem of effective workload management becomes very challenging because the interference between collocated workloads may significantly affect their performance. Moreover, workloads are often observed to be executed with different processing rates for different system resources (e.g., CPU and disk) depending on the overall system load.
In this project we will first explore novel methods to characterize the dynamic behavior of applications running on modern multicores. We will develop practical methods to profile the spatial and temporal characteristics of applications. We will vertically profile load-dependent application behavior across the entire system stack, paying also attention to overheads due to virtualization. For the temporal characterization, we will devise sampling approaches that automatically adjust the sampling frequency to extract desired statistical properties and stochastic processes. We will leverage and refine existing dimension reduction and clustering methods to identify predominant load-dependent resources and representative workload classes. Our goal is to provide the statistics necessary to capture the temporal and spatial workload characteristics as well as to build suitable performance models.
Second, we will investigate novel performance models of load-dependent systems executing multiple classes of workloads. Based on our performance analysis, we will explore new load optimization algorithms aiming at optimally collocating application instances taking various performance objectives and system capacities into account. Our aim is to provide a set of optimal rules in collocating application instances in a wide range of system scenarios, applying rigorous mathematical optimization. To manage time-varying workloads, we will extend the developed workload consolidation algorithm into a dynamic framework, focusing on admission control and migration of workloads. Furthermore, we will explore virtual resource provisioning to optimize the system for a given workload at runtime.
The results of this project will improve capacity planning and performance management for various kinds of modern multicore systems. They will help avoid expensive over-provisioning of hardware resources and achieve better utilization of the available system resources, which in turn helps reduce energy consumption.