Automatic Performance Tuning: Automatic Development of Tunlets

Slides:



Advertisements
Similar presentations
User-Defined Functions Like short programs Can operate on their own data Can receive data from callers and return data to callers.
Advertisements

Paradyn/Condor Week 2004 MATE: Monitoring, Analysis and Tuning Environment Anna Morajko, Tomàs Margalef and Emilio Luque Universitat Autònoma de Barcelona.
INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
Project 4 U-Pick – A Project of Your Own Design Proposal Due: April 14 th (earlier ok) Project Due: April 25 th.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
UAB Dynamic Monitoring and Tuning in Multicluster Environment Genaro Costa, Anna Morajko, Paola Caymes Scutari, Tomàs Margalef and Emilio Luque Universitat.
Paradyn Week – April 14, 2004 – Madison, WI DPOMP: A DPCL Based Infrastructure for Performance Monitoring of OpenMP Applications Bernd Mohr Forschungszentrum.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
Transparent Grid Enablement Using Transparent Shaping and GRID superscalar I. Description and Motivation II. Background Information: Transparent Shaping.
Fundamentals of Algorithms MCS - 2 Lecture # 1
© DATAMAT S.p.A. – Giuseppe Avellino, Stefano Beco, Barbara Cantalupo, Andrea Cavallini A Semantic Workflow Authoring Tool for Programming Grids.
Environment Selection Application  Firefox 1.0 or 2.0  Apache Operating System  Linux  Windows XP Instrumentation Package  JIT (DynamoRio,
UAB Dynamic Tuning of Master/Worker Applications Anna Morajko, Paola Caymes Scutari, Tomàs Margalef, Eduardo Cesar, Joan Sorribes and Emilio Luque Universitat.
Gedae, Inc. Gedae: Auto Coding to a Virtual Machine Authors: William I. Lundgren, Kerry B. Barnes, James W. Steed HPEC 2004.
Engineering Self-adaptive Service Mashups Mahdi Bashari LS3 Colloquium May 7 th 2014.
Parallelization Strategies Laxmikant Kale. Overview OpenMP Strategies Need for adaptive strategies –Object migration based dynamic load balancing –Minimal.
Dynamic Tuning of Parallel Programs with DynInst Anna Morajko, Tomàs Margalef, Emilio Luque Universitat Autònoma de Barcelona Paradyn/Condor Week, March.
Constraint Framework, page 1 Collaborative learning for security and repair in application communities MIT site visit April 10, 2007 Constraints approach.
Towards a High Performance Extensible Grid Architecture Klaus Krauter Muthucumaru Maheswaran {krauter,
Chapter 4: Threads Modified by Dr. Neerja Mhaskar for CS 3SH3.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Chapter 8: Recursion Data Structures in Java: From Abstract Data Types to the Java Collections Framework by Simon Gray.
WoPANets: Decision-support Tool for real-time Networks Design
Pro-Active Performance Engineering
Algorithms and Problem Solving
DSEEP process authoring made easy
Software Architecture ATAM Process Presentation
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
Introduction to Load Balancing:
The Development Process of Web Applications
POAD Book: Chapter 8 POAD: Analysis Phase
System Design.
APARTMENT MAINTENANCE SYSTEM
G.Manduchi1, T.Fredian2⁾, J.Stillerman2⁾, A. Neto3), F. Sartori3)
CS101 Introduction to Computing Lecture 19 Programming Languages
final registration seminar presentation
Supporting OpenMP and other Higher Languages in Dyninst
CompSci 725 Presentation by Siu Cho Jun, William.
MobiSys 2017 Symbolic Execution of Android Framework with Applications to Vulnerability Discovery and Exploit Generation Qiang Zeng joint work with Lannan.
Component Based Software Engineering
Implementing Chares in a High-Level Scripting Language
Designing Software for Ease of Extension and Contraction
Many-core Software Development Platforms
Software Engineering (CSI 321)
Data Structures (CS212D) Overview & Review.
Unit# 8: Introduction to Computer Programming
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
Creating and Using Classes
Model-Driven Analysis Frameworks for Embedded Systems
.NET and .NET Core 9. Towards Higher Order Pan Wuming 2017.
Paradyn / Condor Week 2007 University of Wisconsin-Madison
Electrical & Electronics Engineering Department
By Krishnamurthy et Al. Presented by David Girsault
Mock Object Creation for Test Factoring
Chapter 20 Object-Oriented Analysis and Design
GENERAL VIEW OF KRATOS MULTIPHYSICS
Exploring the Power of EPDM Tasks - Working with and Developing Tasks in EPDM By: Marc Young XLM Solutions
Software Design Lecture : 15.
Data Structures (CS212D) Overview & Review.
Allen D. Malony Computer & Information Science Department
Introduction to Pattern Oriented Analysis and Design (POAD)
Algorithms and Problem Solving
Chapter 8 Software Evolution.
Computer Architecture Group U.S.C.
Why Threads Are A Bad Idea (for most purposes)
M. Kezunovic (P.I.) S. S. Luo D. Ristanovic Texas A&M University
Why Threads Are A Bad Idea (for most purposes)
PASSI (Process for Agent Societies Specification and Implementation)
Why Threads Are A Bad Idea (for most purposes)
MOWLES Team Update Omar AbuRealh (SE), Systems Engineering, Reporting and Presenting Robert Collier (OR), Customer Liaison and Team Lead Joseph Pack (SE),
Presentation transcript:

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

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

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

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

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

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?

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

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

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

Motivation Application User MATE Framework Tunlet Tunlet … Application

Motivation Application User MATE Framework Tunlet Tunlet … Tunlet 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 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

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

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

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

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

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

Abstractions

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

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

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

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

Automatic development of Tunlets Abstractions Formalize using our Tunlet Specification Language

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Thank you…