
Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The design of a system to automatically tune resource allocation and application parameters at runtime in order to maximize user happiness or goodness. The authors propose the use of 'goodness hints' to tell the operating system how resource allocations will affect an application's utility. The system uses machine learning techniques to specialize models to particular applications and an optimizer to find optimal parameter values. The document also describes a prototype to validate these concepts.
Typology: Lecture notes
1 / 1
This page cannot be seen from the preview
Don't miss anything!

Modern operating systems and adaptive applications offer an overwhelming number of parameters affecting applica- tion latency, throughput, image resolution, audio quality, and so on. We are designing a system to automatically tune resource allocation and application parameters at runtime, with the aim of maximizing user happiness or goodness.
Consider a 3-D graphics application that operates at vari- able resolution, trading output fidelity for processor time. Simultaneously, a data mining application adapts to net- work and processor load by migrating computation between the client and storage node. We must allocate resources be- tween these applications and select their adaptive parame- ters to meet the user’s overall goals. Since the user lacks the time and expertise to translate his preferences into parame- ter values, we would like the system to do this.
Existing systems lack the right abstractions for applica- tions to expose information for automated parameter tuning. Goodness hints are the solution to this problem. Applica- tions use these hints to tell the operating system how re- source allocations will affect their goodness (utility). E.g., a video player might have no goodness below some allocation threshold and maximum goodness above another. Goodness hints are used by the operating system to make resource al- location decisions and by applications to tune their adaptive parameters. Our contribution is a decomposition of good- ness hints into manageable and independent pieces and a methodology to automatically generate them.
One half of a goodness hint is a quality-goodness map- ping which tells us how application qualities translate into user happiness. Qualities are measures of performance (la- tency, throughput) or of fidelity (resolution, accuracy). We hope to leverage user studies from the human-computer in- teraction community to generate these mappings. The sys- tem will also use user feedback to dynamically tailor the mappings to specific users.
A resource-quality mapping forms the other half of a goodness hint; our current research focuses on this half. This mapping describes the relationship between an appli- cation’s resource allocation and its qualities. To do this, we first map adaptive parameters to resource usage by monitor- ing the application, logging its resource usage for various parameter values, and using machine learning to find the
relationship between parameter values and resource usage. We create this mapping offline with controlled experiments to explore the parameter space, and update it online based on dynamic behavior. Given the resource usage and allocation of an applica- tion, we predict its performance using simple models. E.g., a processor-bound computation requiring 1 106 cycles and allocated 2 106 cycles will have a latency of 0 5 sec. More complex applications will use multiple resources, perhaps concurrently. We will use machine learning techniques to specialize our models to particular applications. Finally, given some resource allocation, an application must pick adaptive parameter values that maximize its goodness. An optimizer searches the parameter space to find the optimal values. By embedding the optimizer in the goodness hint, the operating system is also made aware of what the application will choose. The operating system it- self uses a similar optimizer to find the resource allocation that will maximize goodness across applications. We are building a prototype to validate these concepts. Currently, the prototype supports two resources: processor and network. To map adaptive parameters to resource usage we use linear least squares regression. To search through the space of application parameters and resource allocations, we use a stochastic version of Powell’s conjugate direction- set method. We have two very different applications: a 3-D graphics radiosity application [Narayanan, et al., WMCSA 2000], and an Abacus data mining application [Amiri, et al., USENIX 2000]. Our initial results are encouraging. Our system gener- ates accurate resource-quality mappings for both applica- tions. (The quality-goodness half was constructed by hand.) In simulation, our resource allocator is always able to maxi- mize overall goodness, which is a weighted sum of applica- tion goodnesses. However, the overhead of the search algo- rithm is prohibitive, and we are investigating alternatives. This work raises several research questions: How can we talk about resource usage and allocation in a platform inde- pendent way? What is the best way to combine individual application goodnesses into user happiness? What kind of online feedback can we expect from a typical user, and how can we use it to dynamically refine goodness hints?