Download presentation
Presentation is loading. Please wait.
Published bySavannah Graves Modified over 11 years ago
1
SRR: The Smoothed Round Robin Scheduler Paul Southerington ECE 742 5 May 2005
2
Overview Design Goals Design Goals Why is it significant? Why is it significant? How does it work? How does it work?
3
General Goals of Scheduler Conflicting Design Goals Conflicting Design Goals Fairness Fairness SRR Attempts to provide long-term and short-term fairness SRR Attempts to provide long-term and short-term fairness Bounded Delay Bounded Delay Scalability Scalability Complexity Complexity SRR Claims O(1) Complexity SRR Claims O(1) Complexity Formal Proofs in original paper Formal Proofs in original paper
4
Overview So how does it work? So how does it work? Weight Spread Sequences Weight Spread Sequences Weight Matrix Weight Matrix Scheduler Operation Scheduler Operation
5
The Weight Spread Sequence Spreads flow service time across entire round Spreads flow service time across entire round Values map to columns of matrix Values map to columns of matrix k is the order of the WSS k is the order of the WSS Chosen based on flow weights Chosen based on flow weights Defined recursively: Defined recursively: S k = S k-1, k, S k-1 S k = S k-1, k, S k-1 S 1 = 1 S 1 = 1
6
The Weight Spread Sequence (2) Length = 2 k - 1 Length = 2 k - 1 Sample: k=1 through k=4 Sample: k=1 through k=4 S 1 = 1 S 1 = 1 S 2 = 1 2 1 S 2 = 1 2 1 S 3 = 1 2 1 3 1 2 1 S 3 = 1 2 1 3 1 2 1 S 4 = 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 S 4 = 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1
7
The Weight Matrix One row for each traffic flow One row for each traffic flow Number of Columns = k= log 2 (w max ) Number of Columns = k= log 2 (w max ) Same as order of WSS Same as order of WSS Each row is a Weight Vector Each row is a Weight Vector Series of binary coefficients Series of binary coefficients Represent each flow weight in binary Represent each flow weight in binary Each bit comprises one element of matrix Each bit comprises one element of matrix
8
Sample Weight Matrix Weights:w 1 =5, w 2 =2, w 3 =2, w 4 =3, w 5 =1 Weights:w 1 =5, w 2 =2, w 3 =2, w 4 =3, w 5 =1
9
Scheduler Operation Scan WSS from left-to-right Scan WSS from left-to-right For each entry in WSS: For each entry in WSS: Serve traffic from flows in matching column Serve traffic from flows in matching column Flows served sequentially (top-to-bottom) Flows served sequentially (top-to-bottom) Move to next entry in WSS Move to next entry in WSS Start Over Start Over
10
Sample Weight Matrix Weights:w 1 =5, w 2 =2, w 3 =2, w 4 =3, w 5 =1 Weights:w 1 =5, w 2 =2, w 3 =2, w 4 =3, w 5 =1 WSS = S 3 = 1 2 1 3 1 2 1 WSS = S 3 = 1 2 1 3 1 2 1 Service order: f 1, f 2, f 3, f 4, f 1, f 1, f 4, f 5, f 1, f 2, f 3, f 4, f 1 Service order: f 1, f 2, f 3, f 4, f 1, f 1, f 4, f 5, f 1, f 2, f 3, f 4, f 1
11
Sample Service Curve
12
SRR Implementation (1) Weight Matrix and WSS Weight Matrix and WSS Size may be fixed Size may be fixed WSS may be precomputed WSS may be precomputed Can tradeoff granularity for max speed Can tradeoff granularity for max speed With 32 nd -order WSS: With 32 nd -order WSS: 4 Tbps with 1 kbps resolution 4 Tbps with 1 kbps resolution 8 Tbps with 2 kbps resolution 8 Tbps with 2 kbps resolution
13
SRR Implementation (2) Three Functions Three Functions Add_flow() Add_flow() Executed whenever a new flow arrives Executed whenever a new flow arrives Adds new entry to bottom of doubly-linked list (column) Adds new entry to bottom of doubly-linked list (column) Worst-case O(k) operation, not O(1)! Worst-case O(k) operation, not O(1)! Del_flow() Del_flow() Executed when a flow is no longer backlogged Executed when a flow is no longer backlogged Basically Add_flow() in reverse Basically Add_flow() in reverse
14
SRR Implementation (3) Three Functions (contd.) Three Functions (contd.) Schedule() Schedule() Operates as described in previous example Operates as described in previous example Also handles deficit value Also handles deficit value Add_flow and Del_flow called from here Add_flow and Del_flow called from here
15
Future Improvements Improvements to Add_flow and Del_flow Improvements to Add_flow and Del_flow Try to improve worst-case O(k) performance Try to improve worst-case O(k) performance Parallel operation Parallel operation WSS Compression WSS Compression Remove WSS elements for empty columns Remove WSS elements for empty columns May not be possible to implement efficiently May not be possible to implement efficiently
16
Conclusions Elegant solution to conflicting design goals Elegant solution to conflicting design goals May not really perform at O(1) May not really perform at O(1) Still some room for improvement Still some room for improvement
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.