180 likes | 335 Views
Priority Round-Robin Scheduling for Very Large Virtual Environments. Chris Faisstnauer, Dieter Schmalstieg, Werner Purgathofer Vienna University of Technology. Introduction. Virtual Environments with large amounts of elements Competition for limited resources (bottleneck)
E N D
Priority Round-Robin Schedulingfor Very Large Virtual Environments Chris Faisstnauer, Dieter Schmalstieg, Werner Purgathofer Vienna University of Technology
Introduction • Virtual Environments with large amounts of elements • Competition for limited resources (bottleneck) • Graphics pipeline (rendering) • Processing power (simulation) • Network bandwidth (updates) • Selection of element subset • Reduce absolute number • Traditional scheduling for objects • Degradation of system performance • Approximation must be made
Goal • Development of a generic scheduling algorithm • Employ it as stand-alone scheduling • Combine with “element-reduction” methods • Graceful degradation (find best approximation) • Output sensitive • Immune to starvation • Enforce use of priorities • Priorities based on freely definable error metric • E.g.: fast entities frequent updates • slow entities seldom updates
Related Work • Short-term scheduling • independent processes • allocate processor time • optimize system behavior • First Come-First Served (FCFS) / Round-Robin (RR) • execute in order of submission (no priorities) • output sensitive, immune to starvation • Multi-Level Feedback Queue • levels with decreasing priorities • risk of starvation vs. constant monitoring
Basic Priority Round-Robin 1/3 • Elements compete for resources accumulate error • Error modeled as error metric • Assign each element: Error Per Unit (EPU) • Goal: minimize cumulative error • No traditional sorting • Approximate sorting in multiple levels (FIFO) • Elements assigned to level according EPU • Level priority reflects scheduling frequency • Combines advantage of Round-Robin & full sorting
Basic Priority Round-Robin 2/3 i=0 i=1 i=2 Repetition counti = NrElementsi * NrLevels Predicted error = ErrorPerUnit * Repetition Count Selected elements: A,C,G - B,D,G - A,E,G - B,F,G
Basic Priority Round-Robin 3/3 • Assignment of elements to levels • Minimum overall error • Average Error Per Unit variable size levels • Dynamic VE dynamic error distribution • Varying traversal rate (level i) ni: number of elements in level i tri: traversal rate of level i level: number of levels
Optimum Traversal Rate 1/2 level: number of levels ni: nr of elements in level i avi: average EPU of level i rci: repetition count of level i tri: traversal rate of level i lerri: level error err: cumulative error
Optimum Traversal Rate 2/2 level: number of levels ni: nr of elements in level i avi: average EPU of level i rci: repetition count of level i tri: traversal rate of level i lerri: level error err: cumulative error
Evaluation • Client-server system • Server hosts simulator (translates elements in 2D) • Client visualizes scene (needs position updates) • Subset of element’s position can be updated • Select subset using PRR-scheduling • Visual error: distance object position on server / client • Evaluation of PRR (Priority Round-Robin) • Comparison PRR vs. plain RR • Comparison DR+PRR vs. plain DR
Example 1 • Scheduling 1000 out of 10000 simulated cars (10%) • Velocities (in units): 500 cars - velocity [9,10] • 1500 cars - velocity [3,4] • 8000 cars - velocity [0.1,0.5] Overall error of PRR is 73% lower than RR
Example 2 • Scheduling 1000 out of 10000 simulated cars (10%) • Velocities (in units): 10000 cars - velocity [1,10] • Overall error of PRR is 7.5% lower than RR
Example 3 • Scheduling 1000 out of 10000 simulated cars (10%) • Simulating cars using Dead Reckoning ( 25% cars above threshold) • 500 cars - velocity[9,10] - angle offset [19,20] every 10 steps • 1500 cars - velocity[3,4] - angle offset [4,5] every 10 steps • 8000 cars - velocity[0.1,0.5] - angle offset [1,2] every 10 steps Overall error of DR+PRR is 63% lower than DR
Example 4 • Quake Deathmatch: scheduling 2 out of 9 players • Position / velocity of entities given by recorded demo • Overall error of PRR is 48% lower than RR
Conclusions • Enhance (plain) RR Priority Round-Robin (PRR) • Enforcement of priorities • Output sensitive • Immune to starvation • Freely definable error metric • PRR is a suitable substitute for RR in most cases • Minimize overall visual error in VE • Combine Priority Round-Robin and Dead Reckoning • Combine Priority Round-Robin and visibility techniques
Future Work • Measure for object “activity” • Use of visibility information • Temporal Bounding Volumes (TBV) • Temporally invariant Bounding Volumes (tiBV) • Evaluate motion data from large Virtual Environments • E.g. “Everquest”, “Ultima Online” • Scheduling humanoid avatars • Multiple Levels Of Detail (LOD)
Operating systems Scheduled once Priorities: scheduling order Small number of elements Constant monitoring Variable amount resources Virtual Environments Scheduled repeatedly Priorities: scheduling frequency (Very) large number elements Output sensitive Constant amount resources OS vs. VE - Scheduling • Optimize system parameters • Enforce priorities • Minimize risk starvation