General Purpose and Domain Specific Languages (GPLs and DSLs) Katherine Yelick, LBNL (moderator) Andrew Lumsdaine, Indiana University Armando Solar-Lezama, MIT Emina Torlak, UCB John Mellor-Crummey, Rice Mike Wilde, ANL Panel Questions • Is there support for specific science domains? • Does the language support programming both within and between compute nodes? • What types of parallelism (implicit, SPMD, data, task) are supported? • What types of synchronization exist in the languages? • How is communication between tasks handled? Is it limited by task structure, type constraints, etc.? • What other novel features exist for managing energy, resilience, reproducibility, or other systems features? XStack Review 2 Panel Questions • • • • • • GPL or DSL? Inter or Intra node? Parallelism? (implicit, SPMD, data, task) Synchronization? Communication? Features for energy, resilience, reproducibility, or other systems features? XStack Review 3 The X-Stack Programming Model Puzzle Pieces X10 Swift 1 DSL? No No Inter/Intra2 Node? Same Inter Types of parallelis Task, Map3m Reduce Task 4 Synch UPC Haban ero-C CAF (HC) 2.0 Both Both Same Neither Both Task SPMD SPMD N/A Task Finish, Asynch, Phasers Futures, atomics, Actors Events, locks, cofence, barriers, finish. atomics. PGAS 5 Comm Yes LE No Barriers locks Conditiona Implicit l atomics dataflow Atomics Shared memory C No SPMD No SWAR SLEE M/SCA N/A Shared PGAS & mem + & collect- {MPI, collectives N/A GASNet} ives. Resilience Energy, Resilience (in Automatic (in 6 resilience,... progress) retry progress) No Sketch XPI Yes No Yes Intra Same Intra Implicit Tasks Dependences, codelet chaining, latches, barriers, locks, etc. Futures Dataflo w Futures , remote codelet s Active GAS Resilience Resilience Resilience (in (in Heterogen (in progress) progress) eity progress) Rosette Resilience (in progress) Implicit • Add your language / programming model to the gdoc https://docs.google.com/a/lbl.gov/spreadsheet/ccc?key=0AnxagJ H-lElndDE5OFF3YkVqUFQtOHY3alZveGlYTFE#gid=0 XStack Review 5 Exascale Coordination Summary of X-Stack • Goals: – Enable DOE applications to take maximum use of future architectures ( MPI+X is part of the plan) – Broaden the base of future applications by improving programmability (may not involve MPI) • Strategy: – Narrow the possible values X and help define/refine X and MPI – Identify a small set of challenges of future systems (e.g., explicit memory management, heterogeneity, memory bw, coherence) and evaluated possible solutions XStack Review 6 GPL / DSL MarketPlace • Building Solver-Aided DSLs with Rosette (Emina Torlak, UCB) – Rosette is a new framework for rapid design and prototyping of solver-aided DSLs. • SPI: the eXascale ParalleX Intermediate form (Andrew Lumsdaine, Indiana University) – The XPRESS team will discuss the eXascale ParalleX Intermediate form (XPI), a low-level API to HPX functionality that can be directly called as a library or used as a compiler target. • Sketch: a system for program synthesis (Armando Solar-Lezama, MIT) – The Sketch system uses a • Swift: a parallel scripting language (Michael Wilde, Argonne) – The Swift scripting language, a portable parallel language for composing parallel applications. XStack Review 7