Post on 02-Jan-2016
Back-end (foundation) Working group
X-stack PI Kickoff MeetingSept 19, 2012
Team
• Ron Brightwell• Vivek Sarkar• Hartmut Kaiser• Costin Iancu• Andrew A. Chien• Saman Amarsinghe
• Wilfred Pinfold• Shekhar Borkar• Yonghong Yan• Adolfi Hoisie• Thomas Sterling• Mattan Erez• Rishi Khan
Back-end Mission
• Take Front-end information and Platform/system information achieve energy-efficient, desired performance, resilient execution in the face of extremely complex Exascale hardware– Front-end information: algorithmic choice,
expression of parallelism, other HL semantic information, application goals)
– Platform/system information: configuration, capabilities, dynamic state, error/faults, other site/system constraints)
What is not Back-End
• Front-end Issues: (Programmer Facing…)– expression of parallelization, algorithmic locality– algorithmic details – expression of locality– domain specific information– capture other high level semantic information– tools (debugging, etc.)– job scheduling
What is Back-End?
• - what is the back end? (parallelization, localization); platform-facing
• - starts at the level of lowering in the compiler• - architecture level decisions• - runtime and resilience decisions• - overlapping of management of technology spaces,
but some concerns we will exclude
• Is back-end synonymous with runtime? No, but there is some overlap
What is Back-End? (though not exclusively)
• (re)mapping the application• dealing with the application
execution aspects platform• tuning annotations• adaptive feedback (performance data
capture for front end)• Autotuning• dealing with compute element
heterogeneity – macroscopic (different chips)– microscopic (on-chip)– technology induced heterogeneity
• memory hierarchy heterogeneity• Resiliency• degradation / long term change
• scheduling - large-grain, fine-grain• migration - large-grain, fine-grain• data mapping (addressability,
distribution)• data movement• implementation locality (and
hierarchy)• architecture locality (and
hierarchy)• energy management - dvfs, power
state, speed config, reliability config, etc.
• over provisioned hardware (control)=> typically includes the part of the runtime which is application facing
=> typically doesn’t include the part of the runtime that is systems facing
Front End
Back End
Relation to Compiler, Runtime, Operating Systems
Application
HL Compiler
LL Compiler
Runtime
OS + Hardware
Top 5 Challenges for Back-end1. Choice of implementation primitives to maximize parallelism and data placement flexibility 2. Manage algorithm and implementation variety/heterogeneity/multiplicity3. Resilience and fault-diagnosis/error management/recovery4. Intelligent placement/scheduling of compute and data, that balance parallelism (realized parallelism) and data locality -- from above5. Online resource management (dynamic energy and configuration management, self-awareness) -- from below6. Interface to OS and Platform - services that provide efficient, right information - static and system information - resource access and protection - resource configuration control (performance and energy, degree of parallelism, precision, memory hierarchy, redundancy - error coverage etc.)
Back-End X-stack Activity
D-TEK TG DEGAS XPRESS DAX GVR X-Tune Corvette SLEEC
Choice of primitives Manage Algo. and Imp. ? ?
Resilience Placement/ Scheduling Resource Management OS/ Platform Interface
Needs more investmentGaps • Interoperation• Support for “strong scaling” – latency minimization• Others?