Priority Round-Robin Scheduling for Very Large Virtual Environments
180 likes | 344 Vues
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)
Priority Round-Robin Scheduling for Very Large Virtual Environments
E N D
Presentation Transcript
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