What is a Utility Function? - UCSD CSE

Is 99% Utilization of a Supercomputer a Good Thing?
Scheduling in Context:
User Utility Functions
Cynthia Bailey Lee
Department of Computer Science and Engineering and
San Diego Supercomputer Center
University of California, San Diego
November 13, 2006
Outline:
What is a Utility Function?
Metrics
Metric Pitfalls
What is a Utility Function?
u(t)
time
8 am
12–1pm
5 pm
8 am
9 am
Other factors: coordinate with other grid sites or sensors, paper deadlines,
weather and hurricane prediction, …
What is a Utility Function?
Proposed Models
Real Functions
Scheduling
Some Proposed Models
LINEAR DECAY
Customizable start value and slope
[Chun et al. 2002, Irwin et al. 2004]
EXPONENTIAL
DECAY
Customizable
start value
My favorite
PIECEWISE LINEAR DECAY
User customizes all points

Common metrics such wait time and
expansion factor implicitly use a (noncustomizable) linear decay model.
What is a Utility Function?
Proposed Models
Real Functions
Real Functions
• Randomly selected SDSC
users provided these functions
for jobs they were submitting
• Utility is in terms of the
SDSC charge unit (“SU”)
Scheduling
What is a Utility Function?
Proposed Models
Real Functions
Scheduling
More Real Functions
What is a Utility Function?
Proposed Models
Real Functions
Scheduling
Parallel Job Scheduling
Explicitly by Utility Function

Finding the best solution is NP-hard
• “Tennis Court Scheduling” (Human-powered
scheduling)
• Still practiced occasionally at most centers (officially and not) -- a
phone call to sysadmins gets a job a reservation or to the front of
the queue)
• Custom Heuristics
• Sort by current value, a combination of start value and slope
[Chun and Culler 02, Irwin, Grit, Chase 04]
• Linear Solver / CPLEX
What is a Utility Function?
Proposed Models
Real Functions
Scheduling
Comparing Schedulers
25/50/75 %ile
rounded, x10^7
Time to
Solution*
0/0/3307
4.33
0.7 s
0/82/9071
4.24
1.9 s
Priority
Queues +
EASY
0/2883/28124
4.20
0.8 s
Genetic
Algorithm
0/289/6582
110.
886 s
Expansion Factor Aggregate Utility
EASY
Conservative
Backfilling
* For 500 scheduling rounds (need to do a round when a job arrives or ends).
All timings done with a (not particularly optimized) modular scheduling simulator
framework in Python (email me for code).
Questions
• For more information, see paper:
– Gathering real users’ utility functions:
Lee, Cynthia Bailey and Allan Snavely. "On the UserScheduler Dialogue: Studies of User-Provided Runtime
Estimates and Utility Functions." International Journal of High
Performance Computing Applications, vol. 20, pp.495-506,
2006.
• Contact: Cynthia Lee [email protected]