landing on mars: petascale unstructured computational ... · human-scale mars landers require new...

33
National Aeronautics and Space Administration Landing on Mars: Petascale Unstructured Computational Fluid Dynamics on Summit Ashley Korzun Eric Nielsen Aaron Walden Bill Jones Jan - Reneé Carlson NASA Langley Research Center Pat Moran, Chris Henze NASA Ames Research Center Tim Sandstrom Inu Teq , LLC GTC DC, Nov 6 2019, Washington, DC Mohammad Zubair Old Dominion University Justin Luitjens NVIDIA Corp.

Upload: others

Post on 23-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

National Aeronautics and Space Administration

Landing on Mars: Petascale

Unstructured Computational Fluid

Dynamics on Summit

Ashley Korzun

Eric Nielsen

Aaron Walden

Bill Jones

Jan-Reneé Carlson

NASA Langley Research Center

Pat Moran, Chris Henze

NASA Ames Research Center

Tim Sandstrom

Inu Teq, LLC

GTC DC, Nov 6 2019, Washington, DC

Mohammad Zubair

Old Dominion University

Justin Luitjens

NVIDIA Corp.

Page 2: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Current Summit Effort

• Allocations for CY2019 through Summit Early Science and INCITE programs

• Total award of 305,000 Summit node-hours; FUN3D equivalent of ~305,000,000 Xeon Skylake core-hours

• Team members include NASA Langley, NASA Ames, NVIDIA, and Old Dominion University

• LaRC: Science and computational expertise

• ARC: Large-scale visualization

• NVIDIA, ODU: Kernel optimizations

Goals

• Science: Better understanding of retropropulsion

flow physics during Mars entry of human-scale lander

• Computational: Demonstrate production readiness and

efficiency advantages of GPU implementation at scale

“Enabling Human Exploration of the Red Planet”

2

Page 3: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing

• Cannot use heritage, low-L/D rigid capsules deployable hypersonic decelerators or mid-L/D rigid aeroshells

• Cannot use parachutes retropropulsion, from supersonic conditions to touchdown

• No alternative to an extended, retropropulsive phase of flight

Retropropulsion for Human Mars Exploration

Viking MPF MER PHX MSL Human-Scale

Lander

(Projected)

Diameter (m) 3.505 2.65 2.65 2.65 4.5 16 - 19

Entry Mass (t) 0.930 0.585 0.840 0.602 3.151 47 - 62

Landed Mass (t) 0.603 0.360 0.539 0.364 1.541 36 - 47

Landing Altitude

(km MOLA)-3.5 -1.5 -1.3 -3.5 -4.4 +/- 2.0

Peak Heat Rate

(W/cm2)24 106 48 56 ~120 ~120 - 350

Steady progression of “in family” EDL

Vehicles to

Scale

3

Page 4: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

• Aerodynamic effects can be significant during powered descent

• Retropropulsion environment can significantly impact vehicle performance

• Large variations in aero forces/moments challenge the ability to maintain

control of the vehicle and accurately reach the landing target

• Sensitive to engine operating conditions, start-up transients, atmospheric

conditions, engine configuration and vehicle integration

• Highly unsteady flow field behavior, broad range of length scales, very

large computational domains requiring fine resolution, strong shocks

and massively separated flows all must be addressed to accurately simulate

retropropulsion in an atmosphere

Powered Flight in an Atmosphere

Vehicle-level design decisions are directly impacted by the ability to

characterize and bound aerodynamic-propulsive interference effects

Examples of unsteady RANS solutions

with insufficient spatial resolution, while

stressing available conventional

computational resources

4

Page 5: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

• Simulating interactions between atmosphere and retropropulsion plumes at sufficient spatial resolution to

resolve governing phenomena with a high level of confidence not feasible with conventional computational

capabilities

• Single solution requires 200,000+ CPU hours with severe limitations on spatial resolution

• Thousands of solutions eventually required to model flight performance

Enabling Capabilities Provided by Summit

• Application of Detached Eddy Simulation methods with resolution of relevant length scales

• Meaningful statistics and characterization of unsteady flowfield behaviors

• Domain dimensions in kilometers with the ability to resolve flow features on the order of centimeters

• Complete redefinition of the state-of-the-art for powered descent aerodynamics characterization for both

requisite accuracy and computational environment/implementation

Why Summit?

5

Page 6: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Summit Campaign

• Rather than pursue small number of “hero” simulations, exploring large ensemble of

asymmetric throttle conditions across freestream Mach numbers from 0.8 to 2.4

• Spatial mesh sizes ranging from ~1-10 billion elements

• Long temporal duration (~1.6 sec real time) to capture diverse transients and statistics

• Individual runs can reach 200 TB of output, considered sending via truck

• Currently averaging 20 TB / day from ORNL to NAS (shiftc tool)

Time-averaged Ttot6

Page 7: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Preliminary Results – Mach 2.4 (1A)

0.20

-0.20

0.10

-0.10

0.0 Cp

All engines at 80% throttle (pe/p0,2 = 1.25)

Time-averaged forebody Cp contours

Velocity magnitude contours 7

Page 8: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,
Page 9: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,
Page 10: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

FUN3D Overview

• Established as a research code in late 1980s; now supports numerous internal and external efforts across the speed range

• Solves 2D/3D steady and unsteady Euler and RANS equations on node-based mixed element grids for compressible and incompressible flows

• General dynamic mesh capability: any combination of rigid / overset / morphing grids, including 6-DOF effects

• Aeroelastic modeling using mode shapes, full FEM, CC, etc.

• Constrained / multipoint adjoint-based design, mesh adaptation

• Distributed development team using agile/extreme software practices including 24/7 regression, performance testing

• Capabilities fully integrated, online documentation, training videos, tutorials

US Army

Georgia Tech

US Army

10

Page 11: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Early GPU-Based SimulationsTitan and Summit

AIAA High-Lift

Workshop

Tractor-Trailer

Courtesy of SmartTruck

TRAM Rotor in Hover

11

Page 12: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

FUN3D Primary Motifs

• FUN3D solves the Navier-Stokes equations

of fluid dynamics using implicit time integration

on general unstructured grids

• This approach gives rise to a large block-sparse

system of linear equations that must be solved at

each time step

• Two kernels are generally the largest contributors to run time:

• Kernel 1: Construction and storage of the compressible viscous flux Jacobians

• Kernel 2: Multicolor point-implicit linear solver used to solve Ax=b

for i = 1 to n_time_steps do

Form Right Hand Side

Form Left Hand Side

Solve Ax = b

Update Solution

end for

12

Page 13: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

History of GPU Efforts

Nov 2010 Initial discussions with Stan Posey/NVIDIA at SC10

ca. 2011 GTX 470Also GTX 480,

Tesla M2050

CUDA C Early work with Austen Duffy (FSU)* -- ~1.5x on point solver (linear algebra)

*and EM Photonics via NAVAIR

Nov 2013 K20 OpenACC Began OpenACC with Dave Norton (PGI) at SC13 – 2x on point solver

ca. 2014 K40 OpenACC Worked with Justin Luitjens to put OpenACC throughout FUN3D – many issues,

compiler bugs, poor performance

ca. 2014 K40 OpenACC Extended FUN3D MPI layer to accommodate device data – MPT bugs

ca. 2014 K40 OpenACC /

CUDA FortranWorked with Justin/Dominik Ernst to extend point solver using OpenACC and

CUDA Fortran – 4x speedup

May 2016 K40 OpenACC /

CUDA FortranORNL/UDel hackathon: Continued to struggle with OpenACC approach, Zubair

has good success with CUDA Fortran for point solver (~7x over cuBLAS)

Nov 2016 K40 /

P100

CUDA C Zubair et al. publish CUDA C point solver at SC16, eventually incorporated into

cuSPARSE

Aug 2017 V100 CUDA C ORNL/LaRC hackathon: Large speedups (~6x) on early access V100 for linear

algebra and LHS, convinced to go fully CUDA and abandon OpenACC

July 2018 V100 Kokkos Implemented point solver in Kokkos, decent speed, though cumbersome 13

Page 14: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

The Three Pillars

2018

Next-Generation

Leadership Class

Performance

2010

2016

2014

2012

Basic

Research

Software

Mini-Apps

Full App at

Node Level

Full App

at Scale

Linear

Algebra

Matrix

Assembly

Asynchronous,

Overlapped

Communication

Language

Interoperability

CUDA-Enabled

MPI

Workforce Skills

Programming Models

NASA / NVIDIA @ SC10

Partnerships & Hackathons

OpenACC CUDA Fortran

PTX CUDA C/C++ Kokkos

Hardware

Early

GPUs

Pascal

Volta

DP Support

ECC Memory

Hyper-Q

Memory Bandwidth

Fast Atomics

Larger Memory

Kepler

GPUDirect RDMA

Power Efficiency

Technology

Demonstration

Hardening and

Deployment

14

Page 15: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Implementation Overview

Goals:

• Perform entirety of FUN3D’s PDE solve on device using CUDA

• Minimal data movement between host and device

• Use FUN3D’s existing Fortran MPI-based front end

• Change as little of FUN3D as possible (esp. data structures)

15

Page 16: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Implementation Overview

Strategy:

• Translate ~130 computational kernels using miniapp

• Use iso_c_binding to create device mirrors of Fortran variables

• Push necessary data to device before time-stepping loop

• Call interfaces which bind C wrappers around CUDA kernels

• Use CUDA-aware MPI with device pointers

• Data extraction/visualization: field data pulled from device to

asynchronous Fortran buffer on host; disk I/O completely hidden

16

Page 17: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Working infrastructure imported into FUN3D

FUN3D

Fortran

Interfaces

Kern

els

Sta

te

Miniapp

Data

Module

Driver

Fortran

Kernels

C Wrappers

cudaMalloc()

cudaMemcpy()

cudaFree()

CUDA

KernelsVerification

Call

Data/code

C

Kernels

Fortran → C Translation

C → CUDA Translation

17

Page 18: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

C/Fortran Interoperability Concerns

A very brief summary of our findings:

• Use iso_c_binding

• storage_size seems to be portable

• Pointer arithmetic with transfer

• Be careful with logicals

• OpenMPI using Intel compiler does not like c_ptr

• Create interoperable mirror types to use in CUDA

18

Page 19: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Original Derived Type Interoperable Mirror Derived Type Interoperable C Struct

type, public :: elem_type

integer :: a

integer, dimension(:,:),&

allocatable :: b

integer, dimension(:,:,:),&

allocatable :: c

end type elem_type

type, bind(c) :: elem_type_p

integer(c_int) :: a

type(c_ptr) :: b

type(c_ptr) :: c

end type elem_type_p

typedef struct elem_type_p {

int a;

int* b;

int* c;

} elem_type_p;

Data Module: Derived Type Example

19

OR

DE

R M

AT

TE

RS

Page 20: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Data Module: Derived Types

20

type F_derived_type ! original

f_type :: var

f_type, allocatable :: alloc_var

end type F_derived_type

type, bind(c) :: C_bound_type

type(c_type) :: var

type(c_ptr) :: alloc_var_d

end type C_bound_type

typedef struct C_bound_type {

c_type var;

c_type* alloc_var;

} C_bound_type;

alloc_var[SIZE] // device array

Mirror original derived type with C-bound derived type

Copy to device

Interpret as struct mirroring derived type

We can use this method to access arrays of derived types with allocatables on the device

CPU Memory

GPU Memory

Page 21: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

CUDA Optimization Strategies

Our heuristics:

• Maximize concurrency while maintaining memory coalescing

‒ Node-based loop: one thread per variable if possible

‒ Edge-based loop: 2× threads per node, use atomics

‒ Cell-based loop: 1 warp per cell, atomics

‒ Favor more blocks over more threads/block

‒ Favor edge and cell-based loops

• Minimize temporary variables, seems to alleviate register pressure

• Atomics greatly outperform other race-avoidance strategies (for our code)

• Hard-code or template every scalar possible, but test performance

• Vectorize memory operations 21

Page 22: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

V100 Relative Device-level Performance

22

8.7

7.5

6.6 6.5

5.5

4.5

1.0

0.0

2.0

4.0

6.0

8.0

10.0

12.0

14.0

16.0

KNL BDW TX2 P9 EPYC SKL V100

V1

00

Sp

eed

up

Over

Arc

hit

ect

ure

KNL: Intel Xeon Phi 7230 Knights LandingBDW: 2 14-core Intel Xeon E5-2680v4 BroadwellTX2: 56-core Cavium ARM ThunderX2P9: IBM 22-core POWER9EPYC: 2 16-core AMD EPYC 7135SKL: 2 20-core Intel Xeon Gold 6148 SkylakeV100: NVIDIA Tesla V100 GPU Volta

Page 23: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Strong Scaling

23

• Several small test cases from last year (2018)

• GPUs on NVIDIA PSG cluster, 4×V100 per node, CPUs on NASA

Pleiades/Electra, Intel Xeon Broadwell/Skylake dual-socket nodes

• FUN3D strong scaling most dependent on multicolor point-implicit solver

performance, O(200) MPI transfers overlapped by interior computation

• MPI cost fixed, GPU solver 4-6× faster, less work to overlap comm.,

which poses a challenge for strong scalability

• Absolute speedup: compare node to node (dual-socket vs 4×V100)

• Relative speedup: speedup divided by number of devices

Page 24: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Strong Scaling14.6 Million Grid Points

24

1.0

2.0

4.0

8.0

16.0

32.0

64.0

1 2 4 8 16 32 64 128

Sp

ee

du

p

Number of Nodes (2xSKL or 4xV100 per node)

SKL

V100

At the peak of

scaling, 1 V100

is worth 11 SKL

Page 25: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

25

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0.06250.1250.250.5124816

Sca

lin

g E

ffic

ien

cy

Work

SKL

V100

Strong Scaling14.6 Million Grid Points

Higher

is better

Page 26: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Summit Node

512 GB RAM

Dual Socket, 22-Core

IBM Power9

4 Threads/Core

Dual Socket, 20-Core

Xeon Skylake

2 Threads/Core, AVX-512

192 GB RAM

Typical x86 Node~1 Teraflop

16 G

B

HB

M

16 G

B

HB

M

16 G

B

HB

M

16 G

B

HB

M

16 G

B

HB

M

16 G

B

HB

M

NVIDIA V1005,120 CUDA Cores

640 Tensor Cores

NVIDIA V1005,120 CUDA Cores

640 Tensor Cores

NVIDIA V1005,120 CUDA Cores

640 Tensor Cores

NVIDIA V1005,120 CUDA Cores

640 Tensor Cores

NVIDIA V1005,120 CUDA Cores

640 Tensor Cores

NVIDIA V1005,120 CUDA Cores

640 Tensor Cores

NV

Lin

k

ORNL Summit Node~40 Teraflops

1600 GB NVRAM

26

Page 27: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Summit Performance

27

• Generally very good, with several caveats

• Occasional file system issues

• CUDA-aware MPI/GPUDirect performs 20.0/2.0× slower (entire run time,

not only MPI) for our cases, improving with each MPI update, but

seemingly worse than early 2018 (update 7/31/19: only 5% slower,

OpenMPI 1.10.7 GPUDirect 1.5× slower)

• Pinning host MPI buffers when using 1 resource set per node worsens

MPI performance by ~2.0×, normally the only effect would be to speed up

host/device transfers of pinned memory

• Workaround: 6 resource sets per node gives us expected MPI

performance plus the benefits of pinning

Page 28: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Pinning Issue Example1.14 Billion Grid Points

28

Page 29: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Early 2018 Summit Performance

• Data from early access 4/2018, still accurate

• Weak scaling:

• Each node solves ~12.8M grid points

• 5 nodes: 60M points (267M elems)

• 1,024 nodes: 13.2B points (58B elems)

• CPU curve is MPI+OpenMP with 3 ranks/socket

(total of 6 per node) with 168 total OpenMP

threads per node (smt4 on Power9)

• GPU curve is MPI+CUDA: 3 ranks/socket

shepherding 1 GPU each (total of 6 per node);

all MPI via GPUDirect

• Nearly linear performance for both

• GPU node-level performance is 23×-37× faster

at scale, correlates well with node-level studies

• Current performance: at least 33×

~2

5%

of

Su

mm

it

13.2B Points

58B Elems

60M Points

267M Elems

6,144 GPUs

≈ 1,000,000 SKL Cores

29

Page 30: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Early 2019 Summit Performance

30

MPI in green

MPI buffer pulls and

pushes to device in

orange

3-6× slower than

pinned transfers

Meanflow

linear solve

Turbulence

linear solve

Non-overlapped

MPI transfer of

gradients

Meanflow

RHS formation

Meanflow

LHS formation

Turbulence

RHS LHS

Non-overlapped

MPI transfer of

gradients

Case: 577 million grid points on 46 nodes

2.1M per device, apx 0.49s per subiteration

Page 31: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Optimizations to Summit Performance

31

Case: 577 million grid points on 46 nodes

2.1M per device, 0.49s -> 0.40s through optimizations

Combine

and

overlap

minor

transfers

Eliminate

redundant

transfers

Buffer pinning

and kernel

optimizations

20% speedup

through MPI and

kernel optimization

March 2019 performance without pinning: 488ms

June 2019 performance optimized with pinning: 408ms

Page 32: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Game-Changing PerformanceTypical Job of 6.5B Elements, 200K Time Steps, 200TB Output

Conventional system with capacity policy

• 5,000 Xeon Skylake cores (125 nodes)

• 2.9 months compute time

• 18 5-day queue submissions + waits

Summit

• 552 Tesla V100s (92 nodes)

• 4 days compute time

• 8 12-hour queue submissions

• Usually no queue wait, 1-2 hours at most

Conventional system with capability policy

• 112,500 Xeon Skylake cores (2,813 nodes)

• 4 days compute time

• 4-8 queue submissions

We are running 4-5 such jobs simultaneously:

Leadership class HPC is reducing our

learning cycle from years to days

32

Mach 2.4,

All engines at 80% throttle

Page 33: Landing on Mars: Petascale Unstructured Computational ... · Human-scale Mars landers require new approaches to all phases of Entry, Descent, and Landing • Cannot use heritage,

Current Summit Performance1.14 Billion Grid Points

33

Thank you for having us!

Always seeking new collaborations

https://fun3d.larc.nasa.gov