model-driven generation of performance prototypes steffen becker fzi, karlsruhe tobias dencker u...
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?
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%)