Presentation is loading. Please wait.

Presentation is loading. Please wait.

weilib: wave-equation imaging Paul Sava.

Similar presentations


Presentation on theme: "weilib: wave-equation imaging Paul Sava."— Presentation transcript:

1 paul@sep.stanford.edu weilib: wave-equation imaging Paul Sava

2 paul@sep.stanford.edu My goal Quick introduction to the library Not much about the imaging science Ask the right questions

3 paul@sep.stanford.edu Library goals Flexible research –Code recycling –Efficiency vs. flexibility Cluster access –Parallelization with MPI, OMP Large problems –3-D data

4 paul@sep.stanford.edu Characteristics Programming –Fortran 90 –OO Problem types –Shot-receiver migration –Shot-profile migration Versions

5 paul@sep.stanford.edu Linear operators call operator_init(…) stat=operator(adj,add,m,d) m d L

6 paul@sep.stanford.edu WE imaging Large datasets ( m,d ) –Data partition Complicated operators ( L ) –Operator partition

7 paul@sep.stanford.edu The problem DATA ( d ) IMAGE ( m )  z

8 paul@sep.stanford.edu Cluster distribution MPI  z

9 paul@sep.stanford.edu Outline Overview Objects –Partitioning –I/O Operators –WE migration –WE MVA Examples

10 paul@sep.stanford.edu WEI initialization … call sep_init() call weipar_init() call weipar_report() call weitag_init() call weipro_init() call weipro_bcast() …

11 paul@sep.stanford.edu WEI objects & procedures Objects –Data –Image –Slowness –Wavefield Procedures –file tag –dimensions –I/O –MPI communication

12 paul@sep.stanford.edu WEI data object type wedata character(len=128) :: tag character(len=128) :: from integer :: bites,esize type(axis):: amx,amy,ahx,ahy,aw complex, pointer:: bin(:,:,:,:,:) end type wedata

13 paul@sep.stanford.edu WEI data object DD%tag=wtag%D call weiD_init(DD) call weiD_report(DD) call weiD_allocate(DD) call weiD_read(DD) call weiD_write(DD) call weiD_mpisprd(DD) call weiD_mpigthr(DD) …

14 paul@sep.stanford.edu WEI migration workflow data slowness image slowness data image Node 2 Node 4 Node 3 Node 1 MPI

15 paul@sep.stanford.edu WEI workflow example … call weiS_mpicopy(SS) call weiR_mpizero(RR) call weiD_mpisprd(DD) … call weimigof(…) … call weiR_mpisumm(RR) …

16 paul@sep.stanford.edu I/O blocking  z

17 paul@sep.stanford.edu I/O blocking example … do iwb=1,nwb call weiD_read(bW,iwb) do izb=1,nzb call weiR_read(RR,izb) call weiS_read(SS,izb) … call weiR_write(RR,izb) end do …

18 paul@sep.stanford.edu Shared memory parallelization OMP  z

19 paul@sep.stanford.edu Shared memory parallelization !$OMP PARALLEL !$OMP DO & !$OMP$ PRIVATE(iws,izs,ith) do iws=1,nws ith=omp_get_thread_num()+1 do izs=1,nzs … end do !$OMP END DO !$OMP END PARALLEL

20 paul@sep.stanford.edu Outline Overview Objects –Partitioning –I/O Operators –WE migration –WE MVA Examples

21 paul@sep.stanford.edu WE migration extrapolation imaging depth frequency DATA ( d ) IMAGE ( m )

22 paul@sep.stanford.edu Extrapolation depth frequency WzWz W z+  z

23 paul@sep.stanford.edu Imaging depth frequency W z+  z R z+  z

24 paul@sep.stanford.edu WE migration

25 paul@sep.stanford.edu WCop: wavefield continuation operator Single reference slowness Multi reference slowness –Wavefield interpolation

26 paul@sep.stanford.edu SLop: slowness selection operator Min/Mean/Median Lloyd

27 paul@sep.stanford.edu FKop: phase-shift operator Common-azimuth Narrow-azimuth Full prestack

28 paul@sep.stanford.edu FXop: finite-difference operator Phase-shift Split-step Fourier Generalized Screen Propagator

29 paul@sep.stanford.edu IGop: imaging operator Offset Ray parameter

30 paul@sep.stanford.edu Outline Overview Objects –Partitioning –I/O Operators –WE migration –WE MVA Examples

31 paul@sep.stanford.edu WE MVA

32 paul@sep.stanford.edu SCop: scattering operator

33 paul@sep.stanford.edu Outline Overview Objects –Partitioning –I/O Operators –WE migration –WE MVA Examples

34 paul@sep.stanford.edu WEI datuming (survey sinking) f-x operator Slowness operator f-k operator Continuation operator stat = weidtm(adj,add, D, U, SLop=weiop_slo1, WCop=weiop_mwc1, FKop=weiop_wem3, FXop=weiop_ssf3) call weidtm_init( SLin=weiop_slo1_init, WCin=weiop_mwc1_init, FKin=weiop_wem3_init, FXin=weiop_ssf3_init)

35 paul@sep.stanford.edu WEI migration: example 1 stat = weimig(adj,add, R, D, SLop=weiop_slo1, WCop=weiop_mwc1, FKop=weiop_wem3, FXop=weiop_ssf3, IGop=weiop_pcig) Imaging operator call weimig_init( SLin=weiop_slo1_init, WCin=weiop_mwc1_init, FKin=weiop_wem3_init, FXin=weiop_ssf3_init, IGin=weiop_pcig_init)

36 paul@sep.stanford.edu WEI migration: example 2 stat = weimig(adj,add, R, D, SLop=weiop_sllN, WCop=weiop_mwcN, FKop=weiop_cam3, FXop=weiop_ssf3, IGop=weiop_hcig) call weimig_init( SLin=weiop_sllN_init, WCin=weiop_mwcN_init, FKin=weiop_cam3_init, FXin=weiop_ssf3_init, IGin=weiop_hcig_init)

37 paul@sep.stanford.edu WEI 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) Scattering operator 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)

38 paul@sep.stanford.edu Summary Flexible, reusable f90 code Cluster ready (MPI,OMP) Standard operator interface Applications –WE datuming –WE migration –WE MVA

39 paul@sep.stanford.edu Resources (name@sep.stanford.edu) Developers –Paul, Bob Manual –Marie Users –Biondo, Antoine, Morgan, Brad, Nick, Alejandro


Download ppt "weilib: wave-equation imaging Paul Sava."

Similar presentations


Ads by Google