The trend toward many-core systems presents serious challenges for client devices. Users will expect better performance from applications as the core count increases; meeting this expectation requires not only parallelizing client applications but also effective exploitation of parallelism that is likely to be fragile and easily disturbed by interference. In addition to best-effort computation, users have an increasing appetite for responsive user interfaces and high-quality multimedia with stringent real-time requirements (e.g., videoconferencing, gaming, and web applications). Further, tomorrow's applications will have a variety of components - each with differing resource requirements. General-purpose OSs will need to handle dynamic workloads consisting of parallel programs with interactive and real-time response times.
I present PACORA, a resource allocation framework for general-purpose operating systems, which is designed to provide responsiveness guarantees to a simultaneous mix of high-throughput parallel, interactive, and real-time applications in an efficient, scalable manner. Applications increasingly differ in their ability to exploit multiple processor cores and other resources, and these differences are independent of their relative responsiveness requirements. PACORA leverages convex optimization and application performance models to determine the optimal number of resources (e.g., cores, cache slices, memory pages, various kinds of bandwidth) to give each application, allowing the OS to make trade-offs between application quality-of-service/responsiveness, system performance and energy efficiency.