1 / 39

weilib: wave-equation imaging

weilib: wave-equation imaging. Paul Sava. My goal. Quick introduction to the library Not much about the imaging science Ask the right questions. Library goals. Flexible research Code recycling Efficiency vs. flexibility Cluster access Parallelization with MPI, OMP Large problems

bart
Download Presentation

weilib: wave-equation imaging

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

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

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

  12. 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 paul@sep.stanford.edu

  13. 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) … paul@sep.stanford.edu

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

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

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

  17. 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 end do … paul@sep.stanford.edu

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

  19. 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 end do !$OMP END DO !$OMP END PARALLEL paul@sep.stanford.edu

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

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

  22. Extrapolation frequency Wz Wz+Dz depth paul@sep.stanford.edu

  23. Imaging frequency Rz+Dz Wz+Dz depth paul@sep.stanford.edu

  24. WE migration paul@sep.stanford.edu

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

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

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

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

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

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

  31. WE MVA paul@sep.stanford.edu

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

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

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

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

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

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

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

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

More Related