Download CPU Monitoring and Prediction Service for Odyssey

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Light-front quantization applications wikipedia , lookup

Coupled cluster wikipedia , lookup

Measurement in quantum mechanics wikipedia , lookup

Transcript
Urs Hengartner
Sonesh Surana
Yinglian Xie
Mentor: Dushyanth Narayanan
Applications demand low latency even in
case of varying CPU availability
Multi-fidelity applications can adapt their
fidelities to changes in CPU availability
Maintain latency bound for CPU-bound
processes facing varying CPU availability




monitor CPU availability
predict future CPU availability
predict latency as a function of fidelity (Odyssey)
use this function to find the right application fidelity for
some latency constraint (Odyssey)
Monitoring: periodic measurement of
 number of runnable processes
 CPU ticks consumed by multi-fidelity application
Prediction of CPU availability
1
1  n(1  f)
n: number of runnable processes (smoothed)
f: fraction of CPU ticks consumed by multi-fidelity
application (smoothed)
Predict CPU availability in next second/next ten seconds
Background load consisting of CPU-intensive/make processes
50 experiments per data point
Rel. Prediction Error (90th Percentile)
Prediction Error
1
0.8
CPU-intensive (1 sec)
0.6
CPU-intensive (10 sec)
0.4
make (1 sec)
make (10 sec)
0.2
0
0
0.5
1
2
Background Load
3
4
Why are short-term predictions less
accurate?
Artifact of Linux scheduler
 100 ticks per second, per process time quantum of 20
ticks
 for two processes A and B:
Process A gets 60 ticks per second
Process B gets 40 ticks per second
Impossible to make accurate short-term
prediction unless
 scheduler is simulated at user-level
 kernel provides more scheduling information
Why are predictions for make background
load less accurate?
Artifact of Linux scheduler
 make process gets added to run queue, but is not
immediately scheduled
 run queue always contains make process(es)
 however, make process(es) always consumes less than its
share
 makes our formula under-predict CPU availability
Our formula is not powerful enough
CPU prediction is feasible
Predictions are difficult for
short prediction intervals
I/O-bound background processes
Future Work
what kind of kernel-level support?
more sophisticated prediction formula
(e.g., techniques from machine learning)
Interactive rendering application
Multiple levels of fidelity based on number
of rendered polygons
Background load of three CPU-intensive
processes and desired latency of two
seconds
Scenario 1: Prediction always returns 100%
CPU availability
Scenario 2: Prediction returns CPU
availability based on our formula