Back-end (foundation) Working group X-stack PI Kickoff Meeting Sept 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-end 1. Choice of implementation primitives to maximize parallelism and data placement flexibility 2. Manage algorithm and implementation variety/heterogeneity/multiplicity 3. Resilience and fault-diagnosis/error management/recovery 4. Intelligent placement/scheduling of compute and data, that balance parallelism (realized parallelism) and data locality -- from above 5. Online resource management (dynamic energy and configuration management, self-awareness) -- from below 6. 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-TEKTGDEGASXPRESSDAXGVRX-TuneCorvetteSLEEC Choice of primitives Manage Algo. and Imp. ? ? Resilience Placement/ Scheduling Resource Management OS/ Platform Interface Needs more investment Gaps Interoperation Support for “strong scaling” – latency minimization Others?