CS Advanced Operating Systems Structures and Implementation Lecture 18. Dominant Resource Fairness Two-Level Scheduling.

Similar documents
Today s Papers. Composability is Essential. The Future is Parallel Software. EECS 262a Advanced Topics in Computer Systems Lecture 13

Swarm at the Edge of the Cloud. John Kubiatowicz UC Berkeley Swarm Lab September 29 th, 2013

Tessellation OS. Present and Future. Juan A. Colmenares, Sarah Bird, Andrew Wang, Krste Asanovid, John Kubiatowicz [Parallel Computing Laboratory]

Lithe: Enabling Efficient Composition of Parallel Libraries

Key aspects of cloud computing. Towards fuller utilization. Two main sources of resource demand. Cluster Scheduling

Practical Considerations for Multi- Level Schedulers. Benjamin

Ali Ghodsi, Matei Zaharia, Benjamin Hindman, Andy Konwinski, Scott Shenker, Ion Stoica. University of California, Berkeley nsdi 11

CS Advanced Operating Systems Structures and Implementation Lecture 13. Two-Level Scheduling (Con t) Segmentation/Paging/Virtual Memory

FairRide: Near-Optimal Fair Cache Sharing

Mesos: Mul)programing for Datacenters

Key aspects of cloud computing. Towards fuller utilization. Two main sources of resource demand. Cluster Scheduling

Mesos: A Pla+orm for Fine- Grained Resource Sharing in the Data Center

PROCESS SCHEDULING II. CS124 Operating Systems Fall , Lecture 13

Tessellation: Space-Time Partitioning in a Manycore Client OS

Scheduling II. Today. Next Time. ! Proportional-share scheduling! Multilevel-feedback queue! Multiprocessor scheduling. !

Composing Parallel Software Efficiently with Lithe

CPU Scheduling. Daniel Mosse. (Most slides are from Sherif Khattab and Silberschatz, Galvin and Gagne 2013)

IX: A Protected Dataplane Operating System for High Throughput and Low Latency

Towards a codelet-based runtime for exascale computing. Chris Lauderdale ET International, Inc.

Scheduling, part 2. Don Porter CSE 506

238P: Operating Systems. Lecture 14: Process scheduling

CS 326: Operating Systems. CPU Scheduling. Lecture 6

CPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University

Distributed File Systems Issues. NFS (Network File System) AFS: Namespace. The Andrew File System (AFS) Operating Systems 11/19/2012 CSC 256/456 1

Multimedia Systems 2011/2012

Overview Computer Networking What is QoS? Queuing discipline and scheduling. Traffic Enforcement. Integrated services

Introduction to Computer Science

Department of Computer Science Institute for System Architecture, Operating Systems Group REAL-TIME MICHAEL ROITZSCH OVERVIEW

Chapter 3 Virtualization Model for Cloud Computing Environment

Task Scheduling of Real- Time Media Processing with Hardware-Assisted Virtualization Heikki Holopainen

SHARCNET Workshop on Parallel Computing. Hugh Merz Laurentian University May 2008

Uniprocessor Scheduling. Basic Concepts Scheduling Criteria Scheduling Algorithms. Three level scheduling

Exploring the Throughput-Fairness Trade-off on Asymmetric Multicore Systems

Real-Time Internet of Things

CHAPTER 2: PROCESS MANAGEMENT

Recap. Run to completion in order of arrival Pros: simple, low overhead, good for batch jobs Cons: short jobs can stuck behind the long ones

RESOURCE MANAGEMENT MICHAEL ROITZSCH

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

ECE 598 Advanced Operating Systems Lecture 22

3. Quality of Service

Multiprocessor scheduling

!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced?

TDDD82 Secure Mobile Systems Lecture 6: Quality of Service

Operating Systems. Process scheduling. Thomas Ropars.

Multimedia-Systems. Operating Systems. Prof. Dr.-Ing. Ralf Steinmetz Prof. Dr. rer. nat. Max Mühlhäuser Prof. Dr.-Ing. Wolfgang Effelsberg

Lecture 2: September 9

Operating Systems (2INC0) 2018/19. Introduction (01) Dr. Tanir Ozcelebi. Courtesy of Prof. Dr. Johan Lukkien. System Architecture and Networking Group

Empirical Evaluation of Latency-Sensitive Application Performance in the Cloud

Processes. CS 475, Spring 2018 Concurrent & Distributed Systems

Implementing Scheduling Algorithms. Real-Time and Embedded Systems (M) Lecture 9

Service Mesh and Microservices Networking

Operating Systems. Scheduling

Processes. Overview. Processes. Process Creation. Process Creation fork() Processes. CPU scheduling. Pål Halvorsen 21/9-2005

Practice Exercises 305

CSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable)

Operating System Support for Multimedia. Slides courtesy of Tay Vaughan Making Multimedia Work

What s An OS? Cyclic Executive. Interrupts. Advantages Simple implementation Low overhead Very predictable

CS3733: Operating Systems

CS Computer Systems. Lecture 6: Process Scheduling

CSE 120 Principles of Operating Systems

CS2506 Quick Revision

PROCESS SCHEDULING Operating Systems Design Euiseong Seo

QoS support for Intelligent Storage Devices

Why Study Multimedia? Operating Systems. Multimedia Resource Requirements. Continuous Media. Influences on Quality. An End-To-End Problem

Lecture 2: Memory Systems

CS 31: Intro to Systems Threading & Parallel Applications. Kevin Webb Swarthmore College November 27, 2018

8th Slide Set Operating Systems

CIS Operating Systems Memory Management Cache. Professor Qiang Zeng Fall 2017

Link Aggregation: A Server Perspective

Lecture notes Lectures 1 through 5 (up through lecture 5 slide 63) Book Chapters 1-4

Multiprocessor and Real-Time Scheduling. Chapter 10

AUTOMATIC SMT THREADING

Chapter -5 QUALITY OF SERVICE (QOS) PLATFORM DESIGN FOR REAL TIME MULTIMEDIA APPLICATIONS

No Tradeoff Low Latency + High Efficiency

Lecture 10.1 A real SDN implementation: the Google B4 case. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

Overview SENTINET 3.1

Frequently asked questions from the previous class survey

PROCESSES AND THREADS THREADING MODELS. CS124 Operating Systems Winter , Lecture 8

Notes based on prof. Morris's lecture on scheduling (6.824, fall'02).

A common scenario... Most of us have probably been here. Where did my performance go? It disappeared into overheads...

Example: CPU-bound process that would run for 100 quanta continuously 1, 2, 4, 8, 16, 32, 64 (only 37 required for last run) Needs only 7 swaps

Fractal: A Software Toolchain for Mapping Applications to Diverse, Heterogeneous Architecures

CPU Scheduling. The scheduling problem: When do we make decision? - Have K jobs ready to run - Have N 1 CPUs - Which jobs to assign to which CPU(s)

Operating Systems. Lecture Process Scheduling. Golestan University. Hossein Momeni

ECE 669 Parallel Computer Architecture

Timers 1 / 46. Jiffies. Potent and Evil Magic

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria

Center for Scalable Application Development Software (CScADS): Automatic Performance Tuning Workshop

CSCI-GA Operating Systems Lecture 3: Processes and Threads -Part 2 Scheduling Hubertus Franke


Administration. Course material. Prerequisites. CS 395T: Topics in Multicore Programming. Instructors: TA: Course in computer architecture

Lecture 2 Process Management

Operating systems Architecture

OVERVIEW. Last Week: But if frequency of high priority task increases temporarily, system may encounter overload: Today: Slide 1. Slide 3.

Memory - Paging. Copyright : University of Illinois CS 241 Staff 1

Windows 7 Overview. Windows 7. Objectives. The History of Windows. CS140M Fall Lake 1

Four Components of a Computer System

PAC094 Performance Tips for New Features in Workstation 5. Anne Holler Irfan Ahmad Aravind Pavuluri

The Use of Cloud Computing Resources in an HPC Environment

Performance Tools for Technical Computing

Transcription:

Goals for Today CS194-24 Advanced Operating Systems Structures and Implementation Lecture 18 Dominant Resource Fairness Two-Level Scheduling April 7 th, 2014 Prof. John Kubiatowicz http://inst.eecs.berkeley.edu/~cs194-24 DRF Lithe Two-Level Scheduling/Tessellation Interactive is important! Ask Questions! Note: Some slides and/or pictures in the following are adapted from slides 2013 Lec 18.2 Recall: CFS (Continued) Idea: track amount of virtual time received by each process when it is executing Take real execution time, scale by weighting factor» Lower priority real time divided by smaller weight Keep virtual time advancing at same rate among processes. Thus, scaling factor adjusts amount of CPU time/process More details Weights relative to Nice-value 0» Relative weights~: (1.25) -nice» vruntime = runtime/relative_weight Processes with nice-value 0» vruntime advances at same rate as real time Processes with higher nice value (lower priority)» vruntime advances at faster rate than real time Processes with lower nice value (higher priority)» vruntime advances at slower rate than real time Lec 18.3 Recall: EDF: Schedulability Test Theorem (Utilization-based Schedulability Test): A task set T, T with is schedulable by the, 1 2, T n Di Pi earliest deadline first (EDF) scheduling algorithm if i 1 Ci Di 1 Exact schedulability test (necessary + sufficient) Proof: [Liu and Layland, 1973] n Lec 18.4

Recall: Constant Bandwidth Server Intuition: give fixed share of CPU to certain of jobs Good for tasks with probabilistic resource requirements Basic approach: Slots (called servers ) scheduled with EDF, rather than jobs CBS Server defined by two parameters: Q s and T s Mechanism for tracking processor usage so that no more than Q s CPU seconds used every T s seconds when there is demand. Otherwise get to use processor as you like Since using EDF, can mix hard-realtime and soft realtime: What is Fair Sharing? n users want to share a resource (e.g., CPU) Solution: Allocate each 1/n of the shared resource Generalized by max-min fairness Handles if a user wants less than its fair share E.g. user 1 wants no more than 2 Generalized by weighted max-min fairness Give weights to users according to importance User 1 gets weight 1, user 2 weight 2 10 10 10 CPU 33 33 33 2 40 40 33 66 Lec 18.5 Lec 18.6 Why is Fair Sharing Useful? Properties of Max-Min Fairness Weighted Fair Sharing / Proportional Shares User 1 gets weight 2, user 2 weight 1 Priorities Give user 1 weight 1000, user 2 weight 1 Revervations Ensure user 1 gets 1 of a resource Give user 1 weight 10, sum weights 100 Isolation Policy Users cannot affect others beyond their fair share 10 10 66 33 CPU 10 50 40 CPU 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 Lec 18.7 Lec 18.8

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,... 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? Many schedulers use max-min fairness Datacenters: Hadoop s fair sched, capacity, Quincy OS: rr, prop sharing, lottery, linux cfs,... Networking: wfq, wf2q, sfq, drr, csfq,... Lec 18.9 Lec 18.10 Heterogeneous Resource Demands Problem Some tasks are CPU-intensive Most task need ~ <2 CPU, 2 GB RAM> Some tasks are memory-intensive Single resource example 1 resource: CPU User 1 wants <1 CPU> per task User 2 wants <3 CPU> per task 10 10 50 50 CPU 2000-node Hadoop Cluster at Facebook (Oct 2010) Lec 18.11 Multi-resource example 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??? CPU mem Lec 18.12

Model Problem definition How to fairly share multiple resources when users have heterogeneous demands on them? 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 Lec 18.13 Lec 18.14 A Natural Policy: Asset Fairness Share Guarantee Asset Fairness Equalize each user s sum of resource shares Problem User Cluster 1 has < with of 70 both CPUs, CPUs 70 and GB RAM RAM Better U off 1 needs in a separate <2 CPU, 2 cluster GB RAM> with per task of the resources U 2 needs <1 CPU, 2 GB RAM> per task Asset fairness yields U 1 : 15 tasks: 30 CPUs, 30 GB ( =60) U 2 : 20 tasks: 20 CPUs, 40 GB ( =60) 10 User 1 User 2 43 43 57 28 CPU RAM Every user should get 1/n of at least one resource Intuition: You shouldn t be worse off than if you ran your own cluster with 1/n of the resources Lec 18.15 Lec 18.16

Desirable Fair Sharing Properties Cheating the Scheduler Many desirable properties Share Guarantee Strategy proofness Envy-freeness Pareto efficiency Single-resource fairness Bottleneck fairness Population monotonicity Resource monotonicity DRF focuses on these properties 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. 8)» Users used busy-loops to inflate utilization Lec 18.17 Lec 18.18 Two Important Properties Challenge 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 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 Lec 18.19 Lec 18.20

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) 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 A user s dominant share is the fraction of the dominant resource she is allocated User 1 s dominant share is 25 (1/4) 10 3 CPUs 12 GB 66 66 User 1 User 2 6 CPUs 2 GB CPU (9 total) mem (18 total) Lec 18.21 Lec 18.22 DRF is Fair Online DRF Scheduler DRF is strategy-proof DRF satisfies the share guarantee DRF allocations are envy-free See DRF paper for proofs Whenever there are 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 Lec 18.23 Lec 18.24

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 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 Not strategy-proof! Lec 18.25 Lec 18.26 DRF vs CEEI Example of DRF vs Asset vs CEEI User 1: <1 CPU, 4 GB> User 2: <3 CPU, 1 GB> DRF more fair, CEEI better utilization Resources <1000 CPUs, 1000 GB> 2 users A: <2 CPU, 3 GB> and B: <5 CPU, 1 GB> 10 Dominant Resource Fairness Competitive Equilibrium from Equal Incomes 10 10 Dominant Resource Fairness 10 Competitive Equilibrium from Equal Incomes 10 10 10 User A 66 66 55 91 user 1 user 2 66 66 60 80 User B CPU mem CPU mem CPU mem User 1: <1 CPU, 4 GB> User 2: <3 CPU, 2 GB> User 2 increased her share of both CPU and memory CPU mem CPU Mem CPU Mem CPU Mem a) DRF b) Asset Fairness c) CEEI Lec 18.27 Lec 18.28

Composability is Essential Motivational Example App 1 App 2 App Sparse QR Factorization (Tim Davis, Univ of Florida) BLAS BLAS code reuse same library implementation, different apps MKL BLAS modularity same app, different library implementations Goto BLAS Column Elimination Tree Frontal Matrix Factorization SPQR TBB OS Hardware MKL OpenMP Composability is key to building large, complex apps. Software Architecture System Stack Lec 18.29 Lec 18.30 TBB, MKL, OpenMP 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 OpenMP for parallelism OpenMP 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 OpenMP from GNU (libgomp) Suboptimal Performance Performance of SPQR on 16-core AMD Opteron System Speedup over Sequential 6 5 4 3 Out-of-the-Box 2 1 0 deltax landmark ESOC Rucci Matrix Lec 18.31 Lec 18.32

Out-of-the-Box Configurations Providing Performance Isolation Using Intel MKL with Threaded Applications http://www.intel.com/support/performancetools/libraries/mkl/sb/cs-017177.htm Core 0 Core 1 Core 2 Core 3 TBB OpenMP OS virtualized kernel threads Hardware Lec 18.33 Lec 18.34 Tuning the Code Partition Resources Performance of SPQR on 16-core AMD Opteron System Speedup over Sequential 6 5 4 3 2 1 Out-of-the-Box Serial MKL Core 0 TBB OS Core 1 Core 2 OpenMP Core 3 0 deltax landmark ESOC Rucci Hardware Matrix Tim Davis tuned SPQR by manually partitioning the resources. Lec 18.35 Lec 18.36

Tuning the Code (continued) Harts: Hardware Threads Performance of SPQR on 16-core AMD Opteron System virtualized kernel threads harts Speedup over Sequential 6 5 4 3 2 1 0 deltax landmark ESOC Rucci Matrix Out-of-the-Box Serial MKL Tuned OS Core 0 Core 1 Core 2 Core 3 OS Core 0 Core 1 Core 2 Core 3 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 time-multiplex harts of the same application Lec 18.37 Lec 18.38 Sharing Harts (Dynamically) How to Share Harts? call graph CLR scheduler hierarchy CLR TBB Cilk TBB Cilk OMP OpenMP time TBB OS Hardware OpenMP Hierarchically: Caller gives resources to callee to execute Cooperatively: Callee gives resources back to caller when done Lec 18.39 Lec 18.40

A Day in the Life of a Hart Lithe (ABI) CLR TBB Sched: next? TBB OpenMP Cilk executetbb task TBB Sched: next? TBB SchedQ Parent Cilk TBB Scheduler enter yield request register unregister interface for sharing harts Caller call return interface for exchanging values Non-preemptive scheduling. execute TBB task TBB Sched: next? nothing left to do, give hart back to paren enter yield request register unregister Child TBB OpenMP Scheduler call Callee return CLR Sched: next? Cilk Sched: next? time Lec 18.41 Analogous to function call ABI for enabling interoperable codes. Lec 18.42 Putting It All Together Flickr-Like App Server Lithe-TBB SchedQ func(){ register(tbb); Lithe-TBB SchedQ Lithe-TBB SchedQ App Server } request(2); unregister(tbb); enter(tbb); yield(); enter(tbb); yield(); Libprocess Graphics Magick OpenMP Lithe (Lithe) time Tradeoff between throughput saturation point and latency. Lec 18.43 44 Lec 18.44

Case Study: Sparse QR Factorization Case Study: Sparse QR Factorization ESOC Rucci deltax landmark Tuned: 70.8 Tuned: 360.0 Tuned: 14.5 Tuned: 2.5 Out-of-the-box: 111.8 Out-of-the-box: 576.9 Out-of-the-box: 26.8 Out-of-the-box: 4.1 Sequential: 172.1 Sequential: 970.5 Sequential: 37.9 Sequential: 3.4 Lithe: 66.7 Lithe: 354.7 Lithe: 13.6 Lithe: 2.3 Lec 18.45 Lec 18.46 The Swarm of Resources Support for Applications Enterprise Services Cloud Services The Local Swarm What system structure required to support Swarm? Discover and Manage resource Integrate sensors, portable devices, cloud components Guarantee responsiveness, real-time behavior, throughput Self-adapting to adjust for failure and performance predictability Uniformly secure, durable, available data Lec 18.47 Clearly, new Swarm applications will contain: Direct interaction with Swarm and Cloud services» Potentially extensive use of remote services» Serious security/data vulnerability concerns Real Time requirements» Sophisticated multimedia interactions» Control of/interaction with health-related devices Responsiveness Requirements» Provide a good interactive experience to users Explicitly parallel components» However, parallelism may be hard won (not embarrassingly parallel)» Must not interfere with this parallelism What support do we need for new Swarm applications? No existing OS handles all of the above patterns well!» A lot of functionality, hard to experiment with, possibly fragile,» Monolithic resource allocation, scheduling, memory management Need focus on resources, asynchrony, composability Lec 18.48

Resource Allocation must be Adaptive Three applications: 2 Real Time apps (RayTrace, Swaptions) 1 High-throughput App (Fluidanimate) Lec 18.49 Guaranteeing Resources Guaranteed Resources Stable software components Good overall behavior What might we want to guarantee? Physical memory pages BW (say data committed to Cloud Storage) Requests/Unit time (DB service) Latency to Response (Deadline scheduling) Total energy/battery power available to Cell What does it mean to have guaranteed resources? Firm Guarantee (with high confidence, maximum deviation, etc) A Service Level Agreement (SLA)? Something else? Impedance-mismatch problem The SLA guarantees properties that programmer/user wants The resources required to satisfy SLA are not things that programmer/user really understands Lec 18.50 New Abstraction: the Cell Properties of a Cell A user-level software component with guaranteed resources Has full control over resources it owns ( Bare Metal ) Contains at least one memory protection domain (possibly more) Contains a set of secured channel endpoints to other Cells Hardware-enforced security context to protect the privacy of information and decrypt information (a Hardware TCB) Each Cell schedules its resources exclusively with applicationspecific user-level schedulers Gang-scheduled hardware thread resources ( Harts ) Virtual Memory mapping and paging Storage and Communication resources» Cache partitions, memory bandwidth, power Use of Guaranteed fractions of system services Predictability of Behavior Ability to model performance vs resources Ability for user-level schedulers to better provide QoS Lec 18.51 Applications are Interconnected Graphs of Services Real-Time Cells (Audio, Video) Secure Channel Secure Channel Secure Channel Parallel Core Application Library Component-based model of computation Applications consist of interacting components Explicitly asynchronous/non-blocking Components may be local or remote Communication defines Security Model Channels are points at which data may be compromised Channels define points for QoS constraints Naming (Brokering) process for initiating endpoints Need to find compatible remote services Continuous adaptation: links changing over time! Device Drivers File Service Lec 18.52

Impact on the Programmer Connected graph of Cells Object-Oriented Programming Lowest-Impact: Wrap a functional interface around channel» Cells hold Objects, Secure channels carry RPCs for method calls» Example: POSIX shim library calling shared service Cells Greater Parallelism: Event triggered programming Shared services complicate resource isolation: How to guarantee that each client gets guaranteed fraction of service? Distributed resource attribution (application as distributed graph) Application A Application B Shared File Service Allocation of Resources Discovery, Distribution, and Adaptation Must somehow request the right number of resources Analytically? AdHoc Profiling? Over commitment of resources? Clearly doesn t make it easy to adapt to changes in environment Lec 18.53 Lec 18.54 Two Level Scheduling: Control vs Data Plane Adaptive Resource-Centric Computing (ARCC) Monolithic CPU and Resource Scheduling Resource Allocation And Distribution Two-Level Scheduling Application Specific Scheduling Split monolithic scheduling into two pieces: Course-Grained Resource Allocation and Distribution to Cells» Chunks of resources (CPUs, Memory Bandwidth, QoS to Services)» Ultimately a hierarchical process negotiated with service providers Fine-Grained (User-Level) Application-Specific Scheduling» Applications allowed to utilize their resources in any way they see fit» Performance Isolation: Other components of the system cannot interfere with Cells use of resources Resource Allocation (Control Plane) Partitioning and Distribution Resource Assignments Running System (Data Plane) Application1 Channel GUI Service QoS-aware Scheduler Block Service QoS-aware Scheduler Network Service QoS-aware Scheduler Observation and Modeling Channel Performance Reports Application2 Lec 18.55 Lec 18.56

Resource Allocation Goal: Meet the QoS requirements of a software component (Cell) Behavior tracked through applicationspecific heartbeats and systemlevel monitoring Dynamic exploration of performance space to find operation points Complications: Many cells with conflicting requirements Finite Resources Hierarchy of resource ownership Context-dependent resource availability Stability, Efficiency, Rate of Convergence, Execution Execution Execution Execution Execution Modeling Modeling Models Adaptation Evaluation Modeling and Models State Adaptation Evaluation Modeling and Models State Adaptation Evaluation Modeling and Models Models State Adaptation Evaluationand State Adaptation Evaluationand State Resource Discovery, Access Control, Advertisement Lec 18.57 + Tackling Multiple Requirements: Express as Convex Optimization Problem 58 Continuously minimize using the penalty of the system (subject to restrictions on the total amount of resources) Penalty 1 Penalty 2 Penalty i Penalty Function Runtime 1 Runtime 2 Resource-Value Function Runtime 1 (r (0,1),, r (n-1,1) ) Runtime 2 (r (0,2),, r (n-1,2) ) Runtime Runtime i (r (0,i),, r (n-1,i) ) i Lec 18.58 Speech Graph Stencil Sibling Broker Parent Broker Local Broker Brokering Service: The Hierarchy of Ownership Discover Resources in Domain Devices, Services, Other Brokers Resources self-describing? Allocate and Distribute Resources to Cells that need them Solve Impedance-mismatch problem Dynamically optimize execution Hand out Service-Level Child Agreements (SLAs) to Cells Broker Deny admission to Cells when violates existing agreements Complete hierarchy Throughout world graph of applications Lec 18.59 Spatial Partition: Performance isolation Each partition receives a vector of basic resources» A number HW threads» Chunk of physical memory» A portion of shared cache» A fraction of memory BW» Shared fractions of services Space-Time Partitioning Cell Space Time Partitioning varies over time Fine-grained multiplexing and guarantee of resources» Resources are gang-scheduled Controlled multiplexing, not uncontrolled virtualization Partitioning adapted to the system s needs Lec 18.60

Communication-Avoiding Gang Scheduling Multiplexer Gang Scheduling Algorithm Core 0 Efficient Space-Time Partitioning Multiplexer Gang Scheduling Algorithm Core 1 Multiplexer Gang Scheduling Algorithm Core 2 Multiplexer Gang Scheduling Algorithm Core 3 Supports a variety of Cell types with low overhead Cross between EDF (Earliest Deadline First) and CBS (Constant Bandwidth Server) Multiplexers do not communicate because they use synchronized clocks with sufficiently high precision Not Muxed Identical or Consistent Schedules Lec 18.61 Adaptive, Second-Level Preemptive Scheduling Framework PULSE: Preemptive User-Level SchEduling Framework for adaptive, premptive schedulers: Dedicated access to processor resources Timer Callback and Event Delivery User-level virtual memory mapping User-level device control Auxiliary Scheduler: Interface with policy service Runs outstanding scheduler contexts past synchronization points when resizing happens 2nd-level Schedulers not aware of existence of the Auxiliary Scheduler, but receive resize events A number of adaptive schedulers have already been built: Round-Robin, EDF, CBS, Speed Balancing Application Adaptive Preemptive Scheduler Auxiliary Scheduler PULSE Preemptive User- Level SchEduling Framework Lec 18.62 Example: Tesselation GUI Service Composite Resource with Greatly Improved QoS QoS-aware Scheduler Operate on user-meaningful actions E.g. draw frame, move window Service time guarantees (soft real-time) Differentiated service per application E.g. text editor vs video Performance isolation from other applications Lec 18.63 Nano-X/ Linux Nano-X/ Tess GuiServ(1)/ Tess GuiServ(2)/ GuiServ(4)/ Tess Tess Lec 18.64

Feedback Driven Policies Simple Policies do well but online exploration can cause oscillations in performance Example: Video Player interaction with Network Server or GUI changes between high and low bit rate Goal: set guaranteed network rate: Alternative: Application Driven Policy Static models Let network choose when to decrease allocation Application-informed metrics such as needed BW Lec 18.65 Policy Service Cell Creation and Resizing Requests From Users Cel l Admissio n Control Minor ACK/NACK Changes Space-Time Resource Graph (STRG) All system resource s Cell group with fraction of resources Cel l Partition Mapping and STRG Validator Multiplexing Resource Planner Layer Architecture of Tessellation OS Cel l Cel l Major Change Request ACK/NAC K Resource Allocation And Adaptation Mechanism Offline Models and Behavioral Parameters (Current Resources) Partition Multiplexing Partition Partition QoS Channel Mechanism ImplementationEnforcementAuthenticator Layer Global Policies / User Policies and Preferences Online Performance Monitoring, Model Building, and Prediction Tessellation Kernel (Trusted) TPM/ Network Cache/ Physical Performance Cores CryptoBandwidthLocal StoreMemory NICs Counters 4/7/14 Partitionable Kubiatowicz (and CS194-24 Trusted) UCB Fall Hardware 2014 Cell #1 Cell #2 Cell #3 User/System Partition #1 Partition #2 Partition #3 Lec 18.66 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 User-Level Scheduling (e.g. Lithe) Adopt scheduling of resources with application knowledge Smooth handoff of processor resources from main application to parallel libraries Adaptive Resource-Centric Computing Use of Resources negotiated hierarchically Underlying Execution environment guarantees QoS New Resources constructed from Old ones:» Aggregate resources in combination with QoS-Aware Scheduler» Result is a new resource that can be negotiated for Continual adaptation and optimization Lec 18.67