productivity for hpc
play

Productivity for HPC Rob Hoekstra PSAAP III Pre-Proposal - PowerPoint PPT Presentation

Emerging Technologies in Productivity for HPC Rob Hoekstra PSAAP III Pre-Proposal Conference, March 14, 2018 Sandia National Laboratories is a multi-mission laboratory managed and operated by National Technology and Engineering Solutions of


  1. Emerging Technologies in Productivity for HPC Rob Hoekstra PSAAP III Pre-Proposal Conference, March 14, 2018 Sandia National Laboratories is a multi-mission laboratory managed and operated � by National Technology and Engineering Solutions of Sandia, LLC, a wholly owned � subsidiary of Honeywell International, Inc., for the U.S. Department of Energy’s � 1 SAND2018-2551 PE � National Nuclear Security Administration under contract DE-NA0003525.

  2. Complexity UP, Productivity DOWN � HW is more complex � Software stack is more complex � Programming Environment/Model is more complex � Execution/Operations Environment is more complex � All these factors can negatively impact PRODUCTIVITY 2

  3. Productivity has been declining rapidly in the HPC environment � Dramatic increase in complexity of algorithms and applications coupled with a dramatic increase in complexity, diversity and scale of HW and execution environments � AND CS/CSE research on productivity pays little attention to our HPC-specific problems (there are counter-examples such as IDEAS) 3

  4. Even worse for our Mission Codes � Complexity, size and dependencies of our codes is well above average even in the HPC community � Verification/validation requirements create a much higher bar for incorporation of new capability whether it be physics, algorithms or performance optimization � And to make it worse, leadership-class platforms environments (SW stack, etc.) are often be more immature/ fragile than average 4

  5. Bottlenecks � Code development � Code correctness/testing � Platform specific tuning/optimization � Problem setup � Job Execution & Steering � Analysis & Viz 5

  6. Code Development � MPI/Fortran code Applications & Advanced Analysis Components Teko: Block Segregated Preconditioning � � C++, hierarchical � Anasazi: Parallel Eigensolvers � Belos: Parallel Block Iterative Solvers (FT/CA) parallel constructs, � MueLU: Multi-Level Preconditioning Anasazi: Eigensolvers Belos: Linear Sovlers � Ifpack2: ILU Subdomain Preconditioning layered dependencies Muelu: MultiGrid Preconditioners � ShyLU: Hybrid MPI/Threaded Linear Solver � Tpetra: Distributed Linear Algebra Ifpack2: Subdomain ShyLU/Basker: Direct Solvers Preconditioners � Zoltan2 Load Balancing & Partitioning Tpetra: Scalable Linear Algebra � Kokkos: Heterogeneous Node Parallel Kernels Kokkos Sparse Linear Algebra Zoltan2: Load Kokkos Containers Balance/ Partitioning Kokkos Core/Kernels Back-ends: OpenMP, pthreads, Cuda, Qthreads, ... 6

  7. Testing/Verification � “Eyeball” Norm � Large verification test suites, non-reproducibility, etc. 7

  8. Performance tuning/optimization � PRINTF (still fall back to this many times:) � Performance analysis and “divination” 8

  9. Problem Setup � Card Deck � Complex workflow with geometry/meshing, etc. 9

  10. Cubit Hex Meshing Capability housing geometry has 13 ‘volumes’ decomposed into meshable volumes Cubit Journal file – 6200 lines long � Manually constructed � 800+ manually specified webcuts defined � 1500+ geometry cleanup commands � 500+ meshing commands � 13 volumes to 500 webcut volumes � 1000+ hours of tedium � Turn around time: Turn around time: � 9 months 9 months � 10

  11. Job execution/steering � C:> Run app.exe � Complex workflows of multi-physics, multiple codes, steering, data collection Lear Workflow Simulation Setup driver Application Common Model Inputs Ensemble or Iterative Workflow Abstracted Storage Interface HPC system 11

  12. Analysis/Viz � Quantity = X � Complex data flows/viz packages/UQ/validation 12

  13. Areas of opportunity � What are future HPC “High Productivity” Programming Models? � What are future HPC “High Productivity” Development Environments? � What are future HPC “High Productivity” Runtime/Execution Environments? AND � Is there a more coherent unification of design time, compile time and runtime environments/tools?

  14. Programming Models � What are future HPC “High Productivity” Programming Models? � Portability Abstractions � Async Multi-Tasking DARMA � � DSLs � Component-based development Uintah � Charm++ � Legion RAJA � A Data-Centric Parallel Programming System 14

  15. Development Environment � What are future HPC “High Productivity” Development Environments? � IDEs � Auto-tuning � Higher-level languages/scripting � Open compiler environments � Automated testing � CSE SW Engineering “Best Practices” Use Cases: Use Cases: Terrestrial Terrestrial Modeling � Modeling Software Software Productivity for Productivity for Extreme-scale Extreme-scale Extreme-scale Extreme-scale Methodologie Methodologie Science � Science Scientific Software Scientific Software s for Software � s for Software Development Kit Development Kit Productivity � Productivity (xSDK xSDK) � 15

  16. PIs: Michael Heroux (SNL) and Lois Curfman McInnes (ANL) � Co-PIs: David Bernholdt (ORNL), Todd Gamblin (LLNL), Osni Marques (LBNL), David Moulton (LANL), Boyana Norris (Univ of Oregon) � www.ideas-productivity.org www.ideas-productivity.org � IDEAS: Interoperable Design of Extreme-scale Application Software • Project began in Sept 2014 as ASCR/BER partnership to improve application software productivity, quality, and sustainability Use Cases: Use Cases: Terrestrial Terrestrial Resources: https://ideas-productivity.org/resources, featuring Modeling � Modeling • WhatIs and HowTo docs: concise characterizations & best practices Software Software Productivity for Productivity for Extreme-scale Extreme-scale • What is Software Configuration? � How to Configure Software Science Science � Extreme-scale Extreme-scale Methodologies Methodologies Scientific Software Scientific Software for Software for Software � Development Kit Development Kit • What is CSE Software Testing? � What is Version Control? Productivity � Productivity (xSDK xSDK) � • What is Good Documentation? � How to Write Good Documentation • How to Add and Improve Testing in a CSE Software Project How to do Version Control with Git in your CSE Project …. More under development •

  17. Runtime/Execution Environment � What are future HPC “High Productivity” Runtime/Execution Environments? Lear Workflow Simulation Setup driver Application � Workflows Common Model Inputs � Tasking Ensemble or Iterative Workflow � Machine Learning � Problem Setup � Containers Abstracted Storage Interface HPC system 17

  18. Productivity improvement can be a common thread in PSAAP center activities � “Focus” on productivity enhancing technologies that are highly synergistic with other goals � Workflows � Programming Models/Environments � Machine Learning � Component-based Approaches � Tell us how your center will leverage research in these areas will have a big positive impact on PRODUCTIVITY. 18

  19. Questions? 19 Michael Heroux 2017 DOE CSGF Meeting �

  20. Code-and-Fix Development Approach 100 % Recoding and Porting to new Platforms Visible Progress Percent Effort (Writing code, computing results) Planning 0 % Time Endlife Effort Early Effort Midlife Effort Adapted from Software Project Profile Profile Profile Survival Guide, Steve McConnell 20

  21. Simple Planned Development Approach 100 % Recoding and Porting to new Platforms Visible Progress (Writing code, Percent computing results) Effort Planning 0 % Time Ongoing Effort Early Effort Midlife Effort Profile Profile Profile 21

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend