150 likes | 305 Views
INSPIRE The Insieme Parallel Intermediate Representation. Herbert Jordan, Peter Thoman , Simone Pellegrini , Klaus Kofler , and Thomas Fahringer University of Innsbruck.
E N D
INSPIREThe 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).
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 OpenMP / Cilk / OpenCL / MPI / others to establish a research platform for coarse grained, real world, hybrid parallelism IR OpenCL / MPI / Insieme Runtime / others
The Insieme Infrastructure developed @ University of Innsbruck
INSPIRE Requirements OpenMP / Cilk / OpenCL / MPI / others • complete • unified • explicit • analyzable • transformable • compact • high level • whole program • open system • extensible INSPIRE 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 (ADTs) • to support extensions and external interfaces
Types • 7 type constructors:
Expressions • 8 kind of expressions:
Statements • 9 types of statements:
Parallel Model • Parallel Control Flow • defined by jobs: • processed cooperatively by thread groups
Parallel Model (2) • one work-sharing construct • one data-sharing construct • point-to-point communication • abstract channels type:
Overall Structure • Structural – opposed to nominal systems • fullprogram is a singleexpression
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 modelsexecution – not code structure • path in tree = call context (!)
Conclusion • INSPIRE is designed to • represent and unifyparallelapplications • self-contained, execution oriented structure • simplify whole-program manipulations • comprehensive parallel model • sufficient to model leading standards for parallel programming
Thank You! Visit: http://insieme-compiler.org Contact: herbert@dps.uibk.ac.at