Metadata for Component Optimisation

Similar documents
Workflow, Planning and Performance Information, information, information Dr Andrew Stephen M c Gough

A Component Framework for HPC Applications

Architectural Design

Introduction to OpenMP

Architectural Design

Extending Blaise Capabilities in Complex Data Collections

Advanced Databases: Parallel Databases A.Poulovassilis

ECE 669 Parallel Computer Architecture

Requirements to models: goals and methods

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

A Multi-layered Domain-specific Language for Stencil Computations

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

Database Management Systems MIT Introduction By S. Sabraz Nawaz

A common scenario... Most of us have probably been here. Where did my performance go? It disappeared into overheads...

Lecture 1. Chapter 6 Architectural design

A common scenario... Most of us have probably been here. Where did my performance go? It disappeared into overheads...

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

Chapter 17 - Component-based software engineering. Chapter 17 So-ware reuse

Costless Software Abstractions For Parallel Hardware System

Advanced Computer Architecture: A Google Search Engine

g p q p q Generative and adaptive methods in performance programming p(q) p<q> Paul H J Kelly Imperial College London Joint work with Olav Beckmann

Caching and Buffering in HDF5

An Evaluation of Domain-Specific Language Technologies for Code Generation

ICENI: An Open Grid Service Architecture Implemented with Jini Nathalie Furmento, William Lee, Anthony Mayer, Steven Newhouse, and John Darlington

Hippo Software BPMN and UML Training

1 Overview. 2 A Classification of Parallel Hardware. 3 Parallel Programming Languages 4 C+MPI. 5 Parallel Haskell

Zachman Classification, Implementation & Methodology

Chapter 6 Architectural Design. Chapter 6 Architectural design

Minsoo Ryu. College of Information and Communications Hanyang University.

Design of Embedded Systems

Requirements Driven Mediation for Collaborative Security. Amel Bennaceur The Open University, UK

Enterprise Architect Training Courses

Software Architecture

RESTORE: REUSING RESULTS OF MAPREDUCE JOBS. Presented by: Ahmed Elbagoury

Obfuscating Transformations. What is Obfuscator? Obfuscation Library. Obfuscation vs. Deobfuscation. Summary

Intel Thread Building Blocks

Introduction to Information Systems

Introduction to Big-Data

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

EEL 4783: HDL in Digital System Design

Memory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 358

Software Reuse and Component-Based Software Engineering

ICS 252 Introduction to Computer Design

An Introduction to Software Architecture

ARCHER ecse Technical Report. Algorithmic Enhancements to the Solvaware Package for the Analysis of Hydration. 4 Technical Report (publishable)

Modern Processor Architectures. L25: Modern Compiler Design

MaramaEML: An Integrated Multi-View Business Process Modelling Environment with Tree-Overlays, Zoomable Interfaces and Code Generation

V1 - VHDL Language. FPGA Programming with VHDL and Simulation (through the training Xilinx, Lattice or Actel FPGA are targeted) Objectives

Chapter 6 Architectural Design

What Is Datacenter (Warehouse) Computing. Distributed and Parallel Technology. Datacenter Computing Architecture

Polyhedral Optimizations of Explicitly Parallel Programs

Distributed NVAMG. Design and Implementation of a Scalable Algebraic Multigrid Framework for a Cluster of GPUs

Intel Thread Building Blocks

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Announcements. Midterm 2 next Thursday, 6-7:30pm, 277 Cory Review session on Tuesday, 6-7:30pm, 277 Cory Homework 8 due next Tuesday Labs: project

Content Enrichment. An essential strategic capability for every publisher. Enriched content. Delivered.

Visual Layout of Graph-Like Models

Type safe Linkage for Variables and Functions

The Power of Streams on the SRC MAP. Wim Bohm Colorado State University. RSS!2006 Copyright 2006 SRC Computers, Inc. ALL RIGHTS RESERVED.

CSI33 Data Structures

Storage Management in INDIGO

Functional Programming Language Haskell

Model Driven Development of Component Centric Applications

Stylus Studio Case Study: FIXML Working with Complex Message Sets Defined Using XML Schema

An Introduction to Software Architecture

Component-based software engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1

Development Methodology TM

Chapter 8. Database Design. Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel

Alternative Array Storage Layouts for Regular Scientific Programs

Parallel Programming Patterns. Overview and Concepts

HPF commands specify which processor gets which part of the data. Concurrency is defined by HPF commands based on Fortran90

REFLECTIONS ON OPERATOR SUITES

TORSTEN HOEFLER

The GPU as a co-processor in FEM-based simulations. Preliminary results. Dipl.-Inform. Dominik Göddeke.

Introduction to Programming Microsoft.NET Applications with Visual Studio 2008 (C#)

The Darwin Language Version 3d Department of Computing, Imperial College of Science, Technology and Medicine, 180 Queen s Gate, London SW7 2BZ, UK.

It s all Done with Mirrors Patterns and OCL. KMF Kent Modelling Framework D.H.Akehurst and O.Patrascoiu

Improving Linear Algebra Computation on NUMA platforms through auto-tuned tuned nested parallelism

0. Overview of this standard Design entities and configurations... 5

The Designer's Guide to VHDL Second Edition

Duet: Static Analysis for Unbounded Parallelism

Parallel Computing. Slides credit: M. Quinn book (chapter 3 slides), A Grama book (chapter 3 slides)

The VERCE Architecture for Data-Intensive Seismology

The Automatic Design of Batch Processing Systems

Review Sources of Architecture. Why Domain-Specific?

What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993)

DICE: a Model-Driven DevOps Framework for Big Data

Parallel Programming Patterns Overview CS 472 Concurrent & Parallel Programming University of Evansville

Engineering at Scale. Paul Baecke

data parallelism Chris Olston Yahoo! Research

From Models to Components. Rapid Service Creation with

Lect. 2: Types of Parallelism

Principles of Compiler Construction ( )

Hammer Slide: Work- and CPU-efficient Streaming Window Aggregation

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current

Modal Models in Ptolemy

CSE 544: Principles of Database Systems

Automated Finite Element Computations in the FEniCS Framework using GPUs

Technical Briefing. The TAOS Operating System: An introduction. October 1994

Establishing the overall structure of a software system

Transcription:

Metadata for Component Optimisation Olav Beckmann, Paul H J Kelly and John Darlington ob3@doc.ic.ac.uk Department of Computing, Imperial College London 80 Queen s Gate, London SW7 2BZ United Kingdom Metadata for Component Optimisation p.

Componentisation vs. Optimisation Componentisation is arguably all about abstraction and separation of concerns Separating behaviour from implementation Components are separately built, tested, verified... Optimisation is arguably all about adapting a component to its context of use Software performance optimisation is often a disruptive, poorly separated, cross-cutting concern This talk describes some ideas on the role of metadata in managing the complexity of optimisation. Metadata is declarative information about components and data. The aim in designing metadata has to be to manage the complexity of optimisation decisions. Optimisation should be a separate concern, which does not interfere with the component code base. Metadata for Component Optimisation p.2

Context Context consists of Platform architecture resource availability Compositional structure Data sequential composition parallel composition data flow properties of the data that components operate on layout of the data aliasing information Context is Staged (becomes known in stages) Compile time Link time Deployment time Run-time Context is Domain-Specific components data Metadata for Component Optimisation p.3

Main Entities Involved in Optimisation. Components Carry declarative metadata, which form the basis of optimisation decisions May have a performance interface of tunable parameters that affect performance but not behaviour 2. Component Manager Holds the workflow specified by the application programmer. Plug-in interface for optimisations 3. Optimisations ( Meta-Components ) Separate pieces of code Independently developed, independently re-usable etc. Work on components andor the workflow Select an efficient overall implementation Metadata for Component Optimisation p.

Component Metadata for Optimisation Component metadata for optimisation has to be extensible, with an open interface for optimisations to access (and write new) metadata. Constraints are used to determine the validity of applying optimisations Tunable Performance Parameters. Optimisation components need to select the right settings when components are composed Performance Information. Describes performance characteristics as a function of tuning parameters. May be dynamic, i.e. gathered as the component runs. Metadata for Component Optimisation p.5

Case Study : Multigrid Solver Components involved: Relaxation (e.g. Jacobi), Coarsen, Refine Hierarchical, nested composition Jacobi Coarsen Jacobi Refine Metadata use def sets (not enough!) dependence vectors performance in MFLOPs Optimisations Skewing changes dependence vectors Execution by slices should change performance (SMP) Parallelisation? Metadata for Component Optimisation p.

Case Study 2: Image Movie Processing Pipeline For feature extraction etc, compose routines to build a data-processing network. This might be done dynamically in an interactive environment. source_image 3x3 Average 3x3 Horizontal Sobel 3x3 Vertical Sobel Add Add Metadata for Component Optimisation p.7

Case Study 2: Image Movie Processing Pipeline Metadata 3x3 Horizontal Sobel 3x3 Average Add source_image 3x3 Vertical Sobel Use Def Regions def Add use Execution by-chunks requires regions to growshrink through the pipeline. Optimisations Data-driven demand-driven Execution by chunks intermediate data? Task farm for stream of frames Each filter is actually a specialisation of a generic filter. Specialisation can yield > 0 speedup. Components should be optimised for particular architecture. Up to 30% improvement by recompiling for a particular i8-style architecture. Metadata for Component Optimisation p.8

# + ' ' ' ' ' " - 3! - 8 8 8 8 8 Case Study 3: Parallel Linear Algebra Solver Metadata Placement constraints enumerate placements? Iterative Solver, implemented by composing parallel basic linear algebra components compact representations (affine functions, shown in part in the diagram). 0 ) * Performance: Number of communications?, &% Optimisations 2 # 3 '( $ Data placement optimisation " 3 0 minimise overall redistributions 5 compact representation reduces O-complexity of optimisation 89 7 Metadata for Component Optimisation p.9

What makes good metadata for optimisation? It s all about managing the complexity of optimisation Well-designed metadata must factorise a complex optimisation space mean that optimising the composition is cheaper than opening the boxes and optimising the whole. We must be able to reason about the cost of optimisation. This is made necessary by the staged nature of context Need to decide whether to (re-)optimise at multiple stages. Context is staged, so metadata should be staged Optimisations must be able to (re-)write metadata Domain-specific Using domain-specific semantics should facilitate better optimisation Metadata for Component Optimisation p.0

Component Optimisation and Program Generation It is unrealistic, and infeasible, to have a component repository that contains optimised implementations for all contexts of component use. On-demand program generation is the answer Optimisation( high-level component ) optimised implementation component component2 composite component this has to include generating metadata Require program generation technologies that allow expressing optimisation code transformation as a separate concern, and which allow formal reasoning AOP? Probably not powerful enough, others? This talk has outlined a set of ideas on where the hard work in the optimisation part of WP3 Task 3.3 lies. Metadata for Component Optimisation p.