420 likes | 433 Views
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
E N D
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
Outline • Introduction • MATE • Tunlets • Our work • Automatic Development of Tunlets • Motivation • Abstractions and Methodology • Tunlet Specification Language • Tunlet Generator • Use Case • Conclusions
Outline • Introduction • MATE • Tunlets • Our work • Automatic Development of Tunlets • Motivation • Abstractions and Methodology • Tunlet Specification Language • Tunlet Generator • Use Case • Conclusions
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
Problem / Solution Application development Source User Application Execution Performance data Monitoring Tuning Tool Events Performance analysis MATE • Monitoring, Analysis and Tuning Environment • Dynamic automatic tuning of parallel/distributed applications Modifications DynInst Instrumentation
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?
Application code API Framework code API Libraries code OS API Operating System kernel Hardware 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?
Performance models for patterns Performance models for libraries Application code API Framework code API Libraries code OS API Operating System kernel Hardware What are we working on? Execution MATE extensions: Tunlets Specification Measure points Monitoring Tuning Grid Performance analysis Performance model Tuning point, action, sync
Outline • Introduction • MATE • Tunlets • Our work • Automatic Development of Tunlets • Motivation • Abstractions and Methodology • Tunlet Specification Language • Tunlet Generator • Use Case • Conclusions
Motivation Application User MATE Framework Tunlet Tunlet … Application Tunlet
Motivation Application User MATE Framework Tunlet Tunlet … Tunlet Application Automate
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
Automatic Development of Tunlets Tunlet Specification Performance Model Programming Measure Points Model Parameters p , p ... p 1 2 i p , p ... p 1 2 i User Performance Functions performance Mathematical Model f ... f problem 1 j e ... e 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Automatic Generation Tuning Monitoring Tool Performance Analysis ... Tunlet Tunlet
Automatic Development of Tunlets Tunlet Specification Performance Model Programming Measure Points Model Parameters p , p ... p 1 2 i p , p ... p 1 2 i User Performance Functions performance Mathematical Model f ... f problem 1 j e ... e 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Automatic Generation Tuning Monitoring Tool Performance Analysis ... Tunlet Tunlet
Automatic Development of Tunlets Tunlet Specification Performance Model Programming Measure Points Model Parameters p , p ... p 1 2 i p , p ... p 1 2 i User Performance Functions performance Mathematical Model f ... f problem 1 j e ... e 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Automatic Generation Tuning Monitoring Tool Performance Analysis ... Tunlet Tunlet
Automatic Development of Tunlets Application Tunlet Specification Performance Model Programming Measure Points Model Parameters p , p ... p 1 2 i p , p ... p 1 2 i User Performance Functions performance Mathematical Model f ... f problem 1 j e ... e 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Automatic Generation Tuning Monitoring Tool Performance Analysis ... Tunlet Tunlet
Automatic Development of Tunlets Application Tunlet Specification Performance Model Programming Measure Points Model Parameters p , p ... p 1 2 i p , p ... p 1 2 i User Performance Functions performance Mathematical Model f ... f problem 1 j e ... e 1 j Tuning Actions/Points a ... a 1 k tp ... tp 1 h Execution Automatic Generation Tuning Monitoring Tool Performance Analysis ... Tunlet Tunlet
Automatic Development of Tunlets • Abstractions • Tunlet • Measure point • Performance model • Tuning point • Performance Model • Performance parameters • Performance functions • Application • Actor • Event • Variable • Value • Attribute
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
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
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
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
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
Automatic development of Tunlets Abstractions Formalize using our Tunlet Specification Language
What, where? How? What? When? Where? Tunlet Specification Language What should be included? Tunlet name: comment: Measure points Performance functions Tuning points
Tunlet Specification Language Tunlet name: comment: Measure points variables actors events iteration info performance params. Performance functions Tuning points What? where? How? What? When? Where?
Tunlet Specification Language Tunlet name: comment: Measure points Performance functions f1() … fn() Tuning points What? where? How? What? When? Where?
Tunlet Specification Language Tunlet name: comment: Measure points Performance functions Tuning points point1 … pointn What? where? How? What? When? Where?
What, where? How? What? When? Where? Tunlet Specification Language Tunlet name: comment: Measure points Performance functions Tuning points
Tunlet Generation Tunlet 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
Outline • Introduction • MATE • Tunlets • Our work • Automatic Development of Tunlets • Motivation • Abstractions and Methodology • Tunlet Specification Language • Tunlet Generator • Use Case • Conclusions
Analyzer Analyzer Tunlet Tunle t Performance Model Tuning Measure points/ points actions Example: number of workers • Framework + MATE • Define the tunlet basing on the classes of the framework. • Adapt the framework to allow tuning of the applications via MATE
Analyzer Analyzer Tunlet Tunle t Performance Model Tuning Measure points/ points actions Example: number of workers • Framework + MATE • Define the tunlet basing on the classes of the framework. • Adapt the framework to allow tuning of the applications via MATE Where... tl = latency λ = inverse bandwidth V = data volume Tc= computing time
Analyzer Analyzer Tunlet Tunle t Performance Model Tuning Measure points/ points actions Example: number of workers • Framework + MATE • Define the tunlet basing on the classes of the framework. • 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
Analyzer Analyzer Tunlet Tunle t Performance Model Tuning Measure points/ points actions Example: number of workers • Framework + MATE • Define the tunlet basing on the classes of the framework. • Adapt the framework to allow tuning of the applications via MATE
Analyzer Analyzer Tunlet Tunle t Performance Model Tuning Measure points/ points actions Example: number of workers • Framework + MATE • Define the tunlet basing on the classes of the framework. • Variable • Nopt • Adapt the framework to allow tuning of the applications via MATE
Analyzer Analyzer Tunlet Tunle t Performance Model Tuning Measure points/ points actions Example: number of workers • Framework + MATE • Define the tunlet basing on the classes of the framework. • Adapt the framework to allow tuning of the applications via MATE
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 Number of workers: Specification
Outline • Introduction • MATE • Tunlets • Our work • Automatic Development of Tunlets • Motivation • Abstractions and Methodology • Tunlet Specification Language • Tunlet Generator • Use Case • Conclusions
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.
Thank you… Automatic Performance Tuning: Automatic Development of Tunlets Paola Caymes Scutari