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

productivity for hpc
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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 National Nuclear Security Administration under contract DE-NA0003525.

SAND2018-2551 PE

Emerging Technologies in Productivity for HPC

Rob Hoekstra PSAAP III Pre-Proposal Conference, March 14, 2018

1

slide-2
SLIDE 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

slide-3
SLIDE 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

slide-4
SLIDE 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

slide-5
SLIDE 5

Bottlenecks

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

5

slide-6
SLIDE 6

Code Development

MPI/Fortran code C++, hierarchical parallel constructs, layered dependencies

6

  • Teko:

Block Segregated Preconditioning

  • Anasazi: Parallel Eigensolvers
  • Belos:

Parallel Block Iterative Solvers (FT/CA)

  • MueLU:

Multi-Level Preconditioning

  • Ifpack2:

ILU Subdomain Preconditioning

  • ShyLU:

Hybrid MPI/Threaded Linear Solver

  • Tpetra:

Distributed Linear Algebra

  • Zoltan2

Load Balancing & Partitioning

  • Kokkos:

Heterogeneous Node Parallel Kernels Applications & Advanced Analysis Components Back-ends: OpenMP, pthreads, Cuda, Qthreads, ... Anasazi: Eigensolvers Belos: Linear Sovlers Muelu: MultiGrid Preconditioners ShyLU/Basker: Direct Solvers Ifpack2: Subdomain Preconditioners Tpetra: Scalable Linear Algebra Kokkos Sparse Linear Algebra Kokkos Containers Zoltan2: Load Balance/ Partitioning Kokkos Core/Kernels

slide-7
SLIDE 7

Testing/Verification

“Eyeball” Norm Large verification test suites, non-reproducibility, etc.

7

slide-8
SLIDE 8

Performance tuning/optimization

PRINTF (still fall back to this many times:) Performance analysis and “divination”

8

slide-9
SLIDE 9

Problem Setup

Card Deck Complex workflow with geometry/meshing, etc.

9

slide-10
SLIDE 10

Cubit Hex Meshing Capability

10

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

slide-11
SLIDE 11

Job execution/steering

C:> Run app.exe Complex workflows of multi-physics, multiple codes, steering, data collection

11

Setup Simulation Application Lear Workflow driver Ensemble or Iterative Workflow Abstracted Storage Interface HPC system Common Model Inputs

slide-12
SLIDE 12

Analysis/Viz

Quantity = X Complex data flows/viz packages/UQ/validation

12

slide-13
SLIDE 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?

slide-14
SLIDE 14

Programming Models

What are future HPC “High Productivity” Programming Models? Portability Abstractions Async Multi-Tasking DSLs Component-based development

14

RAJA

Legion

A Data-Centric Parallel Programming System

DARMA

Charm++

Uintah

slide-15
SLIDE 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”

15

Software Software Productivity for Productivity for Extreme-scale Extreme-scale Science Science

Methodologie Methodologie s for Software s for Software Productivity Productivity

Use Cases: Use Cases: Terrestrial Terrestrial Modeling Modeling

Extreme-scale Extreme-scale Scientific Software Scientific Software Development Kit Development Kit (xSDK xSDK)

slide-16
SLIDE 16

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

Resources: https://ideas-productivity.org/resources, featuring

  • WhatIs and HowTo docs: concise characterizations & best practices
  • What is Software Configuration? How to Configure Software
  • What is CSE Software Testing? What is Version Control?
  • 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

www.ideas-productivity.org www.ideas-productivity.org

Software Software Productivity for Productivity for Extreme-scale Extreme-scale Science Science

Methodologies Methodologies for Software for Software Productivity Productivity

Use Cases: Use Cases: Terrestrial Terrestrial Modeling Modeling

Extreme-scale Extreme-scale Scientific Software Scientific Software Development Kit Development Kit (xSDK xSDK)

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)

slide-17
SLIDE 17

Runtime/Execution Environment

What are future HPC “High Productivity” Runtime/Execution Environments? Workflows Tasking Machine Learning Problem Setup Containers

17

Setup Simulation Application Lear Workflow driver Ensemble or Iterative Workflow Abstracted Storage Interface HPC system Common Model Inputs

slide-18
SLIDE 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

slide-19
SLIDE 19

Questions?

19

Michael Heroux 2017 DOE CSGF Meeting

slide-20
SLIDE 20

20

Visible Progress (Writing code, computing results) 100 % 0 % Planning Recoding and Porting to new Platforms

Percent Effort Time

Midlife Effort Profile Endlife Effort Profile

Adapted from Software Project Survival Guide, Steve McConnell

Code-and-Fix Development Approach

Early Effort Profile

slide-21
SLIDE 21

21

Visible Progress (Writing code, computing results) 100 % 0 % Planning Recoding and Porting to new Platforms

Percent Effort Time

Simple Planned Development Approach

Midlife Effort Profile Ongoing Effort Profile Early Effort Profile