+ All Categories
Home > Documents > Case Studies in Using a DSL and Task Graphs for Portable...

Case Studies in Using a DSL and Task Graphs for Portable...

Date post: 22-May-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
20
Case Studies in Using a DSL and Task Graphs for Portable Reacting Flow Simulations JAMES C. SUTHERLAND Associate Professor - Chemical Engineering TONY SAAD Assistant Professor - Chemical Engineering
Transcript
Page 1: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Case Studies in Using a DSL and Task Graphs for Portable Reacting Flow

SimulationsJAMES C. SUTHERLAND

Associate Professor - Chemical Engineering

TONY SAAD Assistant Professor - Chemical Engineering

Page 2: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

AcknowledgmentsBABAK GOSHAYESHI

Research Staff

MIKE HANSEN JOSH MCCONNELL

Ph.D. Students

CHRISTOPHER EARL Postdoctoral Researcher

Now at LLNL

ABHISHEK BAGUSETTY DEVIN ROBISON

MICHAEL BROWN M.S. Students

XPS award1337145

DE-NA0002375 DE-NA-000740 DE-SC0008998

Page 3: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Nebo (E)DSL: “Matlab for PDEs on Supercomputers”

Field & stenciloperations: rhs <<= -divOpX( xConvFlux + xDiffFlux )

-divOpY( yConvFlux + yDiffFlux ) -divOpZ( zConvFlux + zDiffFlux );

rhs = � @

@x(Jx + Cx)�

@

@y(Jy + Cy)�

@

@z(Jz + Cz)

Can “chain” stencil operations where necessary.

Auto-generate code for efficient execution on CPU, GPU, XeonPhi,

etc. during compilation.Expressiveness

Effic

ienc

y C++

Matlab

DSL

• Stencils: >150 natively supported stencil operations (easily extensible)

• cond: “vectorized if” • Arbitrary composition of operations • Masked assignment (perform operations

on a defined subset of points) • Portable: same code works for CPU,

multicore, GPU execution • Embedded in C++ → “plays well with

others”

Earl, C., Might, M., Bagusetty, A., & Sutherland, J. C., Journal of Systems and Software (2016).

Page 4: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

u

Γ

T

� = �(T, p, yi)

p

yi

τ

Direct (expressed) dependencies.

Indirect (discovered) dependencies.

The Power of Task GraphsRegister all expressions • Each “expression” calculates one or more field

quantities.

• Each expression advertises its direct dependencies.

Set a “root” expression; construct a graph • All dependencies are discovered/resolved

automatically.

• Highly localized influence of changes in models.

• Not all expressions in the registry may be relevant/used.

From the graph: • Deduce storage requirements & allocate memory

(externally to each expression).

• Automatically schedule evaluation, ensuring proper ordering.

• Robust scheduling algorithms are key.

Expr

essio

n Re

gist

ry

ρ

φsφ

*Notz, Pawlowski, & Sutherland (2012). ACM Transactions on Mathematical Software, 39(1).

Page 5: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Changes in model form are naturally handled

q

λ T

q = ��rT

Pure substance heat flux:

Page 6: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Changes in model form are naturally handled

q

λ T

q = ��rT +nX

i=1

hiJi

h1 hn

J1 Jn

y1 yn

Multi-species mixture heat flux:

No complex logic changes in code when model are added/changed.

Page 7: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

“Modifiers” — injecting new dependenciesMotivation:

• Boundary conditions: modify a subset of the computed values.

• Multiphase coupling: add source terms to RHS of equations.

A

B C

Page 8: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

“Modifiers” — injecting new dependenciesMotivation:

• Boundary conditions: modify a subset of the computed values.

• Multiphase coupling: add source terms to RHS of equations.

Modifiers allow “push” rather than “pull” dependency addition.Modifiers are deployed after the node they are attached to, and are provided a handle to the field just computed.

A

B C

BC1 S1

Page 9: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

“Modifiers” — injecting new dependenciesMotivation:

• Boundary conditions: modify a subset of the computed values.

• Multiphase coupling: add source terms to RHS of equations.

Modifiers allow “push” rather than “pull” dependency addition.Modifiers are deployed after the node they are attached to, and are provided a handle to the field just computed.Modifiers can introduce new dependencies to the graph.

A

B C

BC1 S1

D E F

Page 10: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Example: PoKiTT⇢@yi@t

= �r · Ji + si

⇢@h

@t= �r · qi

(Portable Kinetics, Thermodynamics & Transport)

Triple flame computed on GPU with PoKiTT

• Detailed kinetics • Mixture-averaged transport • Detailed thermodynamics

Yonkee & Sutherland, SIAM Journal on Scientific Computing (2016)

Page 11: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Example: PoKiTT⇢@yi@t

= �r · Ji + si

⇢@h

@t= �r · qi

(Portable Kinetics, Thermodynamics & Transport)

Triple flame computed on GPU with PoKiTT

• Detailed kinetics • Mixture-averaged transport • Detailed thermodynamics

• 32 PDEs • 2562 grid points • 8 million timesteps • 8 days on 1 GPU (~5 months on 1 CPU core)

Speedup

6 12 18 24 30

30

5

27

5

18.2

2.4 256^2512^21024^2

12 c

ores

GPU

Yonkee & Sutherland, SIAM Journal on Scientific Computing (2016)

Page 12: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Titan: Hybrid Low Mach AlgorithmWeak Scaling

Mea

n tim

e pe

r tim

este

p

0.01s

0.1s

1s

10s

100s

GPUs (also # Titan Nodes, 1 GPU per Titan Node)

1 2 8 64 512

4096

8192

1280

0

16^3 32^364^3 128^3

Saad, T., & Sutherland, J. C., Journal of Computational Science (2016)

Everything on GPU except Poisson solve on CPU.

Page 13: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Titan: Hybrid Low Mach AlgorithmWeak Scaling

Mea

n tim

e pe

r tim

este

p

0.01s

0.1s

1s

10s

100s

GPUs (also # Titan Nodes, 1 GPU per Titan Node)

1 2 8 64 512

4096

8192

1280

0

16^3 32^364^3 128^3

GPU Speedup

Spee

dup

(CPU

/GPU

)

0X

0.5X

1X

1.5X

2X

CPUs/GPUs (also # Titan Nodes, 1 MPI Rank per Titan Node)

1 2 8 64 512

4096

8192

1280

0

1X

16^3 32^364^3 128^3

Saad, T., & Sutherland, J. C., Journal of Computational Science (2016)

Page 14: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Titan: Compressible AlgorithmWeak Scaling

Mea

n tim

e pe

r tim

este

p

0.01s

0.1s

1s

10s

GPUs (also # Titan Nodes, 1 GPU per Titan Node)

1 8 512 8192 18252

16^332^364^3128^3

Saad, T., & Sutherland, J. C., Journal of Computational Science (2016)

Page 15: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Titan: Compressible AlgorithmWeak Scaling

Mea

n tim

e pe

r tim

este

p

0.01s

0.1s

1s

10s

GPUs (also # Titan Nodes, 1 GPU per Titan Node)

1 8 512 8192 18252

16^332^364^3128^3

GPU Speedup

Spee

dup

(CPU

/GPU

)

0.1X

1X

10X

100X

CPUs (also # Titan Nodes, 1 MPI Rank per Titan Node)

1 8 512 8192 18252

1X

16^332^364^3128^3

Saad, T., & Sutherland, J. C., Journal of Computational Science (2016)

Page 16: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Inst

itute

for

CLEA

N A

ND

SEC

URE

ENER

GYT

HE

UN

IVER

SIT

Y O

F U

TAH

TM

What next?

Wait for linear solvers to get us to many-GPU systems?• Even when these arrive, it puts a lot of demand on black-box linear solvers toachieve scalability & performance.

Compressible

Spee

dup

(CPU

/GPU

)

0.1X

1X

10X

100X

1 2 8 64 512

4096

8192

1280

018

252

1X

16^332^364^3128^3

Low-MachSp

eedu

p (C

PU/G

PU)

0X

0.5X

1X

1.5X

2X

1 2 8 64 512

4096

8192

1280

0

1X

16^3 32^364^3 128^3

Page 17: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Inst

itute

for

CLEA

N A

ND

SEC

URE

ENER

GYT

HE

UN

IVER

SIT

Y O

F U

TAH

TM

What next?

Wait for linear solvers to get us to many-GPU systems?• Even when these arrive, it puts a lot of demand on black-box linear solvers toachieve scalability & performance.

Consider alternative algorithms?

Compressible

Spee

dup

(CPU

/GPU

)

0.1X

1X

10X

100X

1 2 8 64 512

4096

8192

1280

018

252

1X

16^332^364^3128^3

Low-MachSp

eedu

p (C

PU/G

PU)

0X

0.5X

1X

1.5X

2X

1 2 8 64 512

4096

8192

1280

0

1X

16^3 32^364^3 128^3

Page 18: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Inst

itute

for

CLEA

N A

ND

SEC

URE

ENER

GYT

HE

UN

IVER

SIT

Y O

F U

TAH

TM

Point-implicit algorithms:High arithmetic intensity Communication patterns are the same as explicit codes (ghost/halo-updates) Well-suited for reacting flow calculations.

I���

@h

@u

��u

��= h(u)

Local Jacobian matrix

Local residual

Computational kernel - Residual (right-hand side) evaluation - Pointwise Jacobian evaluation - Local linear solves - Local eigenvalue decompositions

Matrix assembly must be efficient and extensible to complex, multiphysics problems

Page 19: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Example: Highly nonlinear, parameterized ODE systems• Detailed chemical kinetics

- Analytical Jacobian in PoKiTT w/Nebo for GPU

- Dense matrix formed w/primitives and sparse transformation

• Simple convective heat transfer - Single-element Jacobian combined

with sparse transform

• Finite mixing time - Scalar Jacobian matrix

kinetics source terms

mixing/flowconvective heat transfer

K + Q + T

@K

@V+

@Q

@V

�@V

@U� 1

⌧I

Right-hand side:

Jacobian:

Full matrix(dense submat)

( dKdV + dqdV ) * dVdU - invT

1-element (sparse)

2N-elements (sparse)

scalar matrix

GPU Speedup - 16x16 Matrix

05

1015202530

16^3 32^3 64^3

Dot ProductMatVecAx=bEigen-decomp

C++ code:

Page 20: Case Studies in Using a DSL and Task Graphs for Portable ...ccmsc.utah.edu/images/publications/presentation-abstracts/Sutherland_3_2017_DSL_Task...C++ Matlab DSL • Stencils: >150

Inst

itute

for

CLEA

N A

ND

SEC

URE

ENER

GYT

HE

UN

IVER

SIT

Y O

F U

TAH

TM

ConclusionsRobust abstractions are needed to facilitate portable &performant applications on upcoming architectures.• DAG-based software design allows flexibility needed for multiphysics codeson heterogeneous platforms.

• (E)-DSLs can provide convenient, portable & performant abstractions for HPCapplications

The Algorithm-Hardware collision:• Scalable GPU linear solvers are needed for traditional algorithms to be viableon new architectures.

• Alternative algorithms may be needed with higher arithmetic intensity• higher-order• point-implicit?

XPS award1337145

DE-NA0002375 DE-NA-000740 DE-SC0008998


Recommended