Efficient and Robust Allocation Algorithms in Clouds under Memory Constraints

Similar documents
! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Genetic Algorithms for Energy Efficient Virtualized Data Centers

Martin Bichler, Benjamin Speitkamp

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

A Mathematical Programming Approach for Server Consolidation Problems in Virtualized Data Centers. Benjamin Speitkamp and Martin Bichler

Approximation Algorithms

5 INTEGER LINEAR PROGRAMMING (ILP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Chapter Load Balancing. Approximation Algorithms. Load Balancing. Load Balancing on 2 Machines. Load Balancing: Greedy Scheduling

A Game Theoretic Formulation of the Service Provisioning Problem in Cloud Systems

Virtual Machine Allocation in Cloud Computing for Minimizing Total Execution Time on Each Machine

2004 Networks UK Publishers. Reprinted with permission.

Dantzig-Wolfe bound and Dantzig-Wolfe cookbook

Dynamic Resource allocation in Cloud

QoS optimization for an. on-demand transportation system via a fractional linear objective function

Solving the Vehicle Routing Problem with Multiple Trips by Adaptive Memory Programming

Power Management in Cloud Computing using Green Algorithm. -Kushal Mehta COP 6087 University of Central Florida

Beyond the Stars: Revisiting Virtual Cluster Embeddings

Discrete Optimization

Scheduling using Optimization Decomposition in Wireless Network with Time Performance Analysis

Cloud Management: Knowing is Half The Battle

9th Max-Planck Advanced Course on the Foundations of Computer Science (ADFOCS) Primal-Dual Algorithms for Online Optimization: Lecture 1

Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm

Towards an understanding of oversubscription in cloud

Proximal mapping via network optimization

HYBRID GENETIC ALGORITHMS FOR SCHEDULING ADVERTISEMENTS ON A WEB PAGE

Integer Programming Formulation

Applied Algorithm Design Lecture 5

Falloc: Fair Network Bandwidth Allocation in IaaS Datacenters via a Bargaining Game Approach

Distributed Caching Algorithms for Content Distribution Networks

CHAPTER 1 INTRODUCTION

Multi-dimensional Affinity Aware VM Placement Algorithm in Cloud Computing

Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows

INTEGER PROGRAMMING. Integer Programming. Prototype example. BIP model. BIP models

Algorithm Design and Analysis

Consolidation of VMs to improve energy efficiency in cloud computing environments

Nonlinear Optimization: Algorithms 3: Interior-point methods

Optimization models for targeted offers in direct marketing: exact and heuristic algorithms

INCREASING SERVER UTILIZATION AND ACHIEVING GREEN COMPUTING IN CLOUD

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

11. APPROXIMATION ALGORITHMS

4.6 Linear Programming duality

Load Balancing. Load Balancing 1 / 24

Scheduling Algorithm with Optimization of Employee Satisfaction

The truck scheduling problem at cross-docking terminals

Principles of demand management Airline yield management Determining the booking limits. » A simple problem» Stochastic gradients for general problems

Task Placement in a Cloud with Case-based Reasoning

Revealing the MAPE Loop for the Autonomic Management of Cloud Infrastructures

Dynamic Load Balancing of Virtual Machines using QEMU-KVM

Scheduling Jobs and Preventive Maintenance Activities on Parallel Machines

Flexible Distributed Capacity Allocation and Load Redirect Algorithms for Cloud Systems

Mathematical finance and linear programming (optimization)

How To Design A Cloud Auction

School Timetabling in Theory and Practice

IEOR 4404 Homework #2 Intro OR: Deterministic Models February 14, 2011 Prof. Jay Sethuraman Page 1 of 5. Homework #2

Appendix: Simple Methods for Shift Scheduling in Multi-Skill Call Centers

24. The Branch and Bound Method

Operation Research. Module 1. Module 2. Unit 1. Unit 2. Unit 3. Unit 1

Objective Criteria of Job Scheduling Problems. Uwe Schwiegelshohn, Robotics Research Lab, TU Dortmund University

Nan Kong, Andrew J. Schaefer. Department of Industrial Engineering, Univeristy of Pittsburgh, PA 15261, USA

Lecture 11: 0-1 Quadratic Program and Lower Bounds

Cost Effective Automated Scaling of Web Applications for Multi Cloud Services

Managing Overloaded Hosts for Dynamic Consolidation of Virtual Machines in Cloud Data Centers Under Quality of Service Constraints

Two objective functions for a real life Split Delivery Vehicle Routing Problem

Minimizing costs for transport buyers using integer programming and column generation. Eser Esirgen

An Overview Of Software For Convex Optimization. Brian Borchers Department of Mathematics New Mexico Tech Socorro, NM

A Robust Formulation of the Uncertain Set Covering Problem

Duality in General Programs. Ryan Tibshirani Convex Optimization /36-725

An Improved Dynamic Programming Decomposition Approach for Network Revenue Management

Modeling and Solving the Capacitated Vehicle Routing Problem on Trees

Profit Maximization and Power Management of Green Data Centers Supporting Multiple SLAs

ONE of the often cited benefits of cloud computing

An Energy-aware Multi-start Local Search Metaheuristic for Scheduling VMs within the OpenNebula Cloud Distribution

Characterizing Task Usage Shapes in Google s Compute Clusters

Profit-Maximizing Resource Allocation for Multi-tier Cloud Computing Systems under Service Level Agreements

GeoCloud Project Report USGS/EROS Spatial Data Warehouse Project

A Novel Cloud Based Elastic Framework for Big Data Preprocessing

International Journal of Advance Research in Computer Science and Management Studies

Dynamic Resource Allocation in Software Defined and Virtual Networks: A Comparative Analysis

Multi-core real-time scheduling

Transcription:

Efficient and Robust Allocation Algorithms in Clouds under Memory Constraints Olivier Beaumont,, Paul Renaud-Goud Inria & University of Bordeaux Bordeaux, France 9th Scheduling for Large Scale Systems Workshop

Provider-side allocation Typical Cloud Computing scenario A number of clients submit services to a provider Think of services as commercial websites Services have hardware requirements (CPU, memory, I/O,...) Clients express demands: for each service, enough CPU must be available (serve enough requests per second) Optimization Several services can be allocated to the same Physical Machine (PM) Optimize energy and resource usage: consolidation Allocation of services onto PMs: MultiDimensional Bin Packing Problem

Introducing machine failures Data centers are large Failures will happen Our approach: over-provisioning allocate additional capacity Clients express a reliability requirement expressed as a probability, or as a cost penalty Assumptions Static setting over a given time period (between two migration phases): Compute an allocation at the start of the period During the time period, some machines fail Services should still be running (enough instances) at the end Machines fail independently with probability f

Problem formulation Notations Identical machines, with capacity C and memory M ns services: demands d i, reliability requirement r i, memory m i Variables A i,j : CPU capacity for service i on machine j Alive cpu i = m j=1 is alive j A i,j, where is alive j = 0 with prob. f Formulation minimize m s.t. i, P (Alive cpu i < d i ) < r i j, A i,j >0 m i M j, ns i=1 A i,j C

Two-step algorithm 1 Load Balancing Relaxed formulation to compute resource usage (CPU, memory) for each service so as to satisfy reliability constraints 2 Packing Use column generation techniques to obtain a feasible packing

First step: focus on reliability Approximation by normal distribution Given an allocation A i,j, computing P (Alive cpu i < d i ) is #P-complete. (as hard as counting the # of solutions to a knapsack problem)

First step: focus on reliability Approximation by normal distribution Given an allocation A i,j, computing P (Alive cpu i < d i ) is #P-complete. P (Alive cpu i < d i ) < r i is approx. by m j=1 A i,j B i m j=1 A2 i,j K i

First step: focus on reliability Approximation by normal distribution Given an allocation A i,j, computing P (Alive cpu i < d i ) is #P-complete. P (Alive cpu i < d i ) < r i is approx. by m j=1 A i,j B i m j=1 A2 i,j K i Relaxed formulation (lower bound) minimize m s.t. i, m j=1 A m i,j B i j=1 A2 i,j K i j A i,j >0 m i mm ns j i=1 A i,j mc

First step: focus on reliability Approximation by normal distribution Given an allocation A i,j, computing P (Alive cpu i < d i ) is #P-complete. P (Alive cpu i < d i ) < r i is approx. by m j=1 A i,j B i m j=1 A2 i,j K i Relaxed formulation (lower bound) minimize m s.t. i, m j=1 A m i,j B i j=1 A2 i,j K i j A i,j >0 m i mm ns j i=1 A i,j mc Homogeneous allocations are dominant (A i,j = A i or 0) A i CPU #machines n i

First step: focus on reliability Approximation by normal distribution Given an allocation A i,j, computing P (Alive cpu i < d i ) is #P-complete. P (Alive cpu i < d i ) < r i is approx. by m j=1 A i,j B i m j=1 A2 i,j K i Relaxed formulation (lower bound) i, n i > B i i n im i mm mc i K i 1 B i ni Homogeneous allocations are dominant (A i,j = A i or 0) A i CPU Can be solved for fractional n i. n i #machines

Second step: packing Solve the homogeneous pb to get ideal allocations n i, A i Pack them onto individual machines Remember the approximate formulation i, m j=1 A m i,j B i j=1 A2 i,j K i minimize m s.t. j, A i,j >0 m i M j, ns i=1 A i,j C Splitting a service always improves the first inequality CPU A i #machines n i

Second step: packing Solve the homogeneous pb to get ideal allocations n i, A i Pack them onto individual machines Remember the approximate formulation i, m j=1 A m i,j B i j=1 A2 i,j K i minimize m s.t. j, A i,j >0 m i M j, ns i=1 A i,j C Splitting a service always improves the first inequality Splittable bin packing with memory constraints Allocate n i A i total capacity to service i Chunk of at most A i on each machine Each chunk uses m i memory At most M memory used and C capacity per machine

LP Formulation with configurations Valid configuration C c i, fraction x i,c of the maximum capacity A i devoted to service S i c is valid iff i x i,c C and x i,c >0 m i M Variable λ c : number of machines with this configuration Almost full configurations are enough: x i,c = 1 or 0 except for one service Configuration formulation minimize c F λ c st i, c F λ c x i,c n i

Column generation Primal: minimize c F λ c st i, c F λ c x i,c n i Dual: maximize i n i p i st c F, i x i,c p i 1 Principle: iteratively augment the set of configurations F Start with a small set of configurations Solve the primal, get a sub-optimal solution Find a violated constraint in the dual (splittable knapsack) Add this configuration to the set and loop

Splittable knapsack Splittable knapsack problem Given A i, m i, p i, M and C, Find J and x i such that i J m i M, and i J x ia i C So as to maximize i J x ip i Properties Almost full configurations are dominant. NP-hard (from 2-Part) O(MC) Dynamic Programming algorithm to solve optimally.

Summary Two-step heuristic Compute a homogeneous lower bound n i, A i (binary search) Solve the packing problem Start with a small set of configurations Solve the primal, get a sub-optimal solution Find a violated constraint in the dual (splittable knapsack) Add this configuration to the set and loop

Experimental evaluation Setting Memory and CPU usage from public Google trace 150 jobs account for 90% of resource usage r i = 10 X, with X U(2, 8) f = 0.01 NoSharing heuristic Computes homogeneous allocations with i, A i = C Exactly one service per machine

Experimental results: number of machines Ratio of machines used to lower bound 1.15 1.10 1.05 Algorithm NoSharing ColumnGeneration 1.00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Time interval Running time of ColumnGeneration: mean 14.6s, max 22.2s

Experimental results: execution time Time (seconds) 1250 1000 750 500 250 0 0 200 400 600 800 Number of services Number of configurations generated 2500 2000 1500 1000 500 0 0 200 400 600 800 Number of services

Conclusions Explored allocation problems with reliability constraints Binomial approximation allows a good lower bound Reformulations & column generation give good heuristics Further directions Extensions: multi-dimensional (CPU + IO), heterogeneous machines,... Migrations for dynamic setting Recycle the techniques for other problems