CS 425 / ECE 428 Distributed Systems Fall 2017 Nov 16, 2017

Slides:



Advertisements
Similar presentations
Chapter 5 CPU Scheduling. CPU Scheduling Topics: Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling.
Advertisements

CPU Scheduling CS 3100 CPU Scheduling1. Objectives To introduce CPU scheduling, which is the basis for multiprogrammed operating systems To describe various.
WELCOME TO THETOPPERSWAY.COM
Chapter 6: CPU Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Feb 2, 2005 Chapter 6: CPU Scheduling Basic.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
CPU Scheduling Chapter 6 Chapter 6.
Chapter 4 Processor Management
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Silberschatz and Galvin  Operating System Concepts Module 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Lecture 7: CPU Scheduling Chapter 5.
Chapter 5: CPU Scheduling. 5.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria.
1 11/29/2015 Chapter 6: CPU Scheduling l Basic Concepts l Scheduling Criteria l Scheduling Algorithms l Multiple-Processor Scheduling l Real-Time Scheduling.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 5 CPU Scheduling Slide 1 Chapter 5 CPU Scheduling.
Presented by Qifan Pu With many slides from Ali’s NSDI talk Ali Ghodsi, Matei Zaharia, Benjamin Hindman, Andy Konwinski, Scott Shenker, Ion Stoica.
Lecture 4 CPU scheduling. Basic Concepts Single Process  one process at a time Maximum CPU utilization obtained with multiprogramming CPU idle :waiting.
Process Scheduling. Scheduling Strategies Scheduling strategies can broadly fall into two categories  Co-operative scheduling is where the currently.
CPU scheduling.  Single Process  one process at a time  Maximum CPU utilization obtained with multiprogramming  CPU idle :waiting time is wasted 2.
Basic Concepts Maximum CPU utilization obtained with multiprogramming
Lecturer 5: Process Scheduling Process Scheduling  Criteria & Objectives Types of Scheduling  Long term  Medium term  Short term CPU Scheduling Algorithms.
1 Chapter 5: CPU Scheduling. 2 Basic Concepts Scheduling Criteria Scheduling Algorithms.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 6: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms.
OPERATING SYSTEMS CS 3502 Fall 2017
lecture 5: CPU Scheduling
Copyright ©: Nahrstedt, Angrave, Abdelzaher
CPU SCHEDULING.
Chapter 6: CPU Scheduling
Chapter 2 Memory and process management
Dan C. Marinescu Office: HEC 439 B. Office hours: M, Wd 3 – 4:30 PM.
EEE Embedded Systems Design Process in Operating Systems 서강대학교 전자공학과
Copyright ©: Nahrstedt, Angrave, Abdelzaher
Chapter 5a: CPU Scheduling
CS 425 / ECE 428 Distributed Systems Fall 2016 Nov 10, 2016
April 6, 2001 Gary Kimura Lecture #6 April 6, 2001
CPU Scheduling Algorithms
Operating Systems Processes Scheduling.
Chapter 2.2 : Process Scheduling
Day 25 Uniprocessor scheduling
Chapter 5: CPU Scheduling
CPU Scheduling.
Chapter 6: CPU Scheduling
Chapter 6: CPU Scheduling
Process management Information maintained by OS for process management
ICS 143 Principles of Operating Systems
湖南大学-信息科学与工程学院-计算机与科学系
CPU Scheduling Basic Concepts Scheduling Criteria
CPU Scheduling G.Anuradha
Chapter 6: CPU Scheduling
Module 5: CPU Scheduling
Operating System Concepts
3: CPU Scheduling Basic Concepts Scheduling Criteria
Chapter5: CPU Scheduling
Operating systems Process scheduling.
Chapter 5: CPU Scheduling
Chapter 6: CPU Scheduling
CPU SCHEDULING.
Outline Scheduling algorithms Multi-processor scheduling
Chapter 6: CPU Scheduling
Chapter 5: CPU Scheduling
Lecture 2 Part 3 CPU Scheduling
CS703 – Advanced Operating Systems
Operating System , Fall 2000 EA101 W 9:00-10:00 F 9:00-11:00
Shortest-Job-First (SJR) Scheduling
Chapter 6: CPU Scheduling
Module 5: CPU Scheduling
Chapter 6: Scheduling Algorithms Dr. Amjad Ali
Chapter 6: CPU Scheduling
Chapter 6: CPU Scheduling
CPU Scheduling: Basic Concepts
Module 5: CPU Scheduling
Presentation transcript:

CS 425 / ECE 428 Distributed Systems Fall 2017 Nov 16, 2017 Indranil Gupta (Indy) Nov 16, 2017 Lecture 24: Scheduling All slides © IG

Why Scheduling? Multiple “tasks” to schedule The processes on a single-core OS The tasks of a Hadoop job The tasks of multiple Hadoop jobs Limited resources that these tasks require Processor(s) Memory (Less contentious) disk, network Scheduling goals Good throughput or response time for tasks (or jobs) High utilization of resources. 2

Single Processor Scheduling Task 1 10 Task 2 5 Task 3 3 Arrival Times  0 6 8 Processor Which tasks run when? Task Length Arrival 1 10 2 5 6 3 8 3

FIFO Scheduling (First-In First-Out)/FCFS Task 1 Task 2 Task 3 Time  0 6 8 10 15 18 Processor Task Length Arrival 1 10 2 5 6 3 8 Maintain tasks in a queue in order of arrival When processor free, dequeue head and schedule it 4

FIFO/FCFS Performance Average completion time may be high For our example on previous slides, Average completion time of FIFO/FCFS = (Task 1 + Task 2 + Task 3)/3 = (10+15+18)/3 = 43/3 = 14.33 5

STF Scheduling (Shortest Task First) Processor Task 3 Task 2 Task 1 Task Length Arrival 1 10 2 5 3 Time  0 3 8 18 Maintain all tasks in a queue, in increasing order of running time When processor free, dequeue head and schedule 6

STF Is Optimal! Average completion of STF is the shortest among all scheduling approaches! For our example on previous slides, Average completion time of STF = (Task 1 + Task 2 + Task 3)/3 = (18+8+3)/3 = 29/3 = 9.66 (versus 14.33 for FIFO/FCFS) In general, STF is a special case of priority scheduling Instead of using time as priority, scheduler could use user-provided priority 7

Round-Robin Scheduling Processor Task 1 … Task Length Arrival 1 10 2 5 6 3 8 Time  0 6 8 15 (Task 3 done) Use a quantum (say 1 time unit) to run portion of task at queue head Pre-empts processes by saving their state, and resuming later After pre-empting, add to end of queue 8

Round-Robin vs. STF/FIFO Round-Robin preferable for Interactive applications User needs quick responses from system FIFO/STF preferable for Batch applications User submits jobs, goes away, comes back to get result 9

Summary Single processor scheduling algorithms FIFO/FCFS Shortest task first (optimal!) Priority Round-robin Many other scheduling algorithms out there! What about cloud scheduling? Next! 10

Hadoop Scheduling

Hadoop Scheduling A Hadoop job consists of Map tasks and Reduce tasks Only one job in entire cluster => it occupies cluster Multiple customers with multiple jobs Users/jobs = “tenants” Multi-tenant system => Need a way to schedule all these jobs (and their constituent tasks) => Need to be fair across the different tenants Hadoop YARN has two popular schedulers Hadoop Capacity Scheduler Hadoop Fair Scheduler 12

Hadoop Capacity Scheduler Contains multiple queues Each queue contains multiple jobs Each queue guaranteed some portion of the cluster capacity E.g., Queue 1 is given 80% of cluster Queue 2 is given 20% of cluster Higher-priority jobs go to Queue 1 For jobs within same queue, FIFO typically used Administrators can configure queues 13 Source: http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html

Elasticity in HCS Administrators can configure each queue with limits Soft limit: how much % of cluster is the queue guaranteed to occupy (Optional) Hard limit: max % of cluster given to the queue Elasticity A queue allowed to occupy more of cluster if resources free But if other queues below their capacity limit, now get full, need to give these other queues resources Pre-emption not allowed! Cannot stop a task part-way through When reducing % cluster to a queue, wait until some tasks of that queue have finished 14

Other HCS Features Queues can be hierarchical May contain child sub-queues, which may contain child sub-queues, and so on Child sub-queues can share resources equally Scheduling can take memory requirements into account (memory specified by user) 15

Hadoop Fair Scheduler Goal: all jobs get equal share of resources When only one job present, occupies entire cluster As other jobs arrive, each job given equal % of cluster E.g., Each job might be given equal number of cluster-wide YARN containers Each container == 1 task of job 16 Source: http://hadoop.apache.org/docs/r1.2.1/fair_scheduler.html

Hadoop Fair Scheduler (2) Divides cluster into pools Typically one pool per user Resources divided equally among pools Gives each user fair share of cluster Within each pool, can use either Fair share scheduling, or FIFO/FCFS (Configurable) 17

Pre-emption in HFS Some pools may have minimum shares Minimum % of cluster that pool is guaranteed When minimum share not met in a pool, for a while Take resources away from other pools By pre-empting jobs in those other pools By killing the currently-running tasks of those jobs Tasks can be re-started later Ok since tasks are idempotent! To kill, scheduler picks most-recently-started tasks Minimizes wasted work 18

Other HFS Features Can also set limits on Number of concurrent jobs per user Number of concurrent jobs per pool Number of concurrent tasks per pool Prevents cluster from being hogged by one user/job 19

Estimating Task Lengths HCS/HFS use FIFO May not be optimal (as we know!) Why not use shortest-task-first instead? It’s optimal (as we know!) Challenge: Hard to know expected running time of task (before it’s completed) Solution: Estimate length of task Some approaches Within a job: Calculate running time of task as proportional to size of its input Across tasks: Calculate running time of task in a given job as average of other tasks in that given job (weighted by input size) Lots of recent research results in this area! 20

Summary Hadoop Scheduling in YARN Hadoop Capacity Scheduler Hadoop Fair Scheduler Yet, so far we’ve talked of only one kind of resource Either processor, or memory How about multi-resource requirements? Next! 21

Dominant-Resource Fair Scheduling

Challenge What about scheduling VMs in a cloud (cluster)? Jobs may have multi-resource requirements Job 1’s tasks: 2 CPUs, 8 GB Job 2’s tasks: 6 CPUs, 2 GB How do you schedule these jobs in a “fair” manner? That is, how many tasks of each job do you allow the system to run concurrently? What does fairness even mean? 23

Dominant Resource Fairness (DRF) Proposed by researchers from U. California Berkeley Proposes notion of fairness across jobs with multi-resource requirements They showed that DRF is Fair for multi-tenant systems Strategy-proof: tenant can’t benefit by lying Envy-free: tenant can’t envy another tenant’s allocations 24

Where is DRF Useful? DRF is Usable in scheduling VMs in a cluster Usable in scheduling Hadoop in a cluster DRF used in Mesos, an OS intended for cloud environments DRF-like strategies also used some cloud computing company’s distributed OS’s 25

How DRF Works Our example Job 1’s tasks: 2 CPUs, 8 GB => Job 1’s resource vector = <2 CPUs, 8 GB> Job 2’s tasks: 6 CPUs, 2 GB => Job 2’s resource vector = <6 CPUs, 2 GB> Consider a cloud with <18 CPUs, 36 GB RAM> 26

How DRF Works (2) Our example Job 1’s tasks: 2 CPUs, 8 GB => Job 1’s resource vector = <2 CPUs, 8 GB> Job 2’s tasks: 6 CPUs, 2 GB => Job 2’s resource vector = <6 CPUs, 2 GB> Consider a cloud with <18 CPUs, 36 GB RAM> Each Job 1’s task consumes % of total CPUs = 2/18 = 1/9 Each Job 1’s task consumes % of total RAM = 8/36 = 2/9 1/9 < 2/9 => Job 1’s dominant resource is RAM, i.e., Job 1 is more memory-intensive than it is CPU-intensive 27

How DRF Works (3) Our example Job 1’s tasks: 2 CPUs, 8 GB => Job 1’s resource vector = <2 CPUs, 8 GB> Job 2’s tasks: 6 CPUs, 2 GB => Job 2’s resource vector = <6 CPUs, 2 GB> Consider a cloud with <18 CPUs, 36 GB RAM> Each Job 2’s task consumes % of total CPUs = 6/18 = 6/18 Each Job 2’s task consumes % of total RAM = 2/36 = 1/18 6/18 > 1/18 => Job 2’s dominant resource is CPU, i.e., Job 1 is more CPU-intensive than it is memory-intensive 28

DRF Fairness For a given job, the % of its dominant resource type that it gets cluster-wide, is the same for all jobs Job 1’s % of RAM = Job 2’s % of CPU Can be written as linear equations, and solved 29

DRF Solution, For our Example DRF Ensures Job 1’s % of RAM = Job 2’s % of CPU Solution for our example: Job 1 gets 3 tasks each with <2 CPUs, 8 GB> Job 2 gets 2 tasks each with <6 CPUs, 2 GB> Job 1’s % of RAM = Number of tasks * RAM per task / Total cluster RAM = 3*8/36 = 2/3 Job 2’s % of CPU = Number of tasks * CPU per task / Total cluster CPUs = 2*6/18 = 2/3 30

Other DRF Details DRF generalizes to multiple jobs DRF also generalizes to more than 2 resource types CPU, RAM, Network, Disk, etc. DRF ensures that each job gets a fair share of that type of resource which the job desires the most Hence fairness 31

Summary: Scheduling Scheduling very important problem in cloud computing Limited resources, lots of jobs requiring access to these jobs Single-processor scheduling FIFO/FCFS, STF, Priority, Round-Robin Hadoop scheduling Capacity scheduler, Fair scheduler Dominant-Resources Fairness 32

Announcements MP4 and HW4 due right after Thanksgiving, so please work now (and use the break) Happy Thanksgiving! 33