SRR: The Smoothed Round Robin Scheduler Paul Southerington ECE 742 5 May 2005.

Slides:



Advertisements
Similar presentations
4.4 Page replacement algorithms
Advertisements

1 GPS Example 2: Arrivals o Eleven Sources. First source gets 0.5. Other 10 sources get 0.05 each. First source sends 11 cells send one each at t=0.
Lecture 19: Parallel Algorithms
Deficit Round Robin Scheduler. Outline Introduction Ordinary Problems Deficit Round Robin Latency of DRR Improvement of latencies.
Bio Michel Hanna M.S. in E.E., Cairo University, Egypt B.S. in E.E., Cairo University at Fayoum, Egypt Currently is a Ph.D. Student in Computer Engineering.
CS 261 – Data Structures AVL Trees. Binary Search Tree: Balance Complexity of BST operations: proportional to the length of the path from the root to.
New discoveries during the exploration of sorting: How I got my thesis topic By Spencer Morgan Reference: Algorithms, Sequential, Parallel, and Distributed.
Data Structures Using C++ 2E
IP Routing Lookups Scalable High Speed IP Routing Lookups.
Sorting Chapter Sorting Consider list x 1, x 2, x 3, … x n We seek to arrange the elements of the list in order –Ascending or descending Some O(n.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
CS 268: Lecture 15/16 (Packet Scheduling) Ion Stoica April 8/10, 2002.
1 Lecture 25: Parallel Algorithms II Topics: matrix, graph, and sort algorithms Tuesday presentations:  Each group: 10 minutes  Describe the problem,
CEG 221 Lesson 5: Algorithm Development II Mr. David Lippa.
Guaranteed Smooth Scheduling in Packet Switches Isaac Keslassy (Stanford University), Murali Kodialam, T.V. Lakshman, Dimitri Stiliadis (Bell-Labs)
Memory Management A memory manager should take care of allocating memory when needed by programs release memory that is no longer used to the heap. Memory.
Andreas Klappenecker [based on the slides of Prof. Welch]
Copyright © Cengage Learning. All rights reserved. CHAPTER 11 ANALYSIS OF ALGORITHM EFFICIENCY ANALYSIS OF ALGORITHM EFFICIENCY.
Copyright 2008 Koren ECE666/Koren Part.6a.1 Israel Koren Spring 2008 UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Digital Computer.
Accelerating Simulated Annealing for the Permanent and Combinatorial Counting Problems.
Packet Scheduling From Ion Stoica. 2 Packet Scheduling  Decide when and what packet to send on output link -Usually implemented at output interface 1.
Load Balanced Birkhoff-von Neumann Switches
Data Structures Using C++ 2E Chapter 6 Recursion.
System of Linear Equations Nattee Niparnan. LINEAR EQUATIONS.
CIS679: Scheduling, Resource Configuration and Admission Control r Review of Last lecture r Scheduling r Resource configuration r Admission control.
Lecture 12: Parallel Sorting Shantanu Dutt ECE Dept. UIC.
Data Structures Using C++ 2E Chapter 6 Recursion.
Parallel Algorithms Sorting and more. Keep hardware in mind When considering ‘parallel’ algorithms, – We have to have an understanding of the hardware.
Chapter 11 Heap. Overview ● The heap is a special type of binary tree. ● It may be used either as a priority queue or as a tool for sorting.
Addressing Queuing Bottlenecks at High Speeds Sailesh Kumar Patrick Crowley Jonathan Turner.
Cyclic Code. Linear Block Code Hamming Code is a Linear Block Code. Linear Block Code means that the codeword is generated by multiplying the message.
Fair Queueing. 2 First-Come-First Served (FIFO) Packets are transmitted in the order of their arrival Advantage: –Very simple to implement Disadvantage:
Parallel Algorithms Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Parallel Algorithms Patrick Cozzi University of Pennsylvania CIS Fall 2013.
1 Trees 4: AVL Trees Section 4.4. Motivation When building a binary search tree, what type of trees would we like? Example: 3, 5, 8, 20, 18, 13, 22 2.
Data Structures Using C++ 2E Chapter 9 Searching and Hashing Algorithms.
Packet Scheduling and Buffer Management Switches S.Keshav: “ An Engineering Approach to Networking”
Sorting Chapter Sorting Consider list x 1, x 2, x 3, … x n We seek to arrange the elements of the list in order –Ascending or descending Some O(n.
Sequence Comparison Algorithms Ellen Walker Bioinformatics Hiram College.
Guaranteed Smooth Scheduling in Packet Switches Isaac Keslassy (Stanford University), Murali Kodialam, T.V. Lakshman, Dimitri Stiliadis (Bell-Labs)
Efficient Cache Structures of IP Routers to Provide Policy-Based Services Graduate School of Engineering Osaka City University
Time Parallel Simulations I Problem-Specific Approach to Create Massively Parallel Simulations.
Packet Scheduling: SCFQ, STFQ, WF2Q Yongho Seok Contents Review: GPS, PGPS SCFQ( Self-clocked fair queuing ) STFQ( Start time fair queuing ) WF2Q( Worst-case.
Solve a system of linear equations By reducing a matrix Pamela Leutwyler.
Parallel and Distributed Simulation Time Parallel Simulation.
CprE 458/558: Real-Time Systems (G. Manimaran)1 CprE 458/558: Real-Time Systems Real-Time Networks – WAN Packet Scheduling.
Scheduling Determines which packet gets the resource. Enforces resource allocation to each flows. To be “Fair”, scheduling must: –Keep track of how many.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Weighted Fair Queuing Some slides used with.
Queue Scheduling Disciplines
Block-Based Packet Buffer with Deterministic Packet Departures Hao Wang and Bill Lin University of California, San Diego HSPR 2010, Dallas.
CS 361 – Chapter 10 “Greedy algorithms” It’s a strategy of solving some problems –Need to make a series of choices –Each choice is made to maximize current.
Scheduling for QoS Management. Engineering Internet QoS2 Outline  What is Queue Management and Scheduling?  Goals of scheduling  Fairness (Conservation.
Algorithm Analysis with Big Oh ©Rick Mercer. Two Searching Algorithms  Objectives  Analyze the efficiency of algorithms  Analyze two classic algorithms.
Chapter 16: Searching, Sorting, and the vector Type.
Joint Routing and Scheduling Optimization in Wireless Mesh Networks with Directional Antennas A. Capone, I. Filippini, F. Martignon IEEE international.
Dynamic Programming for the Edit Distance Problem.
Date of download: 9/29/2017 Copyright © ASME. All rights reserved.
JPEG Compression What is JPEG? Motivation
Andreas Klappenecker [partially based on the slides of Prof. Welch]
Matrices Rules & Operations.
Chapter 11 Heap.
Priority Queues Chuan-Ming Liu
Lecture 22: Parallel Algorithms
Unit-2 Divide and Conquer
Practical Session 8, Memory Management 2
Parallel build blocks.
OPIM 915 Fall 2010 Data Structures 23-38,
Practical Session 9, Memory Management continues
Heaps.
A Simple QoS Packet Scheduler for Network Routers
Presentation transcript:

SRR: The Smoothed Round Robin Scheduler Paul Southerington ECE May 2005

Overview Design Goals Design Goals Why is it significant? Why is it significant? How does it work? How does it work?

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

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

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

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 = S 2 = S 3 = S 3 = S 4 = S 4 =

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

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

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

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 = WSS = S 3 = 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

Sample Service Curve

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

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

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

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

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