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]
© Copyright 2026 Paperzz