INSPIRE The Insieme Parallel Intermediate Representation Herbert Jordan, Peter Thoman, Simone Pellegrini, Klaus Kofler, and Thomas Fahringer University.

Slides:



Advertisements
Similar presentations
Understand and appreciate Object Oriented Programming (OOP) Objects are self-contained modules or subroutines that contain data as well as the functions.
Advertisements

Programming Languages for End-User Personalization of Cyber-Physical Systems Presented by, Swathi Krishna Kilari.
Parallel Processing with OpenMP
Unified Parallel C at LBNL/UCB Implementing a Global Address Space Language on the Cray X1 Christian Bell and Wei Chen.
A Process Splitting Transformation for Kahn Process Networks Sjoerd Meijer.
The OpenUH Compiler: A Community Resource Barbara Chapman University of Houston March, 2007 High Performance Computing and Tools Group
Coding Standard: General Rules 1.Always be consistent with existing code. 2.Adopt naming conventions consistent with selected framework. 3.Use the same.
NewsFlash!! Earth Simulator no longer #1. In slightly less earthshaking news… Homework #1 due date postponed to 10/11.
INSPIRE The Insieme Parallel Intermediate Representation Herbert Jordan, Peter Thoman, Simone Pellegrini, Klaus Kofler, and Thomas Fahringer University.
1 Lawrence Livermore National Laboratory By Chunhua (Leo) Liao, Stephen Guzik, Dan Quinlan A node-level programming model framework for exascale computing*
OpenCL Peter Holvenstot. OpenCL Designed as an API and language specification Standards maintained by the Khronos group  Currently 1.0, 1.1, and 1.2.
March 18, 2008SSE Meeting 1 Mary Hall Dept. of Computer Science and Information Sciences Institute Multicore Chips and Parallel Programming.
TM Pro64™: Performance Compilers For IA-64™ Jim Dehnert Principal Engineer 5 June 2000.
1 Tuesday, November 07, 2006 “If anything can go wrong, it will.” -Murphy’s Law.
DISTRIBUTED AND HIGH-PERFORMANCE COMPUTING CHAPTER 7: SHARED MEMORY PARALLEL PROGRAMMING.
Cpeg421-08S/final-review1 Course Review Tom St. John.
Parallel Programming Models and Paradigms
Establishing the overall structure of a software system
A Static Analysis Framework For Embedded Systems Nathan Cooprider John Regehr's Embedded Systems Group.
Center for Embedded Computer Systems University of California, Irvine SPARK: A High-Level Synthesis Framework for Applying.
Tile Reduction: the first step towards tile aware parallelization in OpenMP Ge Gan Department of Electrical and Computer Engineering Univ. of Delaware.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Architectural Design.
Hossein Bastan Isfahan University of Technology 1/23.
SEC(R) 2008 Intel® Concurrent Collections for C++ - a model for parallel programming Nikolay Kurtov Software and Services.
Darema Dr. Frederica Darema NSF Dynamic Data Driven Application Systems (Symbiotic Measurement&Simulation Systems) “A new paradigm for application simulations.
Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded.
Budapest, November st ALADIN maintenance and phasing workshop Short introduction to OpenMP Jure Jerman, Environmental Agency of Slovenia.
A Prototypical Self-Optimizing Package for Parallel Implementation of Fast Signal Transforms Kang Chen and Jeremy Johnson Department of Mathematics and.
OpenMP in a Heterogeneous World Ayodunni Aribuki Advisor: Dr. Barbara Chapman HPCTools Group University of Houston.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
Introduction to Object Oriented Programming CMSC 331.
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
1 Parallel Programming Aaron Bloomfield CS 415 Fall 2005.
1 Optimizing compiler tools and building blocks project Alexander Drozdov, PhD Sergey Novikov, PhD.
Copyright © Curt Hill Structured Data What this course is about.
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
Shared Memory Parallelism - OpenMP Sathish Vadhiyar Credits/Sources: OpenMP C/C++ standard (openmp.org) OpenMP tutorial (
ISBN Object-Oriented Programming Chapter Chapter
Contemporary Languages in Parallel Computing Raymond Hummel.
Shangkar Mayanglambam, Allen D. Malony, Matthew J. Sottile Computer and Information Science Department Performance.
© Fraunhofer IESE Fraunhofer IESE Multi-Language Development of Embedded Systems Dr. Thomas Kuhn Tel.:
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
1 Data Architecture Strawman - Grimshaw Important points Everything is a service (object) >All have a name (EPR) and an interface (type) One or more base.
CS212: Object Oriented Analysis and Design Lecture 30: Namespace and Other Advanced Topics.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Parallel Computing Presented by Justin Reschke
C# Fundamentals An Introduction. Before we begin How to get started writing C# – Quick tour of the dev. Environment – The current C# version is 5.0 –
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
A Single Intermediate Language That Supports Multiple Implemtntation of Exceptions Delvin Defoe Washington University in Saint Louis Department of Computer.
The architecture of the P416 compiler
Introduction to Compiler Construction
Conception of parallel algorithms
Dynamic Data Driven Application Systems
Rean Griffith‡, Gail Kaiser‡ Presented by Rean Griffith
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
CMPE419 Mobile Application Development
Model-Driven Analysis Frameworks for Embedded Systems
Dynamic Data Driven Application Systems
Compiler Back End Panel
Compiler Back End Panel
Software Architecture
Compiler Front End Panel
Jinquan Dai, Long Li, Bo Huang Intel China Software Center
WG4: Language Integration & Tools
HPC User Forum: Back-End Compiler Technology Panel
CMPE419 Mobile Application Development
Presentation transcript:

INSPIRE The Insieme Parallel Intermediate Representation Herbert Jordan, Peter Thoman, Simone Pellegrini, Klaus Kofler, and Thomas Fahringer University of Innsbruck This research has been partially funded by the Austrian Research Promotion Agency under contract (AutoCore) and by the FWF Austrian Science Fund under contract I01079 (GEMSCLAIM).

Parallel Programming  OpenMP  Pragmas (+ API)  Cilk  Keywords  MPI  library  OpenCL  library + JIT ‘hidden’ in compiler IRs treated like ordinary APIs coordinated by user

The Insieme Vision OpenCL / MPI / Insieme Runtime / others OpenMP / Cilk / OpenCL / MPI / others IR to establish a research platform for coarse grained, real world, hybrid parallelism

The Insieme Infrastructure University of Innsbruck

INSPIRE Requirements OpenMP / Cilk / OpenCL / MPI / others INSPIRE complete unified explicit analyzable transformable compact high level whole program open system extensible OpenCL / MPI / Insieme Runtime / others

INSPIRE: Organization  Core Language  type system supporting generic types  full sequential & parallel control flow  extension infrastructure  Extensions  parameterized abstract data types ( ADT s)  to support extensions and external interfaces

INSPIRE: Organization  Core Language  type system supporting generic types  full sequential & parallel control flow  extension infrastructure  Extensions  parameterized abstract data types ( ADT s)  e.g. mutable state, arrays, C++ containers, …

Types  7 type constructors:

Expressions  8 kind of expressions:

Statements  9 types of statements:

Extensions

Parallel Model

Parallel Model (2)

Overall Structure  Structural – opposed to nominal systems  full program is a single expression

Overall Structure  Consequences:  every entity is self-contained  no global lookup-tables or variables  all functions are self-confined  local modifications are isolated  Also:  IR models execution – not code structure  path in tree = call context (!)

Performance Impact

Conclusion  INSPIRE is designed to  represent and unify parallel applications  self-contained, execution oriented structure  simplify whole-program manipulations  comprehensive parallel model  sufficient to model leading standards for parallel programming

Thank You! Visit: Contact:

The Insieme Vision OpenCL / MPI / Insieme Runtime / others OpenMP / Cilk / OpenCL / MPI / others to establish a research platform for coarse grained, real world, hybrid parallelism INSPIRE

The Insieme Infrastructure University of Innsbruck

Language Core

Type System  Based on 7 type constructors:

Expressions

Type System  abstrat, parameterized types  to model ADTs, e.g. int32, array, …  structs / unions  function types  closure types  member function, constructor and destructor types  type variables (generic types)  recursive types

IR Toolbox  Semantic Checks  type checker  Imperative consistency checks  Utilities  front-ends / back-ends  pattern matcher / term rewriting system  polyhedral analysis & transformations  IR dumper, printer and parser  …

Derived Work [TODO: cite]  Auto tuning of parallel codes  Automatic OpenCL kernel splitting  => distribution among multiple devices  Compiler aided loop scheduling  Automated task granularity control for nested recursive codes

Ongoing Activities  Comprehensive analysis framework  Supporting industrial C++ applications  Distributed Runtime system  language ext. for distributed memory  Heterogeneous embedded environments

Expressions

Language Core