31
[email protected]. edu oclib: out of core optimization Paul Sava

oclib: out of core optimization

  • Upload
    lesa

  • View
    48

  • Download
    0

Embed Size (px)

DESCRIPTION

oclib: out of core optimization. Paul Sava. My goal. Quick introduction to the library Not much about inversion theory Ask the right questions. Jon Claerbout’s optimization book. Image estimation by example: Geophysical sounding image construction Multidimensional autoregression - PowerPoint PPT Presentation

Citation preview

Page 1: oclib: out of core optimization

[email protected]

oclib: out of core optimization

Paul Sava

Page 2: oclib: out of core optimization

[email protected]

My goal

• Quick introduction to the library

• Not much about inversion theory

• Ask the right questions

Page 3: oclib: out of core optimization

[email protected]

Jon Claerbout’s optimization book

• Image estimation by example:Geophysical sounding image construction

Multidimensional autoregression

http://sepwww.stanford.edu/sep/prof

Page 4: oclib: out of core optimization

[email protected]

Linear operators

dm LL: linear operator

m: image

d: data

Page 5: oclib: out of core optimization

[email protected]

Linear operators

dm L

call operator_init(…)

stat=operator(adj,add,m,d)

m d L

Page 6: oclib: out of core optimization

[email protected]

Least-squares inversion

dm *1* LLL

dm Ldmm

Lmin

Page 7: oclib: out of core optimization

[email protected]

Simple inversion

R=Lm0-d

iterate {

g = L* R

G = L g

(m,R) <- step(m,R,g,G)

}

dm L m: model

d: data

L: physics

Page 8: oclib: out of core optimization

[email protected]

Regularized inversion

0

dm

W

A

WL

W: weighting

A: regularization

: relative weight

dm L

Page 9: oclib: out of core optimization

[email protected]

Preconditioned inversion

pm 1A

0

1 dp

W

I

WLA

p: preconditioned mdm L

Page 10: oclib: out of core optimization

[email protected]

Why out-of-core optimization

• Least-squares imagingm: image

d: data

L: WE modeling operator

A: styling operator

W: weighting operator

• Velocity analysism: slowness perturbation

d: image perturbation

L: WE MVA operator

A: styling operator

W: weighting operator

0

dm

W

A

WL

Page 11: oclib: out of core optimization

[email protected]

Linear operator example: WE MVA

stat = weimva(adj,add, dS,dR,SLop=weiop_sllN,SCop=weiop_bor1,WCop=weiop_mwcN,FKop=weiop_wem3,FXop=weiop_ssf3,IGop=weiop_hcig)

call weimva_init(SLin=weiop_sllN_init,SCin=weiop_bor1_init,

WCin=weiop_mwcN_init,FKin=weiop_wem3_init,FXin=weiop_ssf3_init,IGin=weiop_hcig_init)

Page 12: oclib: out of core optimization

[email protected]

Outline

• Overview

• Solvers

• Examples

Page 13: oclib: out of core optimization

[email protected]

Simple solver initdm L

R=Lm-diterate {

g=L* RG=L g(m,R) <- step(m,R,g,G)

}

call oc_mpi_solver_init (

impi,

ocniter,

ocmaxmem,

ocverb,

mmovie,

dmovie

)

Page 14: oclib: out of core optimization

[email protected]

Simple solverdm L

R=Lm-diterate {

g=L* RG=L g(m,R) <- step(m,R,g,G)

}

call oc_mpi_solver (

L=weimva,

m_=dS,

d_=dR,

S=oc_cgstep,

op1=weiop_slo1,

op2=weiop_mwc1,

op3=weiop_bor1,

op4=weiop_wem3,

op5=weiop_ssf3,

op6=weiop_hcig

)

Page 15: oclib: out of core optimization

[email protected]

Simple solverdm L

do i=1,ocniter

stat=L( T,F, g_, rd_, op1 … op9)

stat=L( F,F, g_, gd_, op1 … op9)

stat=S(forget,m_,g_,(/rd_/),(/gd_/),…)

end do

R=Lm-diterate {

g=L* RG=L g(m,R) <- step(m,R,g,G)

}

Page 16: oclib: out of core optimization

[email protected]

Cluster executiondm L

do i=1,ocniter

stat=L( T,F, g_, rd_, op1 … op9)

stat=L( F,F, g_, gd_, op1 … op9)

stat=S(forget,m_,g_,(/rd_/),(/gd_/),…)

end do

R=Lm-diterate {

g=L* RG=L g(m,R) <- step(m,R,g,G)

}

mas

ter

node

1

node

2

node

3

node

4

Page 17: oclib: out of core optimization

[email protected]

Solver with regularization

0

dm

W

A

WL

call oc_mpi_solverreg(L=weimva,m_=dS,d_=dR,A=oc_laplacian,S=oc_cgstep,op1=weiop_slo1,op2=weiop_mwc1,op3=weiop_bor1,op4=weiop_wem3,op5=weiop_ssf3,op6=weiop_hcig

)

Page 18: oclib: out of core optimization

[email protected]

Solver with preconditioning

0

1 dp

W

I

WLA

call oc_mpi_solverpre(L=weimva,m_=dS,d_=dR,P=oc_ilaplacian,S=oc_cgstep,op1=weiop_slo1,op2=weiop_mwc1,op3=weiop_bor1,op4=weiop_wem3,op5=weiop_ssf3,op6=weiop_hcig

)

Page 19: oclib: out of core optimization

[email protected]

Outline

• Overview

• Solvers

• Examples

Page 20: oclib: out of core optimization

[email protected]

Example & Lab

• WE MVA for diffracted data• d: image perturbation• m: slowness perturbation

• Operator calls• forward: scattering mode• adjoint: backprojection mode

• Regularized inversion• model movie• data residual movie

Page 21: oclib: out of core optimization

[email protected]

Example

Page 22: oclib: out of core optimization

[email protected]

Example: d = Lm

Page 23: oclib: out of core optimization

[email protected]

Example: m = L*d

Page 24: oclib: out of core optimization

[email protected]

Example: m = [L*L+2A*A]-1L*d

Page 25: oclib: out of core optimization

[email protected]

Iteration 1: Rd=d-Lm

Page 26: oclib: out of core optimization

[email protected]

Iteration 2: Rd=d-Lm

Page 27: oclib: out of core optimization

[email protected]

Iteration 3: Rd=d-Lm

Page 28: oclib: out of core optimization

[email protected]

Iteration 4: Rd=d-Lm

Page 29: oclib: out of core optimization

[email protected]

Iteration 5: Rd=d-Lm

Page 30: oclib: out of core optimization

[email protected]

Summary

• Flexible, reusable f90 code

• Cluster ready

• Standard operator interface

• Conjugate-gradient solvers– Regularization– Preconditioning

Page 31: oclib: out of core optimization

[email protected]

Resources ([email protected])

• Developers:– Paul, Bob

• Manual– Marie

• Users– Antoine, Nick