Multi-Resource/Multi-Dimension QoS Optimization
The QoS-based Resource Allocation Model (Q-RAM) is an analytical
approach for satisfying multiple quality-of-service dimensions in a
resource-constrained environment. Using this model, available system
resources can be apportioned across multiple applications such that
the net utility that accrues to the end-users of those applications is
Multimedia systems using audio and video streams can provide better
audio/video quality at higher resolution and/or very low end-to-end
delays. Tracking applications can track objects at higher precision
and accuracy if radar tracks are generated and processed at higher
frequencies. In many cases, computationally intensive algorithms can
provide better results than their less-demanding counterparts. Even
interactive systems can provide excellent response times to users if
more processing and I/O resources are made available. Conversely,
many applications can still prove to be useful and acceptable in
practice even though the resources needed for their maximal
performance are not available. For instance, a 30 frames/second video
rate would be ideal for human viewing, but a smooth 12 fps video rate
suffices under many conditions. The QoS-based Resource Allocation
Model (Q-RAM) addresses the following question: "how does one allocate
available resources to multiple concurrent applications?".
The novelty of Q-RAM is that it allows multiple Quality of Service
requirements such as timeliness, cryptography and reliable data
delivery to be addressed and traded off against each other. It also
allows resources to be traded off against each other to obtain the
same level of QoS along a particular dimension. For example, video at
a certain frame rate can be transmitted in raw form, consuming minimal
CPU cycles and high network bandwidth. Alternatively, the video can
be compressed, consuming significant CPU cycles but consuming less
network bandwidth. Q-RAM provides a framework to make such resource
and QoS tradeoffs across multiple applications. Both discrete and
continuous QoS dimensions have been studied.
Visual Q-RAM is a tcl/tk applet (tclet) for the visual presentation of
multi-dimensional QoS optimization problems and their solutions.
Problems can be entered manually through the interface, or loaded from
a file. By communicating with the Q-RAM server, an optimial solution to
the displayed problem can be obtained and displayed.
Installing the Tcl Plugin and Amaranth Policy
In order to run Visual Q-RAM, you will need to download and install
plug-in from Scriptics.
You will also need to create and enable an "amaranth" policy for the
plugin. This will allow the plugin to create a connection to the QoS
Optimization Server. Follow the steps bellow to enable the policy:
The interface is comprised of nine main sections. These sections and
their functions are:
- Task List Box -
Located in the upper left corner of the applet, the Task List Box
contains a list of all tasks in the current optimization problem.
Clicking on a task name in the list box will cause the user and
application profiles for that task to be displayed on the right hand
side of the display, and the task weight and utility to be displayed
just under the task list. Tasks can be deleted, added or renamed by
using the buttons and the task name entry box.
- Problem Load/Save Box -
Located just to the right of the Task List Box, the Problem Load/Save
Box lists all of the QoS optimization problems that can be loaded. In
addition to local files, there may also be several built-in problems.
Double clicking on an problem name, or selecting a problem name and
pressing the "Load" button will cause a problem to be loaded.
Entering a name in the entry box below the problem list and pressing
the "Save" button will cause the current problem to be save to a file.
When Visual Q-RAM is run as an applet under a browser, files are saved
to the "sandbox" area for the tcl/tk plugin. See documentation on the
plugin to locate your sandbox. The "New" button can be used to delete
all tasks and create a new problem from scratch.
- Optimization Command Box -
To run the optimizer on the current problem, use the Optimization
Command Box located below the Problem Load/Save Box. There are three
optimization algorithms: amrmd, an approximate QoS optimizer,
amrmd1, an alternate approximate QoS optimizer, and mrmd
an exact QoS optimizer. To optimize the current problem, first select
and algorithm and then press the "Optimize" button. Press "Cancel" to
cancel an optimization request. While amrmd and amrmd1
typically return a result in less than a second, mrmd can
require ten or more seconds to complete. The result of the
optimization is indicated by changing the current setpoints for all of
the tasks in the problem. The Global Utility and Global Resource
Allocation Boxes will indicate the optimized utility value and
- Task Utility Box -
The Task Utility Box is located just below the Task List Box and includes
a slider for setting the task weight, and a bar graph indicating the
task utility. The task utility is defined as wt* ( w1*u1 +
... wn*un)/n where wt is the task weight, ui is the
dimension-wise utility for QoS dimension i, wi is the
dimension-wise weight for QoS dimension i, and n is the
number of QoS dimensions for the task. The task weight is always between 0 and 1.
- Resource Limits Box -
The Resource Limits Box is located to the right of the Task Utility
Box, and contains sliders for setting the maximum amount of resources
available for each resource dimension. In addition, an entry box
above each of the sliders can be used to set the names of the
dimensions in the current problem.
- Global Utility Box -
The Global Utility Box is located below the Task Utility and Resource
Limits Boxes and displays the global utility as a stacked bar graph.
Each segment in the bar graph represents one task. The segments are
stacked the same order as in the Task List Box with the current task
being highlighted in red. It is also possible to select a task be
clicking on a segment of the bar graph. This feature can be used to
select a task which seems to be getting more or less utility than
- Global Resource Allocation Box -
Located below the Global Utility Box, this box is used to display the
current global resource allocation. There is one stacked bar graph
for each resource. Each segment in the bar graphs represent one task.
The segments are stacked in the same order as in the Task List Box
with the current task being highlighted in red. It is also possible
to select a task be clicking on a segment of one of the bar graphs.
This feature can be used to select a task which seems to be using
more or less of a resource than other tasks.
Each of the resource utilization graphs contains a dark vertical bar
to indicate the position of the resource maximum set in the "Resource
Limits Box". The position of this bar can be changed by dragging it
with the mouse pointer to change the scale on the bar graph.
- User Profile Box -
The User Profile Box is located in the upper right corner of the
applet and details the utility curves for the current task. Each of
the graphs displayed in this box is the utility curve for a single QoS
dimension. The vertical bars in each graph represent the quality
indices of the QoS dimension. To change the dimensional utility value
associated with a quality index, click on the appropriate point on the
utility curve and drag it up or down the bar. As you move the
selected point on the utility curve, the dimension-wise utility
(without the weight factor) will be displayed near the y-axis at the
same level as the point. The text entry box above each of the graphs
indicates the name of the QoS dimension. QoS dimension names are
unique to each task and can be change by modifying the contents of the
box. A weight for each QoS dimension can be set using the slider
below each of the graphs.
- Application Profile Box -
The Application Profile Box is located in the lower right corner of
the applet and details the QoS to resource mapping as well as
displaying the currently selected QoS setpoint for the current task.
The mapping is presented as a matrix of graphs showing each QoS
dimension (along the top) against each resource dimension (along the
side). Within each graph is a set of vertical bars representing the
quality index values for the QoS dimension of the column under which
the graph is located. On each bar is the set of setpoints having the
quality index for that bar and QoS dimension. The vertical position
of the setpoints correspond to the resources consumed by the setpoint.
Lines connecting setpoints accross quality index values are setpoints
which differ only in the quality index for the QoS dimension
corresponing the graph in which it is displayed.
The currently selected setpoint for a task is indicated by the
enlarged black setpoint, and by the highlighted quality index bars for
each QoS dimension. Within each graph, setpoints which vary only in
the quality index value for the QoS dimension of the graph are
highlighted in black but are not enlarged. All other setpoints and
quality index bars are shown in gray.
There are two methods for selecting a QoS setpoint. The direct method
is to click the mouse pointer on the setpoint you wish to select. When
the pointer is near multiple setpoints, the current setpoint and
setpoints differing only in the index for the graph in which the
selection is made takes precedence. The second method for selecting a
setpoint is to click on the quality index bars in a graph for each of
the dimensions. This method can be used to select a setpoint for a
specific QoS vector. In order to change the resource utilization
associated with a setpoint, you must first unlock the setpoints. Do
this by unselecting the "Lock Setpoints" check box in the upper right
corner of the box.
A task may be excluded from by checking the "Task Excluded" box. An
exculded task is a task which is granted no resources and obtains no
utility. When a task is excluded, the setpoint is grayed out, the task
utility goes to zero, and the task contributions to global utility and
resource allocation go to zero.
Select an interface size to start Visual Q-RAM:
Small interface for monitor resolutions up to 1024x780
Large interface for monitor resolutions 1280x1024 or larger
"On Quality of Service Management"
Ph.D. thesis, Carnegie Mellon University, August 1999
Also in Technical Report CMU-CS-99-165
Chen Lee, John
Lehoczky, Dan Siewiorek, Raj Rajkumar and Jeff Hansen
"A Scalable Solution to the Multi-Resource QoS Problem"
To appear in the 20th IEEE Real-Time Systems Symposium, December 1999.
Chen Lee, John
Lehoczky, Raj Rajkumar and Dan Siewiorek
"On Quality of Service Optimization with Discrete QoS Options"
In Proceedings of the IEEE Real-time Technology and Applications
Symposium , June 1999
Raj Rajkumar, Chen Lee, John Lehoczky and Dan Siewiorek
"Practical Solutions for QoS-based Resource Allocation Problems"
In Proceedings of the IEEE Real-Time Systems Symposium, December 1998
Raj Rajkumar, Chen Lee, John Lehoczky and Dan Siewiorek
"A Resource Allocation Model for QoS Management"
In Proceedings of the IEEE Real-Time Systems Symposium, December 1997
Last modified: Sat Oct 23 13:44:38 EDT 1999