automatic performance tuning: automatic development of tunlets universitat autònoma de barcelona
DESCRIPTION
Paradyn Week April 30, 2007. Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona. Paola Caymes Scutari Genaro Costa, Ihab Salawdeh, Alexandre Guevara Anna Morajko, Eduardo César, Andreu Moreno, Josep Jorba - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/1.jpg)
Automatic Performance Tuning: Automatic Development of Tunlets
Universitat Autònoma de Barcelona
Paola Caymes ScutariGenaro Costa, Ihab Salawdeh, Alexandre Guevara
Anna Morajko, Eduardo César, Andreu Moreno, Josep JorbaTomàs Margalef, Joan Sorribes, Emilio Luque
Universitat Autònoma de Barcelona
Paradyn WeekApril 30, 2007
![Page 2: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/2.jpg)
Outline Introduction
MATE Tunlets Our work
Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator
Use Case Conclusions
![Page 3: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/3.jpg)
Outline Introduction
MATE Tunlets Our work
Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator
Use Case Conclusions
![Page 4: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/4.jpg)
IntroductionParallel/Distributed Computing
High performance
Developers must optimize application performance to provide efficient and useful applications
Application behavior may change on input data or environment
Difficult task especially for non-expert users
![Page 5: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/5.jpg)
MATE Monitoring, Analysis and Tuning Environment
Dynamic automatic tuning of parallel/distributed applications
Modifications
Instrumentation
User
TuningMonitoring
Tool
SolutionProblem /
Performance analysis
Performance data
Application development
Application
Execution
Source
Events
DynInst
![Page 6: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/6.jpg)
Analyzer
Tunlet
Analyzer
Tunlet
Performancemodel
Measurepoints
Tuningpoints/actions
MATE: TunletsAnalysis phase includes knowledge about possible
performance problems in the applications.
What to measure?Where?
How to determine problems and
solutions? What to modify?When?Where?
““TUNLETS”TUNLETS”
![Page 7: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/7.jpg)
MATE (III) Key question:
Application specific code
Frameworks - Skeletons
Standard and custom libraries (API+code)
Operating system libraries (API+code)
Hardware
What can be tuned in an application?
Hardware
Operating System kernel
OS API
Libraries code
API
Application code
Framework code
API
![Page 8: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/8.jpg)
Measure points
Performance model
Tuning point, action, sync
TuningMonitoring
Performance analysis
ExecutionHardware
Operating System kernel
OS API
Libraries code
API
Application code
Framework code
API Performance models for patterns
Performance models for libraries
MATE extensions:Tunlets Specification
Grid
What are we working on?
![Page 9: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/9.jpg)
Outline Introduction
MATE Tunlets Our work
Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator
Use Case Conclusions
![Page 10: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/10.jpg)
Motivation
Framework TunletTunlet TunletTunlet…
Application
User MATEApplication
TunletTunlet
![Page 11: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/11.jpg)
Motivation
Framework TunletTunlet TunletTunlet…
Application
TunletTunlet
User MATE
Automate
Application
![Page 12: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/12.jpg)
Automatic Development of Tunlets
We propose a methodology to:
add new tunlets to overcome different performance problems
avoid the user to enter in implementations details of MATE
allow users to develop their applications without restrictions
![Page 13: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/13.jpg)
Automatic Development of Tunlets
User
Tool Tuning
PerformanceAnalysis
Monitoring
Execution
Tunlet Tunlet...
ProgrammingModel
performanceproblem
Performance Model
Parameters p1, p2 ... pi
Mathematical Model e1 ... ej
Tunlet Specification
Measure Points p1, p2 ... pi
Performance Functions f1 ... fj
Tuning Actions/Points a1 ... ak tp1 ... tph
Automatic Generation
![Page 14: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/14.jpg)
Automatic Development of Tunlets
User
Tool Tuning
PerformanceAnalysis
Monitoring
Execution
Tunlet Tunlet...
ProgrammingModel
performanceproblem
Performance Model
Parameters p1, p2 ... pi
Mathematical Model e1 ... ej
Tunlet Specification
Measure Points p1, p2 ... pi
Performance Functions f1 ... fj
Tuning Actions/Points a1 ... ak tp1 ... tph
Automatic Generation
![Page 15: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/15.jpg)
Automatic Development of Tunlets
User
Tool Tuning
PerformanceAnalysis
Monitoring
Execution
Tunlet Tunlet...
ProgrammingModel
performanceproblem
Performance Model
Parameters p1, p2 ... pi
Mathematical Model e1 ... ej
Tunlet Specification
Measure Points p1, p2 ... pi
Performance Functions f1 ... fj
Tuning Actions/Points a1 ... ak tp1 ... tph
Automatic Generation
![Page 16: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/16.jpg)
Automatic Development of Tunlets
User
Tool Tuning
PerformanceAnalysis
Monitoring
Execution
Tunlet Tunlet...
Application
ProgrammingModel
performanceproblem
Performance Model
Parameters p1, p2 ... pi
Mathematical Model e1 ... ej
Tunlet Specification
Measure Points p1, p2 ... pi
Performance Functions f1 ... fj
Tuning Actions/Points a1 ... ak tp1 ... tph
Automatic Generation
![Page 17: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/17.jpg)
Automatic Development of Tunlets
User
Tool Tuning
PerformanceAnalysis
Monitoring
Execution
Tunlet Tunlet...
Application
ProgrammingModel
performanceproblem
Performance Model
Parameters p1, p2 ... pi
Mathematical Model e1 ... ej
Tunlet Specification
Measure Points p1, p2 ... pi
Performance Functions f1 ... fj
Tuning Actions/Points a1 ... ak tp1 ... tph
Automatic Generation
![Page 18: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/18.jpg)
Automatic Development of Tunlets Abstractions
Tunlet Measure point Performance model Tuning point
Performance Model Performance parameters Performance functions
Application Actor Event Variable Value Attribute
![Page 19: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/19.jpg)
Abstractions
Process_1
Data a,b,c,d......int i
Res f_1(Data d){ ...}
...
f_i(Data r, Data r1){ ...}
main(){ ... r=f_1(a) ... f_i(c,d) ...}
Process_2
Data a,b,c,d......int i
g_1(Data d,int x){ ...}
...
g_j(Data r){ ...}
main(){ ... g_1(b,i) ... g_j(d) ...}
Process_3
Data d......
h_1(Data e){ ...}
main(){ ... h_1() ...}
Actors
Variables
Values Events
![Page 20: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/20.jpg)
Methodology
1. To provide a performance model (PM)1. Pre-existing model2. Ad hoc model
2. To understand the performance model1. Mainly the performance parameters
3. To interpret the PM in the application1. Identifying the events2. Identifying the variables and values
4. To identify the actors in the application
![Page 21: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/21.jpg)
Methodology II Events
Function Entry or Exit Attributes
Variables and Values Variable, parameter or result Name Data Type
Actor Name Class Exe Min/Max Completion Condition Attributes
Process_3
Data d......
h_1(Data e){ ...}
h_3(){//final processing //in the iteration ...}
main(){ while(!end) { ... h_1(x) ... h_3() }}
![Page 22: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/22.jpg)
Methodology II Events
Function Entry or Exit Attributes
Variables and Values Variable, parameter or result Name Data Type
Actor Name Class Exe Min/Max Completion Condition Attributes
Process_3
Data d......
h_1(Data e){ ...}
h_3(){//final processing //in the iteration ...}
main(){ while(!end) { ... h_1(x) ... h_3() }}
![Page 23: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/23.jpg)
Methodology II Events
Function Entry or Exit Attributes
Variables and Values Variable, parameter or result Name Data Type
Actor Name Class Exe Min/Max Completion Condition Attributes
Process_3
Data d......
h_1(Data e){ ...}
Data h_3(){//final processing //in the iteration ...}
main(){ while(!end) { ... h_1(x) ... h_3() }}
![Page 24: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/24.jpg)
Methodology II Events
Function Entry or Exit Attributes
Variables and Values Variable, parameter or result Name Data Type
Actor Name Class Exe Min/Max Completion Condition Attributes
Process_3
Data d......
h_1(Data e){ ...}
h_3(){//final processing //in the iteration ...}
main(){ while(!end) { ... h_1(x) ... h_3() }}
![Page 25: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/25.jpg)
Automatic development of Tunlets
Performance Model
Parameters p1, p2 ... pi
Mathematical Model f1 (pm,...,pn) ... fk (pm,...,pn)
Model Evaluation r1 ... rk
Application
Tunlet Specification
Measure Points p1, p2 ... pi
Performance Functions f1 ... fj
Tuning Actions/Points a1 ... ak tp1 ... tph
Abstractions
Formalize using our
Tunlet Specification Language
![Page 26: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/26.jpg)
Tunlet Specification Language
Tunlet
name:
comment:
Measure points
Performance functions
Tuning points
Analyzer
Tunlet
Analyzer
Tunlet
Performancemodel
Measurepoints
Tuningpoints/actions
How?
What?When?Where?
What, where?
What should be included?
![Page 27: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/27.jpg)
Tunlet Specification Language
Tunlet
name:
comment:
Measure pointsvariablesactorseventsiteration infoperformance params.
Performance functions
Tuning points
Analyzer
Tunlet
Analyzer
Tunlet
Performancemodel
Measurepoints
Tuningpoints/actions
How?
What?When?Where?
What?where?
![Page 28: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/28.jpg)
Tunlet Specification Language
Tunlet
name:
comment:
Measure points
Performance functions
f1()
…
fn()
Tuning points
Analyzer
Tunlet
Analyzer
Tunlet
Performancemodel
Measurepoints
Tuningpoints/actions
What?When?Where?
What?where?
How?
![Page 29: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/29.jpg)
Tunlet Specification Language
Tunlet
name:
comment:
Measure points
Performance functions
Tuning points
point1
…
pointn
Analyzer
Tunlet
Analyzer
Tunlet
Performancemodel
Measurepoints
Tuningpoints/actions
How?
What?where?
What?When?Where?
![Page 30: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/30.jpg)
Tunlet Specification Language
Tunlet
name:
comment:
Measure points
Performance functions
Tuning points
Analyzer
Tunlet
Analyzer
Tunlet
Performancemodel
Measurepoints
Tuningpoints/actions
How?
What?When?Where?
What, where?
![Page 31: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/31.jpg)
Tunlet GenerationTunlet
name:
comment:
Measure points
…
Performance functions
…
Tuning points
…
<Tunlet name=“” comment=“” />
<Measure points>
…
</Measure points>
<Performance functions>
…
</Performance functions>
<Tuning points>
…
</Tuning points>
Tunlet.h Tunlet.cpp Stats.h Stats.cpp
Flex + DOM
XSLT
![Page 32: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/32.jpg)
Outline Introduction
MATE Tunlets Our work
Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator
Use Case Conclusions
![Page 33: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/33.jpg)
Analyzer
Tunlet
Analyzer
Tunlet
Performance Model
Measurepoints
Tuning points/ actions
Framework + MATE
Define the tunlet basing on the classes of the framework.
Adapt the framework to allow tuning of the applications via MATE
Example: number of workers
![Page 34: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/34.jpg)
Analyzer
Tunlet
Analyzer
Tunlet
Performance Model
Measurepoints
Tuning points/ actions
Framework + MATE
Define the tunlet basing on the classes of the framework.
Adapt the framework to allow tuning of the applications via MATE
Example: number of workers
tlTcVNopt )*(
Where...tl = latencyλ = inverse bandwidthV = data volumeTc= computing time
![Page 35: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/35.jpg)
Analyzer
Tunlet
Analyzer
Tunlet
Performance Model
Measurepoints
Tuning points/ actions
Framework + MATE
Define the tunlet basing on the classes of the framework.
Adapt the framework to allow tuning of the applications via MATE
Example: number of workers
tlTcVNopt )*(
Events
• Entry(Computing)
• Exit(Computing)
• Entry(iteration)
• Exit(iteration)
Variables
• argvData
• ResSize
Actors
• Master
• Worker
![Page 36: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/36.jpg)
Analyzer
Tunlet
Analyzer
Tunlet
Performance Model
Measurepoints
Tuning points/ actions
Framework + MATE
Define the tunlet basing on the classes of the framework.
Adapt the framework to allow tuning of the applications via MATE
Example: number of workers
tlTcVNopt )*(
![Page 37: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/37.jpg)
Analyzer
Tunlet
Analyzer
Tunlet
Performance Model
Measurepoints
Tuning points/ actions
Framework + MATE
Define the tunlet basing on the classes of the framework.
Adapt the framework to allow tuning of the applications via MATE
Example: number of workers
tlTcVNopt )*(
Variable
• Nopt
![Page 38: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/38.jpg)
Analyzer
Tunlet
Analyzer
Tunlet
Performance Model
Measurepoints
Tuning points/ actions
Framework + MATE
Define the tunlet basing on the classes of the framework.
Adapt the framework to allow tuning of the applications via MATE
Example: number of workers
tlTcVNopt )*(
![Page 39: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/39.jpg)
Number of workers: SpecificationTunlet
name:numworkerscomment:tunlet to tune the number of workers
Measure points
variablesargvDataResSizenopt
eventsIterationStartsIterationFinishesWStartsTWFinishesT
actorsmasterworker
performance model parametersntllambdaVtCt
Performance Functions int pf(){return (int)sqrt((lambda*Vt+Ct)/tl);}
Tuning Pointsnopt
![Page 40: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/40.jpg)
Outline Introduction
MATE Tunlets Our work
Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator
Use Case Conclusions
![Page 41: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/41.jpg)
Conclusions
We defined/developed: Methodology to define tunlets Tunlet Specification Language Automatic Tunlet Generator
In this way, we make MATE (dynamic-automatic tuning) easier and transparent to the user.
![Page 42: Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma de Barcelona](https://reader035.vdocuments.net/reader035/viewer/2022062802/5681451c550346895db1de67/html5/thumbnails/42.jpg)
Automatic Performance Tuning:Automatic Development of Tunlets
Paola Caymes Scutari
Thank you…