Download presentation
Presentation is loading. Please wait.
Published byAllison Wedge Modified over 10 years ago
1
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 834307 (AutoCore) and by the FWF Austrian Science Fund under contract I01079 (GEMSCLAIM).
2
Parallel Programming OpenMP Pragmas (+ API) Cilk Keywords MPI library OpenCL library + JIT ‘hidden’ in compiler IRs treated like ordinary APIs coordinated by user
3
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
4
The Insieme Infrastructure developed @ University of Innsbruck
5
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
6
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
7
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, …
8
Types 7 type constructors:
9
Expressions 8 kind of expressions:
10
Statements 9 types of statements:
11
Extensions
12
Parallel Model
13
Parallel Model (2)
14
Overall Structure Structural – opposed to nominal systems full program is a single expression
15
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 (!)
16
Performance Impact
17
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
18
Thank You! Visit: http://insieme-compiler.orghttp://insieme-compiler.org Contact: herbert@dps.uibk.ac.atherbert@dps.uibk.ac.at
19
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
20
The Insieme Infrastructure developed @ University of Innsbruck
21
Language Core
22
Type System Based on 7 type constructors:
23
Expressions
24
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
25
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 …
26
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
27
Ongoing Activities Comprehensive analysis framework Supporting industrial C++ applications Distributed Runtime system language ext. for distributed memory Heterogeneous embedded environments
28
Expressions
29
Language Core
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.