exadg: high-order discontinuous galerkin for the exa-scale · exadg: high-order discontinuous...

16
ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt 1 Niklas Fehn 3 Guido Kanschat 1 Katharina Kormann 2 Benjamin Krank 3 Martin Kronbichler 3 Wolfgang A. Wall 3 Julius Witte 1 1 Interdisziplin ¨ ares Institut f ¨ ur Wissenschaftliches Rechnen, Universit ¨ at Heidelberg 2 Max–Planck–Institut f ¨ ur Plasmaphysik 3 Institute for Computational Mechanics, Technical University of Munich March 20, 2017 SPPEXA (Software for exascale computing), project ExaDG M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 1/16

Upload: others

Post on 25-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

ExaDG: High-order discontinuous Galerkin forthe exa-scale

Daniel Arndt1 Niklas Fehn3 Guido Kanschat1

Katharina Kormann2 Benjamin Krank3 Martin Kronbichler3

Wolfgang A. Wall3 Julius Witte1

1Interdisziplinares Institut fur Wissenschaftliches Rechnen, Universitat Heidelberg

2Max–Planck–Institut fur Plasmaphysik

3Institute for Computational Mechanics, Technical University of Munich

March 20, 2017

SPPEXA (Software for exascale computing),project ExaDG

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 1/16

Page 2: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Outline

Results operator evaluation

Multigrid scalability

Multigrid smoother

Applications

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 2/16

Page 3: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Generic operator evaluation framework

Operator evaluation by fast integration = matrix-vector products insolvers, nonlinear residuals, . . .

I Integrated in deal.II finite elementlibrary (www.dealii.org)

I Target generic weak forms onquadrilaterals

I Mesh loop according to specificalgorithm structure

I Loop over quadrature points andcells/faces/vertices

I Full support for mesh adaptivity withhanging nodes for L2- andH1-conforming elements, work inprogress for Hdiv-, Hcurl

I Parallelization: MPI (domaindecomposition), threads

I Vectorization

Matrix-free algorithm forv = Au with A = ∑K PT

K AK PK

v = 0loop over cells:

(i) Extract local vectorvalues on cell:uK = PK u

(ii) Apply operation locallyon cell: vK = AK uK byfast integration

(iii) Sum results from (ii)into the global solutionvector: v = v +PT

K vK

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 3/16

Page 4: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Matrix-vector product for Laplacian

Examples:I Laplacian for continuous elements

(Au)j =∫

Ωa(x)∇xφj ·∇xuhdx =

ncells

∑K =1

∫K

a(x)∇xφj ·∇xuhdx

I DG Laplacian with symmetric interior penalty discretization

(Au)j =ncells

∑K =1

(∫K

a∇xφj ·∇xuhdx−∫

∂Kφjn− ·

a∇xu−h +a∇xu+h

2ds

+∫

∂Ka

∇xφj

2·n−(u−h −u+

h )ds+∫

∂Kφjaσ(u−h −u+

h )ds)

Compute volume integral element by element

(AK uK )j =∫

Ka∇xφj ·∇xuhdx≈∑

qwq detJqa∇xφj ·∇xuh

∣∣∣x=xq

= ∑q

∇ξ φjJ−1q (awq detJq)J−T

q ∑i

∇ξ φiuK ,i

∣∣∣x=xq

, j = 1, . . . ,cell dofs

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 4/16

Page 5: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Fast computation of integrals

I Fast integration routines for quadrilaterals/hexahedraI Evaluation of tensor product shape functions by sum factorization

Vector values uK on nodes ∂

∂ξuh on quadrature points

Dξ u:,2Sη u3,:

••

••

••

••

••

••

••

••

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

∂ξuh(ξq,ηq)

∣∣q points = (Dξ ⊗Sη)uK

Dense matrix-matrix multiplication

SηUK DTξ

Evaluation cost:O(2d(k + 1)d+1) (degree k ,dimension d)

Naive evaluation: O(d(k +1)2d )

I Techniques established in spectral elementsI Similar techniques as used by Exa-DUNE

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 5/16

Page 6: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Result 1: Extension to throughput architectures

In 2016: Extension of algorithms from classical CPUs to throughputarchitectures

I Evaluation and development on Intel Xeon Phi Knights Landing1

I New intrinsics, gather + scatterI Loop parallelization

I Evaluation and development on NVIDIA GPUsI Separate, more restricted codeI Similar interfaces that allow switching by changing typedefsI Collaboration with Karl Ljungkvist, Uppsala UniversityI Evaluation on NVIDIA P100 (Pascal)I Extension to multi-GPU setup with NVLink-type interconnects

ongoingI Extension to DG planned

1Kronbichler, Kormann, Pasichynk, Allalen, “Fast Matrix-Free Discontinuous GalerkinKernels on Modern Computer Architectures”, accepted paper for ISC17

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 6/16

Page 7: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

CPU vs Phi vs GPU

Evaluation of Laplacian for continuous Q1 to Q4 elements

1 2 3 40

1

2

·109

element degree

equa

tions

pers

econ

d

3D curved mesh

1 2 3 40

1

2

·109

element degree

3D Cartesian mesh

MF Pascal P100 GPU SpMV Pascal P100 GPUMF Xeon Phi KNL, 64 cores SpMV Xeon Phi KNL, 64 cores

MF Xeon E5-2690 v4, 28 cores SpMV Xeon E5-2690 v4, 28 cores

P100 2.3× faster than KNL, KNL 1.4× faster than 2-socket Broadwellon curved mesh (370 GB/s vs. 160 GB/s vs. 105 GB/s mem-bw)Access to KNL and P100 kindly provided by LRZ, Garching with support from KONWIHR

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 7/16

Page 8: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

CPU vs Phi vs Power8 on DG

Laplacian discretized by discontinuous Q4 elements, 32.8m DoFs,comparison of shared-memory parallelizations1: KNL 2.4× faster

1 4 16 64 256107

108

109

number of threads

equa

tions

pers

econ

d

HSW loopsHSW loops + SMT

Power8 loopsPower8 loops + SMT

KNL loopsKNL loops + SMT

Access to KNL and Power8 kindly provided by LRZ, Garching with support from KONWIHR

1Kronbichler, Kormann, Pasichynk, Allalen, “Fast Matrix-Free Discontinuous GalerkinKernels on Modern Computer Architectures”, accepted paper for ISC17

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 8/16

Page 9: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Result 2: Improvements to multigrid scalability

Conjugate gradient solver for Laplacian on Q3 elements, preconditionedby geometric multigrid V-cycle with fast matrix-vector products,Chebyshev smoother of degree 5, on full SuperMUC phase 1 (SandyB)and up to 14k cores on SuperMUC phase 2 (Haswell)

128 512 2048 8192 32k 128k

10−1

100

101

Number of cores

Sol

vert

ime

[s]

strong scaling, 16m cells

36 288 2304 18k 147k0

1

2

3

4

Number of cores

weak scaling, 1m equations/core

CG SandyB CG Haswell DG-SIP SandyB DG-SIP Haswell

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 9/16

Page 10: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Fixed bottlenecks in MG infrastructure

Experiments on SuperMUC phase 2 (Haswell) with discontinuous Q3

elements, 6 CG iterations with geometric multigrid V-cycle, Chebyshevsmoother

56 224 896 3584 14336

10−2

10−1

100

101

Number of cores

old, 16M cellsnew, 16M cellsold, 2M cellsnew, 2M cellsold, 256k cellsnew, 256k cells

Improvements in smoother and level transfer infrastructure→ lowerlatency

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 10/16

Page 11: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Result 3: Multigrid Smoother - Dictionary

Block Jacobi/additive Schwarz smootherI Take the local structure of the problem into

accountI Use local problems for preconditioning

Rl = ∑K∈Tl

PK A−1K

I Cell or vertex patches

Often not all the local inverses are different or at least they only differslightly

I Idea: Store only local inverses that differ significantlyI Hope: Comparable results to block Jacobi smoothing

Better run-time

‖A−1i Aj − Id‖< tol ·n2 =⇒ A−1

j ≈ A−1i .

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 11/16

Page 12: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Additive Schwarz Smoother - Results

I Variable-coefficient Laplacian with a(x) =1

α +β‖x‖2

I Discretization with discontinuous Q2 elements, (0,1)2 Cartesianmesh, conjugate gradient solver preconditioned by V-cycle, blockJacobi relaxation parameter 0.7

I Test case: α = 0.05, β = 100

BlockJacobiseparate (“exact”) local

cell matrix

SameDiagonaluse one cell and scale

by coefficient at the

midpoint of the local cell

for the rest

Dictionaryas above, tolerance 0.1

LBlockJacobi SameDiagonal Dictionaryn time n time n time

2 11 0.00344 15 0.00433 12 0.005083 14 0.00561 29 0.0121 17 0.007164 14 0.0106 40 0.0298 16 0.01155 15 0.0298 43 0.0781 18 0.03146 15 0.098 39 0.228 18 0.0997 16 0.422 37 0.805 19 0.3328 16 2.54 37 3.28 20 1.449 16 11 38 13.5 21 6.910 17 54.3 37 55.8 22 32.2

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 12/16

Page 13: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Additive Schwarz Smoother - Results

I Variable-coefficient Laplacian with a(x) =1

α +β‖x‖2

I Discretization with discontinuous Q2 elements, (0,1)2 Cartesianmesh, conjugate gradient solver preconditioned by V-cycle, blockJacobi relaxation parameter 0.7

I Test case: [1] α = 0.05, β = 100, [2] α = 0.01, β = 1000

BlockJacobiseparate (“exact”) local

cell matrix

SameDiagonaluse one cell and scale

by coefficient at the

midpoint of the local cell

for the rest

Dictionaryas above, tolerance 0.1

LBlockJacobi SameDiagonal Dictionary[1] [2] [1] [2] [1] [2]

2 11 10 15 14 12 113 14 13 29 30 17 154 14 14 40 43 16 175 15 15 43 63 18 186 15 16 39 92 18 197 15 15 37 212 19 198 16 16 37 210 20 199 16 16 38 151 21 2010 17 17 37 185 22 20

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 13/16

Page 14: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Result 4: Towards complex application codes

I Goal: Complex discontinuous Galerkin codes for fluid dynamicsI Step 1: Flexible incompressible Navier–Stokes solvers

I Time stepping: fully coupled, velocity correction, pressure correctionI Literature on DG with interior penalty discretization and splitting

schemes unconvincing→ needed own developmentsStability in limit of small time steps:

10−5 10−4 10−3 10−2 10−1 100

∆t/T

10−5

10−4

10−3

10−2

10−1

100

101

relativeL2-erroru

h

ku = 2, kp = 1, reference ku = 3, kp = 2, reference ku = 4, kp = 3, reference

10−5 10−4 10−3 10−2 10−1 100

∆t/T

10−4

10−3

10−2

10−1

100

101

102

relativeL2-errorph

ku = 2, kp = 1, present ku = 3, kp = 2, present ku = 4, kp = 3, present

∼ ∆t ∼ ∆t

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 14/16

Page 15: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Result 4: Scalability of Navier–Stokes solvers

I Developed for turbulent flow settings,verified for turbulent channel flow andflow past periodic hills (see right)

I Weak and strong scaling onSuperMUC Phase 1 for channel flow turbulent vortices visualized by Q-criterion

32 256 2048 16384 131072

10−2

10−1

100

number of cores

Twallper

timestep

[s]

8192 16384 32768 65536 147456

10−2

10−1

100

101

number of cores

Twallper

timestep

[s]

34.4e9 DoFs, k3convective stepimplicit pressure steplocal projection stepimplicit viscous stepideal

262e3 DoFs per core, k3convective stepimplicit pressure steplocal projection stepimplicit viscous stepideal

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 15/16

Page 16: ExaDG: High-order discontinuous Galerkin for the exa-scale · ExaDG: High-order discontinuous Galerkin for the exa-scale Daniel Arndt1 Niklas Fehn3 Guido Kanschat1 Katharina Kormann2

Outlook

I Better multigrid smoothers based on block Jacobi-like methodsI Support for iterative solvers on elements (vectorized + optimized)I Tensor product inverses (extend concepts from spectral elements to

DG)

I Robust solvers/smoothers for convection-dominated flowsI Flexibility of framework

I Other elements than usual continuous and discontinuous onesI EnrichmentsI Local time stepping

I Development of domain-specific form language in C++ to facilitateuse of tensor kernels

M. Kronbichler Results operator evaluation Multigrid scalability Multigrid smoother Applications 16/16