resource allocation & control engine (race)

23
Resource Allocation & Resource Allocation & Control Engine Control Engine (RACE) (RACE) Dr. Douglas C. Schmidt [email protected] www.dre.vanderbilt.edu/~schmidt Vanderbilt University Nashville, Tennessee Institute for Software Integrated Systems Nishanth Shankar [email protected] www.dre.vanderbilt.edu/~nshankar Jai Balasubramanian [email protected] www.dre.vanderbilt.edu/~jai

Upload: cissy

Post on 07-Jan-2016

37 views

Category:

Documents


1 download

DESCRIPTION

Institute for Software Integrated Systems. Vanderbilt University Nashville, Tennessee. Resource Allocation & Control Engine (RACE). Nishanth Shankar [email protected] www.dre.vanderbilt.edu/~nshankar. Jai Balasubramanian [email protected] www.dre.vanderbilt.edu/~jai. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Resource Allocation &  Control Engine (RACE)

Resource Allocation & Resource Allocation & Control EngineControl Engine

(RACE)(RACE)

Dr. Douglas C. Schmidt [email protected]

www.dre.vanderbilt.edu/~schmidt

Vanderbilt University Nashville, Tennessee

Institute for Software Integrated

Systems

Nishanth [email protected]

www.dre.vanderbilt.edu/~nshankar

Jai [email protected]

www.dre.vanderbilt.edu/~jai

Page 2: Resource Allocation &  Control Engine (RACE)

2RACERACE

Mission Planner (IA + ASM)• Decompose mission goal(s) into

tasks • Implement tasks as CORBA

components• Deploy components using

CIAO/DAnCE middlewareCondition Monitors• Observe mission performance

System Resource Monitors • Observe resource utilization

• System wide• Per application basis

Adaptive Resource Manager• Allocate resources to new

components – Resource Allocator• Modify existing component

deployment based on system performance – ASM

How RACE fits with ARMS Mission Scenario

Mission Goals

Mission Planner

Condition

Monitors

Physical Resources

System ResourceMonitors

Adaptive Resource Manager

Mission Performance

Deployment(in) feasible & (un) successful

SystemStatus

System Performance

Deploy components

Page 3: Resource Allocation &  Control Engine (RACE)

3RACERACE

Genesis of RACE (1/2)Context

• Deploy components

• Varying resource requirements

• Varying resource availability/capability

• Need for resource allocation

• Bootstrap system

• Need for adaptation

• Changes in mission goals (modes) as execution progresses

• Changes in mission goals because tasks cannot be completed on time

• Degradation in system performance

• Task execution times & resource requirements may be revised dynamically

Application Components with Varying Resource

Requirements

Target Platform with Varying Resource

Availabilities & Capabilities

Multiple Resource Allocation Algorithms

Uniform interface to parse component

requirements

Uniform interface to deploy components

Page 4: Resource Allocation &  Control Engine (RACE)

4RACERACE

Problem• Develop effective allocation &

adaptation algorithms (policies)• Implement allocation & adaptation

algorithms (mechanisms)• Tight coupling between policies &

mechanisms• Monolithic implementations

increases memory footprint & complexity

Solution• Separation of concerns

• e.g., separate policy & mechanism• Framework support for plugging in

allocation/adaptation algorithms

Resource Allocation & Control Engine (RACE)

Application Components WithVarying Resource Requirements

Target Platform With Varying

Resource Availabilities

& Capabilities

Allocation Algorithms

Adaptation Algorithms

Uniform interface to parse component

requirements

Uniform interface to deploy components

Resource Allocation &Control Engine (RACE)

Genesis of RACE (2/2)

Page 5: Resource Allocation &  Control Engine (RACE)

5RACERACE

Why RACE/DAnCE for ARMS ? (1/2)• ARMS’ Primary Goal

• Develop Adaptive Resource Management technology for DD(X)• Research Goals

• Develop general general purpose Adaptive Resource Management into standardized software services

• Benefits• Life of technology is not limited to the lifetime of ARMS program • MLRM technology can be reused in other areas research other than

ARMS• Increases ease of technology transfer to DD(X) if DRM capability is

available via standardized service compared to custom application architectures

• Leverages the latest development in CCM technology, and potentially enhances it

• As DARPA PM Joseph Cross says: • “We deliver Technology, and not Software!”• “If we can improve the design, lets improve it as now is the time to do

so!”

Page 6: Resource Allocation &  Control Engine (RACE)

6RACERACE

Why RACE/DAnCE for ARMS ? (2/2)• Limitations with current MLRM infrastructure

• Software Architecture for Phase I MLRM is brittle and difficult to reuse in contexts outside ARMS

• Provide custom services for functions where emerging standardized services are available

• e.g. Node Provisioner is a ARMS Node Daemon in DnC specification• Provides an all or nothing solution

• Can not reuse individual component such as AMS, IA, or Pool Manager separately out slide the MLRM framework

• Proposed Approach• Package ARMS adaptive resource management capabilities into a set of a

modular, general purpose, DnC spec compliant / coordinated services• RACE

• Design framework for plugging algorithms specializing in resource allocation and adaptive resource management

• Provides an abstraction to address the interdependencies between resource allocation and string management in a scalable and configurable manner

• Is NOT • One monolithic software application• Algorithms or the core science

Page 7: Resource Allocation &  Control Engine (RACE)

7RACERACE

Overview of RACE• Resource allocation framework atop DAnCE

• Generate deployment plans to allocate components to available resources

• Configure components to satisfy QoS requirements based on dynamic mission goals

• Run-time adaptation

• Coarse-grained mechanisms

• React to new missions, drastic changes in mission goals, or unexpected circumstances such as loss of resources

• e.g., component re-allocation or migration

• Fine-grained mechanisms

• Compensate for drift & smaller variations in resource usage

• e.g., adjustment of application parameters such as QoS settings

Application Components With Varying Resource

Requirements

CIAO/DAnCE

Resource Allocation &Control Engine (RACE)

Uniform Interface to parse Component

Requirements

Target Domain

Deploy & Configure

Components

Deploy on Target

Monitor & Adapt

Page 8: Resource Allocation &  Control Engine (RACE)

8RACERACE

Overview of RACE Architecture

Deployment Manager

• Collects target domain utilization periodically

• Uses a configured resource allocation algorithm & makes new deployment planning decisions

Target Manager

• Collects utilization information about various domain resources

• Allow efficient retrieval of resource utilization information about the domain & individual nodes

Resource Monitors

• Tracks use of individual resources

Deployment Manager

Target Domain

Deploy on target

Resource utilization

Domain resourceutilization

Target Manager

Monitors

Plug & play framework for resource allocation & adaptation algorithms

CIAO/DAnCE

Deploy & configure components

Page 9: Resource Allocation &  Control Engine (RACE)

9RACERACE

Detailed RACE ArchitectureDeployment Manager

• CCM component that encapsulates a configurable framework

• Deploy application components

• Allocate resources to components

• Configure application QoS parameters

• Pluggable resource allocation algorithms

• Manage overall system performance

• Resource utilization

• Maintains system resource utilization within specified bounds

• Application performance

• Ensure desired application performance by tuning different QoS parameters

• Pluggable adaptation algorithmsApplicationComponent

Target Domain

Monitor Monitor Monitor

Data Ready

Target Manager

Deployment Manager

ApplicationComponent

Utilization Data

Page 10: Resource Allocation &  Control Engine (RACE)

10RACERACE

Detailed RACE Architecture•Target Manager• CCM component that receives periodic resource

updates from monitors• One per domain• Tracks resource usage of all resources in the

domain• Uniform interfaces for retrieving information

• From individual components• From the whole component assembly

•Resource Monitors• CORBA components/objects• >= 1 monitor per domain resource• Periodically observe resource utilization per

application and/or overall system utilization• e.g. of resource monitors

• CPU utilization monitor• Network bandwidth utilization monitor• Memory utilization monitor

ApplicationComponent

Target Domain

Monitor Monitor Monitor

Data Ready

Target Manager

Deployment Manager

ApplicationComponent

Utilization Data

Page 11: Resource Allocation &  Control Engine (RACE)

11RACERACE

Deployment Manager

Core

Assembly FeatureLookupTable

Allocators Adapters

Allocation HistoryDecorators

• Implemented as CCM assembly-based component containing the following individual (monolithic) components

• Allocators• Plug-in points for Resource Allocation

algorithms• Adapters

• Plug-in point for Adaptation algorithms• Manage system/application performance

• Lookup Table • Associates assembly with the allocation &

adaptation algorithm• Decorators

• Weave resource/application monitors into assembly

• Allocation History & System State• History of previous allocation & current

resource allocation

Deployment Manager Design

Page 12: Resource Allocation &  Control Engine (RACE)

12RACERACE

Application components from Mission Planner

Descriptors of assembly/components

to be deployed

CIAO/DAnCE

Component Information

Ready

Fetch Component Information

Deployment Plan

Deploy Components

Application Data

Modify Application Property

ResourceUtilization

Ready

SystemResourceUtilization

XML Parser

ResourceUtilization

Deploy Components/Modify Components

Domain Resources

Target Manager

Deployment Manager

CoreAssembly FeatureLookupTable

Allocators Adapters

RACE Runtime View• Receives component assembly to

deploy from the planning module in the form of XML descriptors & parses those descriptors.

• Decorate assembly with application monitors & QoS decorators

• Determine allocation & adaptation algorithm based on assembly information

• Consider CPU or network or both?

• Use allocation & adaptation algorithm that considers all dimensions

• Obtain current resource utilization from Target Manager

• Prepare allocation plan using allocation history

Page 13: Resource Allocation &  Control Engine (RACE)

13RACERACE

Application components from Mission Planner

Descriptors of assembly/components

to be deployed

CIAO/DAnCE

Component Information

Ready

Fetch Component Information

Deployment Plan

Deploy Components

Application Data

Modify Application Property

ResourceUtilization

Ready

SystemResourceUtilization

XML Parser

ResourceUtilization

Deploy Components/Modify Components

Domain Resources

Target Manager

Deployment Manager

CoreAssembly

FeatureLookupTable

AllocatorsAdapters

• Deploy component assembly using generated deployment plan

• Monitor system performance

• Target Manager

• Compute modifications to individual components or the whole assembly using adaptation algorithms

• Modify component assembly properties

RACE Runtime View

Page 14: Resource Allocation &  Control Engine (RACE)

14RACERACE

Deployment Manager Actors (1/2)

RepositoryManager(from Component)

<<Manager>>

PackageConfiguration(from Component)

<<Description>>

*+package *

Domain(from Target)

<<DomainAdministrator>>

Resource Allocator

*

+searchPath

*

1

+application Resource Requirement Data

1 1

+resourceData

1

DeploymentPlan(from Execution)

<<Planner>>

<<create>>

Plans allocation of resources to application based on resource Data

from resource Data Provider. Resolves packages using search

Path. Produces compatible resource

allocation plan.

.

TargetManager(from Target)

<<Manager>>1

1

1

1

1

+resourceDataProvider

1

Page 15: Resource Allocation &  Control Engine (RACE)

15RACERACE

Deployment Manager Actors (2/2)

Condition Monitor(from Application)

<<Monitor>>

Determinator(from AppString)

<<Description>>Domain

(from Target)

<<DomainAdministrator>>

Application Manager

*+application Performance

Data Provider

*

1

+application Performance Data

1 1

+resourceData

1

Adaptation Plan(from Execution)

<<Manager>>

<<create>>

Plans modification to applications and resource allocation to applications based on resource Data

from resource Data Provider and application Performance Data from application performance

data providers. Computes compatible modification to application and resource

allocation to applications and produces an

adaptation plan.

.

TargetManager(from Target)

<<Manager>>1

1

1

1

1

+resourceDataProvider

1

1*

Page 16: Resource Allocation &  Control Engine (RACE)

16RACERACE

Current Status & Implementation PlanCompleted• CIAO/DAnCE infrastructure

middleware

In design phase• Architecture of RACE• CCM interfaces of RACE• Allocation & adaptation algorithms

Plan of action• Implement

• Resource monitors• Target Manager• RACE• Allocation & Adaptation algorithms

• Integrate with Intelligent Mission Planner to achieve science mission goals

Deployment Plan

Intelligent Mission Planner

RACE

CIAO/DAnCE

Target Domain

Deploy Components

What to Deploy

Resource Monitors

Target Manager

AllocationAlgorithms

AdaptationAlgorithmsAllocation

Algorithms

AdaptationAlgorithms

RACE

Page 17: Resource Allocation &  Control Engine (RACE)

17RACERACE

Existing ARMS Architecture

ASM Local

Pool Manager

Pool Layer

Resource Allocator

Node Provisioner

Node Layer

Infrastructure Allocator

ASM Global

Infrastructure Layer

RSS

• Non standard entities• Custom built for ARMS

• Monolithic implementation of each layer

• Reduced flexibility• Increases complexity

• Number of layers in MLRM is fixed to three

• Infrastructure Layer• Pool Layer• Node Layer

• Possibly limits scalability• Roles performed by entities at

Infrastructure Layer and Pool Later are similar, but differ only in “scope”

Page 18: Resource Allocation &  Control Engine (RACE)

18RACERACE

Proposed MLRM Architecture with RACE/DnC

• DnC Spec compliant entities• Wide applicability• Can be reused outside ARMS

• Pluggable Framework• Supports multiple

• Allocation Algorithms• Adaptation Algorithms

• Number of layers in MRLM architecture is flexible

• Increases scalability

• Logical grouping of related entities• Provides a template template for each

(higher) layers in the MLRM architecture

• MLRM is truly a Multi-Layer Resource Management Middleware, and not limited to three layers

Resource Allocator

Application Manager

Deployment Manager

RSS / Target Manager

DnC Node Manager

Node Layer

Resource Allocator

Application Manager

Deployment Manager

DM

DM

Page 19: Resource Allocation &  Control Engine (RACE)

19RACERACE

Architectural ComparisonExisting ARMS Entity Proposed RACE/DAnCE Entity

Pool Manager Deployment Manager Core

Resource Allocator Deployment Manager Pluggable Allocation Algorithm

Response Coordinator Deployment Manager Pluggable Adaptation Algorithm

Determinator Target Manager

Condition Monitor hard-coded into AIM

Resource Monitor dynamically added to Assembly by Pluggable Weaving algorithm

Node Provisioner Standard DnC Node Daemon

Page 20: Resource Allocation &  Control Engine (RACE)

20RACERACE

ARMS RACE/DAnCE Transition Milestones

Milestone Status POC

Deploy existing MLRM components using DAnCE

Fixed all compile-time errors.

Deployed Global Assembly at Vanderbilt.

Deployed global and pool assemblies and exercised components in EMULAB

Ed (ATL), Will (Vandy)

Convert the AIM to DAnCE descriptors. Josh, Will, Kitty, and Jai had a working group and came up with preliminary plans.

Josh (ATL)

Convert the DIM to DAnCE descriptors and

convert the NodeProvisioner to standard DAnCE tools.

Task has been assigned to Will Otte for his internship at ATL

Will (Vandy)

Implement Deployment Manager:

1. Deployment manager core

2. Allocation Algorithms

3. Control Algorithms

TBD Nishanth / BBN folks?

Implement Target Manager:

1. Determine whether RSS can be leveraged.

2. Implement Resource Monitors

TBD Jai (Vandy)

Page 21: Resource Allocation &  Control Engine (RACE)

21RACERACE

Milestones Details (1/2)

• Deploy existing MLRM components using DAnCEPort MLRM Components to DAnCEDeploy MLRM Components using DnC Tools (Node Daemon,

Execution Manager, and Plan Launcher) instead of P&D tools (CIAO Daemon, Assembly Manager, and Assembly Deployer)

Test Phase I GM2 Experiment (formerly GM3) on EMULAB (and at six machines set up at ISIS in an Emulab-like environment)

• Convert the AIM to DAnCE descriptorsVerify that generic property facility is sufficiently rich to capture AIM-like

information• Determine mapping of AIM-like properties to generic DAnCE properties• Customize PICML user interface to support intuitive entry and

manipulation of AIM-like properties• Develop the RT-HIGH2.1 application string using the new DAnCE

descriptors and the new component workload generators• Convert the DIM to DAnCE descriptors

• Convert the DIM_Writer and DIM_Reader (XML handling façade classes) so that they produce and consume DAnCE descriptors

Page 22: Resource Allocation &  Control Engine (RACE)

22RACERACE

Milestones Details (2/2)

• Convert the NodeProvisioner to standard DnC entity Node Daemon• Migrate proxy objects to mandatory component facets for component

applications; and proxy components for non-component applications• Implement the Target Manager

• Map the OMG standard Target Manager IDL interface for resource monitoring to the functionality provided by RSS

• Determine interface between Target Manager and Deployment Manager• Implement Resource Monitors and determine an interface between

them and the Target Manager• Implement the Deployment Manager

• Determine external interfaces (with other MLRM components)• Determine internal interfaces (among Deployment Manager Core,

Allocators, and Adapters)• Implement Deployment Manager Core and sample instances of

Allocators and Adapters• Parallel development of specialized allocation and adaptation

algorithms, adhering to the agreed-upon interface

Page 23: Resource Allocation &  Control Engine (RACE)

23RACERACE

Proposed Plan of Action

Deploy existing MLRM components using DAnCE 100% Completed!

Convert the AIM to DAnCE descriptors 10% finish by July 1

Convert the DIM to DAnCE descriptorsConvert the NodeProvisioner to

standard DAnCE toolsfinish by July 1

Implement Deployment Manager& Target Manager finish by September 1

Integrate RACE into ARMS MLRM finish by October 1