L-sweeps: A scalable parallel high-frequency Helmholtz solver - - PowerPoint PPT Presentation

l sweeps a scalable parallel high frequency helmholtz
SMART_READER_LITE
LIVE PREVIEW

L-sweeps: A scalable parallel high-frequency Helmholtz solver - - PowerPoint PPT Presentation

L-sweeps: A scalable parallel high-frequency Helmholtz solver Russell J. Hewett *+ Matthias Taus # , Leonardo Zepeda-N nez % , Laurent Demanet # u Department of Mathematics, Virginia Tech SIAM CSE 2019, Spokane, WA February 28, 2019 *


slide-1
SLIDE 1

L-sweeps: A scalable parallel high-frequency Helmholtz solver

Russell J. Hewett*+ Matthias Taus†#, Leonardo Zepeda-N´ u˜ nez%, Laurent Demanet# Department of Mathematics, Virginia Tech

SIAM CSE 2019, Spokane, WA

February 28, 2019

*Virginia Tech +Total SA †TU Wien #MIT %UC Berkeley RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 1 / 26

slide-2
SLIDE 2

Motivation

Wave propagation in geophysical applications

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Inhomogeneous media High frequency

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 2 / 26

slide-3
SLIDE 3

Model Problem

−∆u − ω2mu = f in Ω + A.B.C. at ∂Ω Ω ... Domain of interest ω ... frequency m ... squared slowness f ... sources

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 3 / 26

slide-4
SLIDE 4

Existing Fast Solution Techniques

◮ Classical iterative methods: niter grows with ω

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 4 / 26

slide-5
SLIDE 5

Existing Fast Solution Techniques

◮ Classical iterative methods: niter grows with ω ◮ Classical direct methods:

1D 2D 3D

  • perations

O(N) O(N

3 2 )

O(N2) memory O(N) O(N log N) O(N

4 3 ) RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 4 / 26

slide-6
SLIDE 6

Existing Fast Solution Techniques

◮ Classical iterative methods: niter grows with ω ◮ Classical direct methods:

1D 2D 3D

  • perations

O(N) O(N

3 2 )

O(N2) memory O(N) O(N log N) O(N

4 3 )

◮ Combination of iterative and direct methods

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 4 / 26

slide-7
SLIDE 7

Existing Fast Solution Techniques

◮ Classical iterative methods: niter grows with ω ◮ Classical direct methods:

1D 2D 3D

  • perations

O(N) O(N

3 2 )

O(N2) memory O(N) O(N log N) O(N

4 3 )

◮ Combination of iterative and direct methods

⇒ Method of polarized traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 4 / 26

slide-8
SLIDE 8

Existing Fast Solution Techniques

◮ Classical iterative methods: niter grows with ω ◮ Classical direct methods:

1D 2D 3D

  • perations

O(N) O(N

3 2 )

O(N2) memory O(N) O(N log N) O(N

4 3 )

◮ Combination of iterative and direct methods

⇒ Method of polarized traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 4 / 26

slide-9
SLIDE 9

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 5 / 26

slide-10
SLIDE 10

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 5 / 26

slide-11
SLIDE 11

Half-space Problem

f Γi,i+1 u

Polarization condition: 0 = −

  • Γ

G(x, y)∂ny u↑(y)dsy +

  • Γ

∂ny G(x, y)u↑(y)dsy

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 6 / 26

slide-12
SLIDE 12

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 7 / 26

slide-13
SLIDE 13

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 7 / 26

slide-14
SLIDE 14

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 7 / 26

slide-15
SLIDE 15

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 7 / 26

slide-16
SLIDE 16

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 7 / 26

slide-17
SLIDE 17

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 7 / 26

slide-18
SLIDE 18

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 7 / 26

slide-19
SLIDE 19

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 7 / 26

slide-20
SLIDE 20

Method Of Polarized Traces

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 7 / 26

slide-21
SLIDE 21

Complexities

Serial complexity: O(N) Question: Can we parallelize this preconditioner? Problem: Serial nature of the sweeps

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 8 / 26

slide-22
SLIDE 22

Solution: L-sweeps

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 9 / 26

slide-23
SLIDE 23

Solution: L-sweeps

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 9 / 26

slide-24
SLIDE 24

Solution: L-sweeps

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 9 / 26

slide-25
SLIDE 25

Solution: L-sweeps

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 9 / 26

slide-26
SLIDE 26

Solution: L-sweeps

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 9 / 26

slide-27
SLIDE 27

M O V I E! :)

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 10 / 26

slide-28
SLIDE 28

Observation

Each propagation onto the next diagonal can is embarrassingly parallel on a cell-wise level!

⇒ O(N/p) complexity

(as long as p = O(N1/d))

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 11 / 26

slide-29
SLIDE 29

Numerical Example: Complexity

0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 Time [s] N/p

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 12 / 26

slide-30
SLIDE 30

Numerical Example: Iteration Count

4 points per wavelength

Wavelengths in PML Wavelengths in domain Number

  • f cells

1 1.5 2 2.5 3 16 2 5 3 3 3 3 32 4 7 5 5 5 5 64 8 7 6 6 6 6 128 16 9 6 7 7 7 256 32 12 9 7 7 7 512 64 17 11 8 9 8 1024 128 29 14 11 9 9

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 13 / 26

slide-31
SLIDE 31

Numerical Example: Iteration Count

4 points per wavelength

Wavelengths in PML Wavelengths in domain Number

  • f cells

1 1.5 2 2.5 3 16 2 5 3 3 3 3 32 4 7 5 5 5 5 64 8 7 6 6 6 6 128 16 9 6 7 7 7 256 32 12 9 7 7 7 512 64 17 11 8 9 8 1024 128 29 14 11 9 9

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 13 / 26

slide-32
SLIDE 32

Numerical Example: Iteration Count

4 points per wavelength

Wavelengths in PML Wavelengths in domain Number

  • f cells

1 1.5 2 2.5 3 16 2 5 3 3 3 3 32 4 7 5 5 5 5 64 8 7 6 6 6 6 128 16 9 6 7 7 7 256 32 12 9 7 7 7 512 64 17 11 8 9 8 1024 128 29 14 11 9 9

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 13 / 26

slide-33
SLIDE 33

Numerical Example: Iteration Count

6 points per wavelength

Wavelengths in PML Wavelengths in domain Number

  • f cells

1 1.5 2 2.5 3 16 2 4 3 3 3 3 32 4 5 3 3 3 3 64 8 7 3 3 3 3 128 16 9 5 4 3 3 256 32 11 6 5 5 4 512 64 17 9 7 5 5 1024 128 32 11 8 7 6

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 14 / 26

slide-34
SLIDE 34

Numerical Example: Iteration Count

8 points per wavelength

Wavelengths in PML Wavelengths in domain Number

  • f cells

1 1.5 2 2.5 3 16 2 5 3 3 3 3 32 4 5 3 3 3 3 64 8 7 3 3 3 3 128 16 8 5 3 3 3 256 32 11 6 5 3 3 512 64 19 8 6 5 4 1024 128

  • 11

9 7 5

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 15 / 26

slide-35
SLIDE 35

Numerical Example: BP Model Setup

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

◮ Second order finite

difference discretization

◮ unit square

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 16 / 26

slide-36
SLIDE 36

Numerical Example: Iteration Count

4 points per wavelength

Wavelengths in PML Wavelengths in domain Number

  • f cells

1 1.5 2 2.5 3 16 2 9 7 6 6 6 32 4 12 7 7 7 7 64 8 14 9 10 10 10 128 16 16 12 12 12 12 256 32 25 25 23 22 23 512 64 30 26 26 26 26 1024 128

  • 29

29 28 28

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 17 / 26

slide-37
SLIDE 37

Numerical Example: Iteration Count

6 points per wavelength

Wavelengths in PML Wavelengths in domain Number

  • f cells

1 1.5 2 2.5 3 16 2 9 6 6 6 6 32 4 11 7 7 7 7 64 8 13 9 8 8 8 128 16 16 11 11 11 11 256 32 24 18 18 19 18 512 64

  • 25

25 24 24 1024 128

  • 29

28 28 27

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 18 / 26

slide-38
SLIDE 38

Numerical Example: Iteration Count

8 points per wavelength

Wavelengths in PML Wavelengths in domain Number

  • f cells

1 1.5 2 2.5 3 16 2 9 6 6 6 6 32 4 11 6 6 6 6 64 8 14 9 9 9 9 128 16 22 16 17 14 13 256 32

  • 16

16 15 15 512 64

  • 22

21 21 21 1024 128

  • 26

26 26

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 19 / 26

slide-39
SLIDE 39

Numerical Example: High Frequency Solutions

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

◮ max. 16

wavelengths in domain

◮ PML width: 1.25

wavelengths

◮ 2 × 2 domain

decomposition

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 20 / 26

slide-40
SLIDE 40

Numerical Example: High Frequency Solutions

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

◮ max. 32

wavelengths in domain

◮ PML width: 1.5

wavelengths

◮ 4 × 4 domain

decomposition

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 21 / 26

slide-41
SLIDE 41

Numerical Example: High Frequency Solutions

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

◮ max. 64

wavelengths in domain

◮ PML width: 1.75

wavelengths

◮ 8 × 8 domain

decomposition

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 22 / 26

slide-42
SLIDE 42

Numerical Example: High Frequency Solutions

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

◮ max. 128

wavelengths in domain

◮ PML width: 2.00

wavelengths

◮ 16 × 16 domain

decomposition

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 23 / 26

slide-43
SLIDE 43

Numerical Example: High Frequency Solutions

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

◮ max. 256

wavelengths in domain

◮ PML width: 2.25

wavelengths

◮ 32 × 32 domain

decomposition

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 24 / 26

slide-44
SLIDE 44

Numerical Example: High Frequency Solutions

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

◮ max. 512

wavelengths in domain

◮ PML width: 2.5

wavelengths

◮ 64 × 64 domain

decomposition

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 25 / 26

slide-45
SLIDE 45

Summary and Outlook

Successful construction of a scalably parallelizable preconditioner for the high-frequency Helmholtz equation.

◮ O(N/p) complexity as long as p = O(N1/d) ◮ Independent of the discretization ◮ Applicable to heterogeneous media

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 26 / 26

slide-46
SLIDE 46

Summary and Outlook

Successful construction of a scalably parallelizable preconditioner for the high-frequency Helmholtz equation.

◮ O(N/p) complexity as long as p = O(N1/d) ◮ Independent of the discretization ◮ Applicable to heterogeneous media

Next steps:

◮ O(N/p)-scaling in 3D where p = O(N2/3) ◮ several right-hand sides (O(1) scaling per right hand side?)

RJH (CSE 19) L-Sweeps for Helmholtz February 28, 2019 26 / 26