EECS 262 a Advanced Topics in Computer Systems

  • Slides: 68
Download presentation
EECS 262 a Advanced Topics in Computer Systems Lecture 13 Resource allocation: Lithe/DRF March

EECS 262 a Advanced Topics in Computer Systems Lecture 13 Resource allocation: Lithe/DRF March 7 th, 2016 John Kubiatowicz Electrical Engineering and Computer Sciences University of California, Berkeley http: //www. eecs. berkeley. edu/~kubitron/cs 262

Today’s Papers • Composing Parallel Software Efficiently with Lithe Heidi Pan, Benjamin Hindman, Krste

Today’s Papers • Composing Parallel Software Efficiently with Lithe Heidi Pan, Benjamin Hindman, Krste Asanovic. Appears in Conference on Programming Languages Design and Implementation (PLDI), 2010 • Dominant Resource Fairness: Fair Allocation of Multiple Resources Types, A. Ghodsi, M. Zaharia, B. Hindman, A. Konwinski, S. Shenker, and I. Stoica, Usenix NSDI 2011, Boston, MA, March 2011 • Thoughts? 3/7/2016 cs 262 a-S 16 Lecture-14 2

The Future is Parallel Software Challenge: How to build many different large parallel apps

The Future is Parallel Software Challenge: How to build many different large parallel apps that run well? v Can’t rely solely on compiler/hardware: limited parallelism & energy efficiency v Can’t rely solely on hand-tuning: limited programmer productivity 3/7/2016 cs 262 a-S 16 Lecture-14 3

Composability is Essential App 1 App 2 BLAS MKL BLAS code reuse same library

Composability is Essential App 1 App 2 BLAS MKL BLAS code reuse same library implementation, different apps Goto BLAS modularity same app, different library implementations Composability is key to building large, complex apps. 3/7/2016 cs 262 a-S 16 Lecture-14 4

Motivational Example Sparse QR Factorization (Tim Davis, Univ of Florida) Column Elimination Tree SPQR

Motivational Example Sparse QR Factorization (Tim Davis, Univ of Florida) Column Elimination Tree SPQR Frontal Matrix Factorization TBB MKL Open. MP OS Hardware Software Architecture 3/7/2016 System Stack cs 262 a-S 16 Lecture-14 5

TBB, MKL, Open. MP • Intel’s Threading Building Blocks (TBB) – Library that allows

TBB, MKL, Open. MP • Intel’s Threading Building Blocks (TBB) – Library that allows programmers to express parallelism using a higher-level, task-based, abstraction – Uses work-stealing internally (i. e. Cilk) – Open-source • Intel’s Math Kernel Library (MKL) – Uses Open. MP for parallelism • Open. MP – Allows programmers to express parallelism in the SPMD-style using a combination of compiler directives and a runtime library – Creates SPMD teams internally (i. e. UPC) – Open-source implementation of Open. MP from GNU (libgomp) 3/7/2016 cs 262 a-S 16 Lecture-14 6

Suboptimal Performance Speedup over Sequential Performance of SPQR on 16 -core AMD Opteron System

Suboptimal Performance Speedup over Sequential Performance of SPQR on 16 -core AMD Opteron System Matrix 3/7/2016 cs 262 a-S 16 Lecture-14 7

Out-of-the-Box Configurations Core 0 1 2 3 TBB Open. MP OS virtualized kernel threads

Out-of-the-Box Configurations Core 0 1 2 3 TBB Open. MP OS virtualized kernel threads Hardware 3/7/2016 cs 262 a-S 16 Lecture-14 8

Providing Performance Isolation Using Intel MKL with Threaded Applications http: //www. intel. com/support/performancetools/libraries/mkl/sb/CS-017177. htm

Providing Performance Isolation Using Intel MKL with Threaded Applications http: //www. intel. com/support/performancetools/libraries/mkl/sb/CS-017177. htm 3/7/2016 cs 262 a-S 16 Lecture-14 9

“Tuning” the Code Speedup over Sequential Performance of SPQR on 16 -core AMD Opteron

“Tuning” the Code Speedup over Sequential Performance of SPQR on 16 -core AMD Opteron System Matrix 3/7/2016 cs 262 a-S 16 Lecture-14 10

Partition Resources Core 0 1 2 3 TBB Open. MP OS Hardware Tim Davis’

Partition Resources Core 0 1 2 3 TBB Open. MP OS Hardware Tim Davis’ “tuned” SPQR by manually partitioning the resources. 3/7/2016 cs 262 a-S 16 Lecture-14 11

“Tuning” the Code (continued) Speedup over Sequential Performance of SPQR on 16 -core AMD

“Tuning” the Code (continued) Speedup over Sequential Performance of SPQR on 16 -core AMD Opteron System Matrix 3/7/2016 cs 262 a-S 16 Lecture-14 12

Harts: Hardware Threads virtualized kernel threads harts OS OS Core 0 Core 1 Core

Harts: Hardware Threads virtualized kernel threads harts OS OS Core 0 Core 1 Core 2 Core 3 v Expose true hardware resources • Applications requests harts from OS • Application “schedules” the harts itself (two-level scheduling) • Can both space-multiplex and timemultiplex harts … but never timemultiplex harts of the same application 3/7/2016 cs 262 a-S 16 Lecture-14 13

Sharing Harts (Dynamically) TBB time Open. MP OS Hardware 3/7/2016 cs 262 a-S 16

Sharing Harts (Dynamically) TBB time Open. MP OS Hardware 3/7/2016 cs 262 a-S 16 Lecture-14 14

How to Share Harts? call graph scheduler hierarchy CLR TBB OMP CLR Cilk TBB

How to Share Harts? call graph scheduler hierarchy CLR TBB OMP CLR Cilk TBB Open. MP v Hierarchically: Caller gives resources to callee to execute v Cooperatively: Callee gives resources back to caller when done 3/7/2016 Cilk cs 262 a-S 16 Lecture-14 15

A Day in the Life of a Hart TBB Sched: next? CLR TBB execute.

A Day in the Life of a Hart TBB Sched: next? CLR TBB execute. TBB task Cilk TBB Sched: next? Open. MP TBB Sched. Q execute TBB task • Non-preemptive scheduling. TBB Sched: next? nothing left to do, give hart back to parent CLR Sched: next? Cilk Sched: next? time 3/7/2016 cs 262 a-S 16 Lecture-14 16

Lithe (ABI) Parent Cilk TBB Scheduler Caller enter yield request register unregister call interface

Lithe (ABI) Parent Cilk TBB Scheduler Caller enter yield request register unregister call interface for exchanging values interface for sharing harts enter yield request register unregister call Child TBB Open. MP Scheduler Callee v 3/7/2016 return Analogous to function call ABI for enabling interoperable codes. cs 262 a-S 16 Lecture-14 17

A Few Details … • A hart is only managed by one scheduler at

A Few Details … • A hart is only managed by one scheduler at a time • The Lithe runtime manages the hierarchy of schedulers and the interaction between schedulers • Lithe ABI only a mechanism to share harts, not policy 3/7/2016 cs 262 a-S 16 Lecture-14 18

Putting It All Together Lithe-TBB Sched. Q func(){ register(TBB); request(2); unregister(TBB); Lithe-TBB Sched. Q

Putting It All Together Lithe-TBB Sched. Q func(){ register(TBB); request(2); unregister(TBB); Lithe-TBB Sched. Q enter(TBB); yield(); } time 3/7/2016 cs 262 a-S 16 Lecture-14 19

Synchronization • Can’t block a hart on a synchronization object • Synchronization objects are

Synchronization • Can’t block a hart on a synchronization object • Synchronization objects are implemented by saving the current “context” and having the hart re-enter the current scheduler #pragma omp barrier (block context) enter TBB Scheduler enter yield request register unregister yield #pragma omp barrier (unblock context) request(1) enter Open. MP Scheduler (resume context) enter yield request register unregister enter time 3/7/2016 cs 262 a-S 16 Lecture-14 20

Lithe Contexts • Includes notion of a stack • Includes context-local storage • There

Lithe Contexts • Includes notion of a stack • Includes context-local storage • There is a special transition context for each hart that allows it to transition between schedulers easily (i. e. on an enter, yield) 3/7/2016 cs 262 a-S 16 Lecture-14 21

Lithe-compliant Schedulers • TBB – Worker model – ~180 lines added, ~5 removed, ~70

Lithe-compliant Schedulers • TBB – Worker model – ~180 lines added, ~5 removed, ~70 modified (~1, 500 / ~8, 000 total) • Open. MP – Team model – ~220 lines added, ~35 removed, ~150 modified (~1, 000 / ~6, 000 total) 3/7/2016 cs 262 a-S 16 Lecture-14 22

Overheads? • TBB – Example micro-benchmarks that Intel includes with releases • Open. MP

Overheads? • TBB – Example micro-benchmarks that Intel includes with releases • Open. MP – NAS benchmarks (conjugate gradient, LU solver, and multigrid) 3/7/2016 cs 262 a-S 16 Lecture-14 23

Flickr Application Server • Graphics. Magick parallelized using Open. MP • Server component parallelized

Flickr Application Server • Graphics. Magick parallelized using Open. MP • Server component parallelized using threads (or libprocesses) • Spectrum of possible implementations: – Process one image upload at a time, pass all resources to Open. MP (via Graphics. Magick) + Easy implementation - Can’t overlap communication with computation, some network links are slow, images are different sizes, diminishing returns on resize operations – Process as many images as possible at a time, run Graphics. Magick sequentially + Also easy implementation - Really bad latency when low-load on server, 32 core machine underwhelmed – All points in between … + Account for changing load, different image sizes, different link bandwidth/latency - Hard to program 3/7/2016 cs 262 a-S 16 Lecture-14 24

Flickr-Like App Server Libprocess Graphics Magick Open. MPLithe (Lithe) Tradeoff between throughput saturation point

Flickr-Like App Server Libprocess Graphics Magick Open. MPLithe (Lithe) Tradeoff between throughput saturation point and latency. 25 3/7/2016 cs 262 a-S 16 Lecture-14 25

Case Study: Sparse QR Factorization • Different matrix sizes • delta. X creates ~30,

Case Study: Sparse QR Factorization • Different matrix sizes • delta. X creates ~30, 000 Open. MP schedulers • … • Rucci creates ~180, 000 Open. MP schedulers • Platform: Dual-socket 2. 66 GHz Intel Xeon (Clovertown) with 4 cores per socket (8 total cores) 3/7/2016 cs 262 a-S 16 Lecture-14 26

Case Study: Sparse QR Factorization ESOC Rucci Tuned: 70. 8 Tuned: 360. 0 Out-of-the-box:

Case Study: Sparse QR Factorization ESOC Rucci Tuned: 70. 8 Tuned: 360. 0 Out-of-the-box: 111. 8 Out-of-the-box: 576. 9 Sequential: 172. 1 Sequential: 970. 5 Lithe: 354. 7 Lithe: 66. 7 3/7/2016 cs 262 a-S 16 Lecture-14 27

Case Study: Sparse QR Factorization delta. X landmark Tuned: 14. 5 Tuned: 2. 5

Case Study: Sparse QR Factorization delta. X landmark Tuned: 14. 5 Tuned: 2. 5 Out-of-the-box: 26. 8 Out-of-the-box: 4. 1 Sequential: 37. 9 Sequential: 3. 4 Lithe: 2. 3 Lithe: 13. 6 3/7/2016 cs 262 a-S 16 Lecture-14 28

Is this a good paper? • What were the authors’ goals? • What about

Is this a good paper? • What were the authors’ goals? • What about the evaluation/metrics? • Did they convince you that this was a good system/approach? • Were there any red-flags? • What mistakes did they make? • Does the system/approach meet the “Test of Time” challenge? • How would you review this paper today? 3/7/2016 cs 262 a-S 16 Lecture-14 29

Break 3/7/2016 cs 262 a-S 16 Lecture-14 30

Break 3/7/2016 cs 262 a-S 16 Lecture-14 30

CPU 100% What is Fair Sharing? • n users want to share a resource

CPU 100% What is Fair Sharing? • n users want to share a resource (e. g. , CPU) – Solution: Allocate each 1/n of the shared resource 33% 50% 33% 0% 100% • Generalized by max-min fairness – Handles if a user wants less than its fair share – E. g. user 1 wants no more than 20% • Generalized by weighted max-min fairness – Give weights to users according to importance – User 1 gets weight 1, user 2 weight 2 33% 20% 50% 40 % 100% 33% 50% 66% 0% 3/7/2016 cs 262 a-S 16 Lecture-14 31

Why is Fair Sharing Useful? • Weighted Fair Sharing / Proportional Shares – User

Why is Fair Sharing Useful? • Weighted Fair Sharing / Proportional Shares – User 1 gets weight 2, user 2 weight 1 • Priorities 100% 50% – Give user 1 weight 1000, user 2 weight 1 0% • Revervations – Ensure user 1 gets 10% of a resource – Give user 1 weight 10, sum weights ≤ 100% 50% • Isolation Policy – Users cannot affect others beyond their fair share 3/7/2016 cs 262 a-S 16 Lecture-14 0% 66 % 33 % CPU 10 % 50 % 40 % CPU 32

Properties of Max-Min Fairness • Share guarantee – Each user can get at least

Properties of Max-Min Fairness • Share guarantee – Each user can get at least 1/n of the resource – But will get less if her demand is less • Strategy-proof – Users are not better off by asking for more than they need – Users have no reason to lie • Max-min fairness is the only “reasonable” mechanism with these two properties 3/7/2016 cs 262 a-S 16 Lecture-14 33

Why Care about Fairness? • Desirable properties of max-min fairness – Isolation policy: A

Why Care about Fairness? • Desirable properties of max-min fairness – Isolation policy: A user gets her fair share irrespective of the demands of other users – Flexibility separates mechanism from policy: Proportional sharing, priority, reservation, . . . • Many schedulers use max-min fairness – Datacenters: – OS: – Networking: 3/7/2016 Hadoop’s fair sched, capacity, Quincy rr, prop sharing, lottery, linux cfs, . . . wfq, wf 2 q, sfq, drr, csfq, . . . cs 262 a-S 16 Lecture-14 34

When is Max-Min Fairness not Enough? • Need to schedule multiple, heterogeneous resources –

When is Max-Min Fairness not Enough? • Need to schedule multiple, heterogeneous resources – Example: Task scheduling in datacenters » Tasks consume more than just CPU – CPU, memory, disk, and I/O • What are today’s datacenter task demands? 3/7/2016 cs 262 a-S 16 Lecture-14 35

Heterogeneous Resource Demands Some tasks are CPU-intensive Most task need ~ <2 CPU, 2

Heterogeneous Resource Demands Some tasks are CPU-intensive Most task need ~ <2 CPU, 2 GB RAM> 3/7/2016 Some tasks are memory-intensive 2000 -node Hadoop Cluster at Facebook (Oct 2010) cs 262 a-S 16 Lecture-14 36

Problem 100% Single resource example – 1 resource: CPU – User 1 wants <1

Problem 100% Single resource example – 1 resource: CPU – User 1 wants <1 CPU> per task – User 2 wants <3 CPU> per task 50% 50 % 0% 2 resources: CPUs & memory User 1 wants <1 CPU, 4 GB> per task User 2 wants <3 CPU, 1 GB> per task What is a fair allocation? 50% 0% 3/7/2016 CPU 100% Multi-resource example – – 50 % cs 262 a-S 16 Lecture-14 ? ? CPU mem 37

Problem definition How to fairly share multiple resources when users have heterogeneous demands on

Problem definition How to fairly share multiple resources when users have heterogeneous demands on them? 3/7/2016 cs 262 a-S 16 Lecture-14 38

Model • Users have tasks according to a demand vector – e. g. <2,

Model • Users have tasks according to a demand vector – e. g. <2, 3, 1> user’s tasks need 2 R 1, 3 R 2, 1 R 3 – Not needed in practice, can simply measure actual consumption • Resources given in multiples of demand vectors • Assume divisible resources 3/7/2016 cs 262 a-S 16 Lecture-14 39

What is Fair? • Goal: define a fair allocation of multiple cluster resources between

What is Fair? • Goal: define a fair allocation of multiple cluster resources between multiple users • Example: suppose we have: – – 30 CPUs and 30 GB RAM Two users with equal shares User 1 needs <1 CPU, 1 GB RAM> per task User 2 needs <1 CPU, 3 GB RAM> per task • What is a fair allocation? 3/7/2016 cs 262 a-S 16 Lecture-14 40

First Try: Asset Fairness • Asset Fairness – Equalize each user’s sum of resource

First Try: Asset Fairness • Asset Fairness – Equalize each user’s sum of resource shares Problem • Cluster with 70 CPUs, 70 GB RAM User 1 has < 50% of both CPUs and RAM – U 1 needs <2 CPU, 2 GB RAM> per task – off U 2 in needs <1 CPU, 2 GBwith RAM> per Better a separate cluster 50% of task the resources 3/7/2016 30 CPUs, 30 GB (∑=60) 20 CPUs, 40 GB (∑=60) cs 262 a-S 16 Lecture-14 User 2 43% 100% 57% • Asset fairness yields – U 1: 15 tasks: – U 2: 20 tasks: User 1 28% 0% CPU RAM 41

Lessons from Asset Fairness “You shouldn’t do worse than if you ran a smaller,

Lessons from Asset Fairness “You shouldn’t do worse than if you ran a smaller, private cluster equal in size to your fair share” Thus, given N users, each user should get ≥ 1/N of her dominating resource (i. e. , the resource that she consumes most of) 3/7/2016 cs 262 a-S 16 Lecture-14 42

Desirable Fair Sharing Properties • Many desirable properties – – – – 3/7/2016 Share

Desirable Fair Sharing Properties • Many desirable properties – – – – 3/7/2016 Share Guarantee Strategy proofness Envy-freeness Pareto efficiency Single-resource fairness Bottleneck fairness Population monotonicity Resource monotonicity DRF focuses on these properties cs 262 a-S 16 Lecture-14 43

Cheating the Scheduler • Some users will game the system to get more resources

Cheating the Scheduler • Some users will game the system to get more resources • Real-life examples – A cloud provider had quotas on map and reduce slots Some users found out that the map-quota was low » Users implemented maps in the reduce slots! – A search company provided dedicated machines to users that could ensure certain level of utilization (e. g. 80%) » Users used busy-loops to inflate utilization 3/7/2016 cs 262 a-S 16 Lecture-14 44

Two Important Properties • Strategy-proofness – A user should not be able to increase

Two Important Properties • Strategy-proofness – A user should not be able to increase her allocation by lying about her demand vector – Intuition: » Users are incentivized to make truthful resource requirements • Envy-freeness – No user would ever strictly prefer another user’s lot in an allocation – Intuition: » Don’t want to trade places with any other user 3/7/2016 cs 262 a-S 16 Lecture-14 45

Challenge • A fair sharing policy that provides – Strategy-proofness – Share guarantee •

Challenge • A fair sharing policy that provides – Strategy-proofness – Share guarantee • Max-min fairness for a single resource had these properties – Generalize max-min fairness to multiple resources 3/7/2016 cs 262 a-S 16 Lecture-14 46

Dominant Resource Fairness • A user’s dominant resource is the resource she has the

Dominant Resource Fairness • A user’s dominant resource is the resource she has the biggest share of – Example: Total resources: <10 CPU, 4 GB> User 1’s allocation: <2 CPU, 1 GB> Dominant resource is memory as 1/4 > 2/10 (1/5) • A user’s dominant share is the fraction of the dominant resource she is allocated – User 1’s dominant share is 25% (1/4) 3/7/2016 cs 262 a-S 16 Lecture-14 47

Dominant Resource Fairness (2) • Apply max-min fairness to dominant shares • Equalize the

Dominant Resource Fairness (2) • Apply max-min fairness to dominant shares • Equalize the dominant share of the users – Example: Total resources: User 1 demand: User 2 demand: <9 CPU, 18 GB> <1 CPU, 4 GB> dominant res: mem <3 CPU, 1 GB> dominant res: CPU 100% 3 CPUs 12 GB 66% User 1 User 2 50% 66% 0% 3/7/2016 6 CPUs 2 GB CPU mem (9 total) (18 total) cs 262 a-S 16 Lecture-14 48

DRF is Fair • DRF is strategy-proof • DRF satisfies the share guarantee •

DRF is Fair • DRF is strategy-proof • DRF satisfies the share guarantee • DRF allocations are envy-free See DRF paper for proofs 3/7/2016 cs 262 a-S 16 Lecture-14 49

Online DRF Scheduler Whenever there available resources and tasks to run: Schedule a task

Online DRF Scheduler Whenever there available resources and tasks to run: Schedule a task to the user with smallest dominant share • O(log n) time per decision using binary heaps • Need to determine demand vectors 3/7/2016 cs 262 a-S 16 Lecture-14 50

Alternative: Use an Economic Model • Approach – Set prices for each good –

Alternative: Use an Economic Model • Approach – Set prices for each good – Let users buy what they want • How do we determine the right prices for different goods? • Let the market determine the prices • Competitive Equilibrium from Equal Incomes (CEEI) – Give each user 1/n of every resource – Let users trade in a perfectly competitive market • Not strategy-proof! 3/7/2016 cs 262 a-S 16 Lecture-14 51

Determining Demand Vectors • They can be measured – Look at actual resource consumption

Determining Demand Vectors • They can be measured – Look at actual resource consumption of a user • They can be provided the by user – What is done today • In both cases, strategy-proofness incentivizes user to consume resources wisely 3/7/2016 cs 262 a-S 16 Lecture-14 52

DRF vs CEEI • User 1: <1 CPU, 4 GB> User 2: <3 CPU,

DRF vs CEEI • User 1: <1 CPU, 4 GB> User 2: <3 CPU, 1 GB> – DRF more fair, CEEI better utilization 100% Dominant Resource Fairness Competitive Equilibrium from Equal Incomes 100% 66% 50% 91% 50% 66% 100% user 2 50% mem CPU mem 80% 50% 66% 60% 0% 0% 100% Competitive Equilibrium from Equal Incomes 66% user 1 55% 0% CPU Dominant Resource Fairness 0% CPU mem • User 1: <1 CPU, 4 GB> User 2: <3 CPU, 2 GB> – User 2 increased her share of both CPU and memory 3/7/2016 cs 262 a-S 16 Lecture-14 53

Example of DRF vs Asset vs CEEI • Resources <1000 CPUs, 1000 GB> •

Example of DRF vs Asset vs CEEI • Resources <1000 CPUs, 1000 GB> • 2 users A: <2 CPU, 3 GB> and B: <5 CPU, 1 GB> 100% User A User B 50% 50% 0% CPU Mem a) DRF 3/7/2016 CPU Mem b) Asset Fairness cs 262 a-S 16 Lecture-14 CPU Mem c) CEEI 54

Desirable Fairness Properties (1) • Recall max/min fairness from networking – Maximize the bandwidth

Desirable Fairness Properties (1) • Recall max/min fairness from networking – Maximize the bandwidth of the minimum flow [Bert 92] • Progressive filling (PF) algorithm 1. 2. 3/7/2016 Allocate ε to every flow until some link saturated Freeze allocation of all flows on saturated link and goto 1 cs 262 a-S 16 Lecture-14 55

Desirable Fairness Properties (2) • P 1. Pareto Efficiency » It should not be

Desirable Fairness Properties (2) • P 1. Pareto Efficiency » It should not be possible to allocate more resources to any user without hurting others • P 2. Single-resource fairness » If there is only one resource, it should be allocated according to max/min fairness • P 3. Bottleneck fairness » If all users want most of one resource(s), that resource should be shared according to max/min fairness 3/7/2016 cs 262 a-S 16 Lecture-14 56

Desirable Fairness Properties (3) • Assume positive demands (Dij > 0 for all i

Desirable Fairness Properties (3) • Assume positive demands (Dij > 0 for all i and j) • DRF will allocate same dominant share to all users – As soon as PF saturates a resource, allocation frozen 3/7/2016 cs 262 a-S 16 Lecture-14 57

Desirable Fairness Properties (4) • P 4. Population Monotonicity – If a user leaves

Desirable Fairness Properties (4) • P 4. Population Monotonicity – If a user leaves and relinquishes her resources, no other user’s allocation should get hurt – Can happen each time a job finishes • CEEI violates population monotonicity • DRF satisfies population monotonicity – Assuming positive demands – Intuitively DRF gives the same dominant share to all users, so all users would be hurt contradicting Pareto efficiency 3/7/2016 cs 262 a-S 16 Lecture-14 58

Properties of Policies Property Share guarantee Strategy-proofness Pareto efficiency Envy-freeness Single resource fairness Bottleneck

Properties of Policies Property Share guarantee Strategy-proofness Pareto efficiency Envy-freeness Single resource fairness Bottleneck res. fairness Population monotonicity Resource monotonicity 3/7/2016 Asset ✔ ✔ ✔ cs 262 a-S 16 Lecture-14 CEEI ✔ ✔ ✔ DRF ✔ ✔ ✔ ✔ 59

Evaluation Methodology • Micro-experiments on EC 2 – Evaluate DRF’s dynamic behavior when demands

Evaluation Methodology • Micro-experiments on EC 2 – Evaluate DRF’s dynamic behavior when demands change – Compare DRF with current Hadoop scheduler • Macro-benchmark through simulations – Simulate Facebook trace with DRF and current Hadoop scheduler 3/7/2016 cs 262 a-S 16 Lecture-14 60

DRF Inside Mesos on EC 2 Dominant resource is CPU User 1’s Shares is

DRF Inside Mesos on EC 2 Dominant resource is CPU User 1’s Shares is memory <1 CPU, 10 GB> <2 CPU, 4 GB> Dominant resource User 2’s Shares is CPU <1 CPU, 1 GB> <1 CPU, 3 GB> Dominant shares are equalized Dominant Shares Share guarantee: ~70% dominant 3/7/2016 share Share guarantee: cs 262 a-S 16 Lecture-14 61 ~50% dominant share 61

Fairness in Today’s Datacenters • Hadoop Fair Scheduler/capacity/Quincy – Each machine consists of k

Fairness in Today’s Datacenters • Hadoop Fair Scheduler/capacity/Quincy – Each machine consists of k slots (e. g. k=14) – Run at most one task per slot – Give jobs ”equal” number of slots, i. e. , apply max-min fairness to slot-count • This is what DRF paper compares against 3/7/2016 cs 262 a-S 16 Lecture-14 62

Experiment: DRF vs Slots Number of Type 1 Jobs Finished Jobs finished Thrashing Number

Experiment: DRF vs Slots Number of Type 1 Jobs Finished Jobs finished Thrashing Number of Type 2 Jobs Finished Low utilization Jobs finished Thrashing Type 1 jobs <2 CPU, 2 GB> 3/7/2016 Type 2 jobs <1 CPU, 0. 5 GB> cs 262 a-S 16 Lecture-14 63

Job completion time Experiment: DRF vs Slots Completion Time of Type 1 Jobs Thrashing

Job completion time Experiment: DRF vs Slots Completion Time of Type 1 Jobs Thrashing Job completion time Completion Time of Type 2 Jobs 3/7/2016 Low utilization hurts performance Type 1 job <2 CPU, 2 GB> Lecture-14 Type 2 job <1 CPU, 0. 5 GB> cs 262 a-S 16 Thrashing 64

Reduction in Job Completion Time DRF vs Slots • Simulation of 1 -week Facebook

Reduction in Job Completion Time DRF vs Slots • Simulation of 1 -week Facebook traces 3/7/2016 cs 262 a-S 16 Lecture-14 65

Utilization of DRF vs Slots • Simulation of Facebook workload alig@cs. berkeley. edu 3/7/2016

Utilization of DRF vs Slots • Simulation of Facebook workload alig@cs. berkeley. edu 3/7/2016 cs 262 a-S 16 Lecture-14 66 66

Summary • DRF provides multiple-resource fairness in the presence of heterogeneous demand – First

Summary • DRF provides multiple-resource fairness in the presence of heterogeneous demand – First generalization of max-min fairness to multiple-resources • DRF’s properties – Share guarantee, at least 1/n of one resource – Strategy-proofness, lying can only hurt you – Performs better than current approaches 3/7/2016 cs 262 a-S 16 Lecture-14 67

Is this a good paper? • What were the authors’ goals? • What about

Is this a good paper? • What were the authors’ goals? • What about the evaluation/metrics? • Did they convince you that this was a good system/approach? • Were there any red-flags? • What mistakes did they make? • Does the system/approach meet the “Test of Time” challenge? • How would you review this paper today? 3/7/2016 cs 262 a-S 16 Lecture-14 68