Paradyn Week April 30 2007 Automatic Performance Tuning

  • Slides: 42
Download presentation
Paradyn Week April 30, 2007 Automatic Performance Tuning: Automatic Development of Tunlets Universitat Autònoma

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 p Introduction n p Automatic Development of Tunlets n n p p MATE

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

Outline p Introduction n p Automatic Development of Tunlets n n p p MATE

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

Introduction Parallel/Distributed Computing n High performance p p n Developers must optimize application performance

Introduction Parallel/Distributed Computing n High performance p p n 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

MATE n Monitoring, Analysis and Tuning Environment p Dynamic automatic tuning of parallel/distributed applications

MATE n Monitoring, Analysis and Tuning Environment p Dynamic automatic tuning of parallel/distributed applications Application development r Use Application Source Execution Dyn. Inst Performance data Instrumentation Monitoring l Too Events Modifications Tuning Performance analysis Problem / Solution

MATE: Tunlets Analysis phase includes knowledge about possible performance problems in the applications. “TUNLETS”

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

MATE (III) n Key question: What can be tuned in an application? Application code

MATE (III) n Key question: What can be tuned in an application? Application code n Application specific code n Frameworks - Skeletons n Standard and custom libraries (API+code) n Operating system libraries (API+code) n Hardware API Framework code API Libraries code OS API Operating System kernel Hardware

What are we working on? Application code API Performance models for patterns Framework code

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

Outline p Introduction n p Automatic Development of Tunlets n n p p MATE

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

Motivation User Application Framework Application MATE Tunlet … Tunlet

Motivation User Application Framework Application MATE Tunlet … Tunlet

Motivation User Application Framework MATE Tunlet … Tunlet Application Automate Tunlet

Motivation User Application Framework MATE Tunlet … Tunlet Application Automate Tunlet

Automatic Development of Tunlets p We propose a methodology to: n add new tunlets

Automatic Development of Tunlets p We propose a methodology to: n add new tunlets to overcome different performance problems n avoid the user to enter in implementations details of MATE n allow users to develop their applications without restrictions

Automatic Development of Tunlets Performance Model Programming Model r Use Parameters p 1, p

Automatic Development of Tunlets Performance Model Programming Model r Use Parameters p 1, p 2. . . performance problem pi Mathematical Model e 1. . . ej Tunlet Specification Measure Points p 1, p 2. . . pi Performance Functions f 1. . . fj Tuning Actions/Points a 1. . . ak tp 1. . . tph Execution l Too Tuning Monitoring Performance Analysis Tunlet. . . Tunlet Automatic Generation

Automatic Development of Tunlets Performance Model Programming Model r Use Parameters p 1, p

Automatic Development of Tunlets Performance Model Programming Model r Use Parameters p 1, p 2. . . performance problem pi Mathematical Model e 1. . . ej Tunlet Specification Measure Points p 1, p 2. . . pi Performance Functions f 1. . . fj Tuning Actions/Points a 1. . . ak tp 1. . . tph Execution l Too Tuning Monitoring Performance Analysis Tunlet. . . Tunlet Automatic Generation

Automatic Development of Tunlets Performance Model Programming Model r Use Parameters p 1, p

Automatic Development of Tunlets Performance Model Programming Model r Use Parameters p 1, p 2. . . performance problem pi Mathematical Model e 1. . . ej Tunlet Specification Measure Points p 1, p 2. . . pi Performance Functions f 1. . . fj Tuning Actions/Points a 1. . . ak tp 1. . . tph Execution l Too Tuning Monitoring Performance Analysis Tunlet. . . Tunlet Automatic Generation

Automatic Development of Tunlets Application Programming Model r Use Performance Model Parameters p 1,

Automatic Development of Tunlets Application Programming Model r Use Performance Model Parameters p 1, p 2. . . performance problem pi Mathematical Model e 1. . . ej Tunlet Specification Measure Points p 1, p 2. . . pi Performance Functions f 1. . . fj Tuning Actions/Points a 1. . . ak tp 1. . . tph Execution l Too Tuning Monitoring Performance Analysis Tunlet. . . Tunlet Automatic Generation

Automatic Development of Tunlets Application Programming Model r Use Performance Model Parameters p 1,

Automatic Development of Tunlets Application Programming Model r Use Performance Model Parameters p 1, p 2. . . performance problem pi Mathematical Model e 1. . . ej Tunlet Specification Measure Points p 1, p 2. . . pi Performance Functions f 1. . . fj Tuning Actions/Points a 1. . . ak tp 1. . . tph Execution l Too Tuning Monitoring Performance Analysis Tunlet. . . Tunlet Automatic Generation

Automatic Development of Tunlets p Abstractions n Tunlet Measure point p Performance model p

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

Abstractions

Abstractions

Methodology 1. To provide a performance model (PM) 1. 2. To understand the performance

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

Methodology II p Events n n n p Variables and Values n n n

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

Methodology II p Events n n n p Variables and Values n n n

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

Methodology II p Events n n n p Variables and Values n n n

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

Methodology II p Events n n n p Variables and Values n n n

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

Automatic development of Tunlets Abstractions Formalize using our Tunlet Specification Language

Automatic development of Tunlets Abstractions Formalize using our Tunlet Specification Language

Tunlet Specification Language What should be included? Tunlet name: comment: Measure points What, where?

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

Tunlet Specification Language Tunlet name: comment: Measure points variables actors events iteration info performance

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

Tunlet Specification Language Tunlet name: comment: Measure points Performance functions What? where? f 1()

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

Tunlet Specification Language Tunlet name: comment: Measure points What? where? Performance functions How? Tuning

Tunlet Specification Language Tunlet name: comment: Measure points What? where? Performance functions How? Tuning points What? When? Where? point 1 … pointn

Tunlet Specification Language Tunlet name: comment: Measure points What, where? How? Performance functions What?

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

Tunlet Generation Tunlet <Tunlet name=“” comment=“” /> name: <Measure points> comment: … </Measure points>

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

Outline p Introduction n p Automatic Development of Tunlets n n p p MATE

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

Example: number of workers p Framework + MATE n Define the tunlet basing on

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

Example: number of workers p Framework + MATE n Define the tunlet basing on

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

Example: number of workers p Framework + MATE n Analyzer Tunlet t Define the

Example: number of workers p Framework + MATE n Analyzer Tunlet t Define the tunlet basing on the classes of the framework. Measure points Events Variables • Entry(Computing) • argv. Data • Exit(Computing) • Res. Size • Entry(iteration) • Exit(iteration) Performance Model Tuning points/ actions Actors • Master • Worker n Adapt the framework to allow tuning of the applications via MATE

Example: number of workers p Framework + MATE n Define the tunlet basing on

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

Example: number of workers p Framework + MATE n Define the tunlet basing on

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

Example: number of workers p Framework + MATE n Define the tunlet basing on

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

Number of workers: Specification Tunlet name: numworkers comment: tunlet to tune the number of

Number of workers: Specification Tunlet name: numworkers comment: tunlet to tune the number of workers Measure points variables argv. Data Res. Size nopt events Iteration. Starts Iteration. Finishes WStarts. T WFinishes. T 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

Outline p Introduction n p Automatic Development of Tunlets n n p p MATE

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

Conclusions p We defined/developed: n n n Methodology to define tunlets Tunlet Specification Language

Conclusions p We defined/developed: n n n Methodology to define tunlets Tunlet Specification Language Automatic Tunlet Generator In this way, we make MATE (dynamicautomatic tuning) easier and transparent to the user.

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

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