Presentation is loading. Please wait.

Presentation is loading. Please wait.

Automatic Performance Tuning: Automatic Development of Tunlets

Similar presentations


Presentation on theme: "Automatic Performance Tuning: Automatic Development of Tunlets"— Presentation transcript:

1 Automatic Performance Tuning: Automatic Development of Tunlets
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 Tomàs Margalef, Joan Sorribes, Emilio Luque Universitat Autònoma de Barcelona

2 Outline Introduction Automatic Development of Tunlets Use Case
MATE Tunlets Our work Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator Use Case Conclusions

3 Outline Introduction Automatic Development of Tunlets Use Case
MATE Tunlets Our work Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator Use Case Conclusions

4 Introduction Parallel/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

5 Application development
MATE Monitoring, Analysis and Tuning Environment Dynamic automatic tuning of parallel/distributed applications User Tuning Monitoring Tool Solution Problem / Performance analysis Performance data Application development Application Execution Source Events Modifications DynInst Instrumentation

6 How to determine problems and solutions?
MATE: Tunlets Analysis phase includes knowledge about possible performance problems in the applications. “TUNLETS” How to determine problems and solutions? What to modify? When? Where? What to measure? Where?

7 What can be tuned in an application?
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

8 What are we working on? Performance models for patterns
Hardware Operating System kernel OS API Libraries code API Application code Framework code Performance models for patterns Performance models for libraries Execution MATE extensions: Tunlets Specification Measure points Monitoring Tuning Grid Performance analysis Performance model Tuning point, action, sync

9 Outline Introduction Automatic Development of Tunlets Use Case
MATE Tunlets Our work Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator Use Case Conclusions

10 Motivation Application User MATE Framework Tunlet Tunlet … Application

11 Motivation Application User MATE Framework Tunlet Tunlet … Tunlet
Automate

12 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

13 Automatic Development of Tunlets
Tunlet Specification Performance Model Programming Model Measure Points Parameters p , p p p , p p 1 2 i User 1 2 i performance Performance Functions Mathematical Model problem f ... f e ... e 1 j 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Tool Monitoring Tuning Automatic Generation Performance Analysis Tunlet ... Tunlet

14 Automatic Development of Tunlets
Tunlet Specification Performance Model Programming Model Measure Points Parameters p , p p p , p p 1 2 i User 1 2 i performance Performance Functions Mathematical Model problem f ... f e ... e 1 j 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Tool Monitoring Tuning Automatic Generation Performance Analysis Tunlet ... Tunlet

15 Automatic Development of Tunlets
Tunlet Specification Performance Model Programming Model Measure Points Parameters p , p p p , p p 1 2 i User 1 2 i performance Performance Functions Mathematical Model problem f ... f e ... e 1 j 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Tool Monitoring Tuning Automatic Generation Performance Analysis Tunlet ... Tunlet

16 Automatic Development of Tunlets
Application Tunlet Specification Performance Model Programming Model Measure Points Parameters p , p p p , p p 1 2 i User 1 2 i performance Performance Functions Mathematical Model problem f ... f e ... e 1 j 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Tool Monitoring Tuning Automatic Generation Performance Analysis Tunlet ... Tunlet

17 Automatic Development of Tunlets
Application Tunlet Specification Performance Model Programming Model Measure Points Parameters p , p p p , p p 1 2 i User 1 2 i performance Performance Functions Mathematical Model problem f ... f e ... e 1 j 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Tool Monitoring Tuning Automatic Generation Performance Analysis Tunlet ... Tunlet

18 Automatic Development of Tunlets
Abstractions Tunlet Measure point Performance model Tuning point Performance Model Performance parameters Performance functions Application Actor Event Variable Value Attribute

19 Abstractions

20 Methodology To provide a performance model (PM)
Pre-existing model Ad hoc model To understand the performance model Mainly the performance parameters To interpret the PM in the application Identifying the events Identifying the variables and values To identify the actors in the application

21 Methodology II Events Variables and Values Actor Function
Entry or Exit Attributes Variables and Values Variable, parameter or result Name Data Type Actor Class Exe Min/Max Completion Condition

22 Methodology II Events Variables and Values Actor Function
Entry or Exit Attributes Variables and Values Variable, parameter or result Name Data Type Actor Class Exe Min/Max Completion Condition

23 Methodology II Events Variables and Values Actor Function
Entry or Exit Attributes Variables and Values Variable, parameter or result Name Data Type Actor Class Exe Min/Max Completion Condition

24 Methodology II Events Variables and Values Actor Function
Entry or Exit Attributes Variables and Values Variable, parameter or result Name Data Type Actor Class Exe Min/Max Completion Condition

25 Automatic development of Tunlets
Abstractions Formalize using our Tunlet Specification Language

26 Tunlet Specification Language
What should be included? How? What? When? Where? What, where? Tunlet name: comment: Measure points Performance functions Tuning points

27 Tunlet Specification Language
name: comment: Measure points variables actors events iteration info performance params. Performance functions Tuning points What? where? How? What? When? Where?

28 Tunlet Specification Language
name: comment: Measure points Performance functions f1() fn() Tuning points What? where? How? What? When? Where?

29 Tunlet Specification Language
name: comment: Measure points Performance functions Tuning points point1 pointn What? where? How? What? When? Where?

30 Tunlet Specification Language
How? What? When? Where? What, where? Tunlet name: comment: Measure points Performance functions Tuning points

31 Tunlet Generation Flex + DOM XSLT Tunlet.h Tunlet.cpp Stats.h
name: comment: Measure points Performance functions Tuning points <Tunlet name=“” comment=“” /> <Measure points> </Measure points> <Performance functions> </Performance functions> <Tuning points> </Tuning points> Flex + DOM XSLT Tunlet.h Tunlet.cpp Stats.h Stats.cpp

32 Outline Introduction Automatic Development of Tunlets Use Case
MATE Tunlets Our work Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator Use Case Conclusions

33 Example: number of workers
Framework + MATE Define the tunlet basing on the classes of the framework. Analyzer Tunle t Tunlet Performance Model Measure points Tuning points/ actions Adapt the framework to allow tuning of the applications via MATE

34 Example: number of workers
Framework + MATE Define the tunlet basing on the classes of the framework. Analyzer Tunle t Tunlet Performance Model Measure points Tuning points/ actions Adapt the framework to allow tuning of the applications via MATE Where... tl = latency λ = inverse bandwidth V = data volume Tc= computing time

35 Example: number of workers
Framework + MATE Define the tunlet basing on the classes of the framework. Analyzer Tunle t Tunlet Performance Model Measure points Tuning points/ actions Events Entry(Computing) Exit(Computing) Entry(iteration) Exit(iteration) Variables argvData ResSize Actors Master Worker Adapt the framework to allow tuning of the applications via MATE

36 Example: number of workers
Framework + MATE Define the tunlet basing on the classes of the framework. Analyzer Tunle t Tunlet Performance Model Measure points Tuning points/ actions Adapt the framework to allow tuning of the applications via MATE

37 Example: number of workers
Framework + MATE Define the tunlet basing on the classes of the framework. Analyzer Tunle t Tunlet Performance Model Measure points Tuning points/ actions Variable Nopt Adapt the framework to allow tuning of the applications via MATE

38 Example: number of workers
Framework + MATE Define the tunlet basing on the classes of the framework. Analyzer Tunle t Tunlet Performance Model Measure points Tuning points/ actions Adapt the framework to allow tuning of the applications via MATE

39 Number of workers: Specification
Tunlet name:numworkers comment:tunlet to tune the number of workers Measure points variables argvData ResSize nopt events IterationStarts IterationFinishes WStartsT WFinishesT actors master worker performance model parameters n tl lambda Vt Ct Performance Functions int pf() {return (int)sqrt((lambda*Vt+Ct)/tl);} Tuning Points nopt

40 Outline Introduction Automatic Development of Tunlets Use Case
MATE Tunlets Our work Automatic Development of Tunlets Motivation Abstractions and Methodology Tunlet Specification Language Tunlet Generator Use Case Conclusions

41 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.

42 Thank you… Automatic Performance Tuning:
Automatic Development of Tunlets Paola Caymes Scutari Thank you…


Download ppt "Automatic Performance Tuning: Automatic Development of Tunlets"

Similar presentations


Ads by Google