model-driven generation of performance prototypes steffen becker fzi, karlsruhe tobias dencker u...

14
Model-Driven Generation Model-Driven Generation of Performance Prototypes of Performance Prototypes Steffen Becker FZI, Karlsruhe Tobias Dencker U Karlsruhe Jens Happe U Oldenburg DFG-Project PALLADIO

Upload: amy-garrison

Post on 01-Jan-2016

218 views

Category:

Documents


2 download

TRANSCRIPT

Model-Driven Generation of Model-Driven Generation of

Performance PrototypesPerformance Prototypes

Steffen BeckerFZI, Karlsruhe

Tobias Dencker

U Karlsruhe

Jens Happe

U Oldenburg

DFG-Project PALLADIO

2Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Motivation

Software Development as Engineering

2

Server Database

5 ms 15 ms

Image-Source: www.getdigital.de

prediction

prototyping

Code

testing

20 ms 23 ms 25 ms

System Model & Annotations

Should Correspond, butdoes not because of Prediction

Model’s Assumptions.How to close the gap?

3Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Outline

3

4Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Related Work

4

5Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Palladio Component Model (PCM)

Brief Overview

5

6Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Mapping PCM to Prototypes

  PCM Concept ProtoCom

Static

Interfaces Java Interface

BasicComponents Classes with Simulated SEFF

CompositeComponents Facade Class

AssemblyContext Instance of Component Class

AssemblyConnector Deployment Script

Dynamic

Internal Actions Resource Demand Generator

Call Actions RMI/SOAP Call

Control Flow Java Control Flow

Data Flow Annotations Simulated Dataflow

AllocationAllocationContext Deployment Script

Resources [Uses Physical Resources]

Workload UsageModel Workload Driver

6

7Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Mapping PCM to Prototypes

7

<<ExternalCall>>IExternal.service

<<Loop>>

<<BasicComp>>BC1

<<InternalAction>>

iterationCount=IntPMF[(2;0.4)(3;0.6)]

cpuDemand=a.BYTESIZE*100

Legend

Prototype Load Generator

Basic Java/J2EE Mapping

Input/output Variable Usages[..]

8Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Generating Load: Strategies

Load Generation should resemble target code as good as possible to capture hard to model effects Different types of Load Generation Strategies needed

• CPU Intensive Load vs Memory Intensive Load

• Burst Disk Access vs Random Disk Reads

• Fragmented Network Transmission vs Bulks

• ... Can not assume Strategies have linear time demands In this Presentation

Calculating Fibonacci Numbers (CPU Intensive) vs Sorting Arrays (Memory Intensive)

8

9Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Generating Load

Calibration in Target Environment

Choose Algorithm whose time demand increases monotonic with a problem size n: alg(n)

Let execalg(n) be the time demand for computing alg(n)

Given a time tdest find n such that tdest = execalg(n) in case no contention is in the target environment

Problem: Needs calibration for a large set of tdest

Split tdest in power of 2 sum

Determine ni for with

Compute alg(ni) for all xi = 1

9

0

2 , {0,1}idest i i

i

t x x

0 ( ) 2ialg iexec n

10Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Case Study: Input PCM Model

10

Client

Client

WebServer

Scheduler

Reporting Engine

IReporting

IReporting

IWeb

DB Cache

Database

IDatabase

WebServer.acceptRequest

Scheduler.dispatch

Reporting.prepare

Reporting.prepareSmall Reporting.prepareBig

DB.getSmall DB.getBig

Reporting.generateReport

Cache.accessCache

2 times

1sec

0.03sec

0.5sec

0.3sec

0.26sec

4sec

0.44sec

0.03sec

80% 20%

ICache

[Wu2003]

1,56s(80%)

6,47s(20%)

11Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Case Study Setting

11

Client

Client

WebServer

Scheduler

Reporting Engine

IReporting

IReporting

IWeb

DB Cache

Database

IDatabase

WebServer.acceptRequest

Scheduler.dispatch

Reporting.prepare

Reporting.prepareSmall Reporting.prepareBig

DB.getSmall DB.getBig

Reporting.generateReport

Cache.accessCache

2 times

1sec

0.03sec

0.5sec

0.3sec

0.26sec

4sec

0.44sec

0.03sec

80% 20%

ICache

PCM Input Model

generate

GeneratedPrototype

deploy & measure

Dual Core PC

Questions1.Does it Generate, Compile and Deploy automatically?2.Does Calibration work with different Algorithms?3.Can we see hard-to-model Effects?

12Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Case Study Q1 & Q2

Does Transformation and Calibration Work?

12

1,56s(80%)

6,47s(20%)

13Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Case Study Q3

Unpredicted Effects?

13

1,56s(80%)

6,47s(20%)

14Generation of Performance Prototypes / SIPEW ‘08 / Steffen Becker / 28.06.2008

Conclusions

14