Skip to content
Daniel Peter edited this page Nov 13, 2023 · 11 revisions

Development plan

SPECFEM3D_GLOBE

last update: November, 2023

Feature Priority Timeline Status Version
Models
EMC models medium Q4 2023 [100%] ✔️ version 8.1
Mars Sohl&Spoon model B implementation medium Q1 2022 [50%] 🔧
Code / Features
ShakeMap PGV/PGA medium Q2 2022 [50%] 🔧
add dynamic allocation, remove static compilation medium Q1 2022 [100%] ✔️ version 8.0
adding Sponge ABC layers medium Q2 2022 [100%] ✔️ version 8.0
I/O
ADIOS complete post-process tools medium - 🌧️
Time schemes
higher-order time scheme symplectic low - -
GPU version
HIP version medium Q1 2021 [100%] ✔️ version 8.0
CUDA-aware MPI medium Q1 2021 [100%] ✔️ version 8.0
smoothing on GPU medium Q1 2022 [100%] ✔️ version 8.0
CUDA improvements:
  • combine R_xz,R_xy,../epsilondev_xx,..;
  • comment() for ruby kernels;
  • compute_add_sources() without memcpy at each step;
  • decrease register usage in crust_mantle_..kernel;
  • use 2. compute stream for 2 passes inner/outer elements;
  • use event synchronization rather than stream sync;
  • use float4 for d.x,d.y,d.z,d.w and use as 3D x/y/z arrays
medium - 🌧️

Issue Priority Timeline Status
check MPS GPU with simultaneous runs medium - [0%] 🌧️

Version history

  • version 8.1, November 2023:
    Daniel Peter, Julien Thurin, Lucas Sawade.

    • adds EMC model support; minor fixes and code improvements; updates ADIOS2 and LIBXSMM calls
  • version 8.0, March 2023:
    Wolfgang Bangerth, Stephen Beller, Ebru Bozdag, Caio Ciardelli, Congyue Cui, Armando Espindola-Carmona, Rene Gassmoeller, Sunny Gogar, Leopold Grinberg, Quancheng Huang, Elodie Kendall, Wenjie Lei, Amanda McPherson, Yellapragada Meenakshi, Ridvan Orsvuran, Daniel Peter, Norbert Podhorszki, S.T.G. Raghukanth, Eduardo Valero Cano.

    • support for new Earth, Moon & Mars models
    • ADIOS2 file I/O support
    • GLL models for azimuthal anisotropy & Q
    • LDDRK on GPU support
    • Laplacian smoothing
    • monochromatic source time functions, sponge absorbing boundaries, steady-state kernels
    • mesh cut-off
    • seismogram down-sampling
    • non-static compilation

Continuous testing

Github Actions
Workflow
OS: Linux (Ubuntu-latest 20.04, Ubuntu 18.04), MacOS (v10.15 Catalina)

  • for Pull requests:
    • Intel OneAPI compiler latest (2021.3.0)
    • make
    • make tests

Buildbot
OS: Linux (Springdale Linux release 6.10)
compiler: GCC, Intel (v13.0), CUDA (v5.5)

  • for Pull requests:

    • make
    • make --with-mpi
    • make --enable-double-precision
    • make --with-cuda=cuda5
    • make (w/ Intel)
  • nightly builds:

    • regional_Greece_small

Travis-CI
Build Status
Architecture: IBM Power, ARM
OS: Linux (Ubuntu 18.04 Bionic)

  • for Pull requests:
    • 19 different tests compile and run a limited number of timesteps
    • tests MPI version
    • tests vectorization
    • tests single & double precision
    • tests NGLL 5 & NGLL 6
    • tests CMTSOLUTION & FORCESOLUTION source
    • tests Newmark & LDDRK time scheme
    • tests OpenMP version
    • tests OpenCL version
    • tests Earth, Mars, Moon setups

Azure Pipelines
Azure Status
OS: Linux (Ubuntu-latest 20.04, Ubuntu 18.04)

  • for Pull requests:
    • compilation tests for GCC 7/9/10
    • compilation tests for CUDA 10/11

Code coverage
codecov

  • integrated through travis tests
  • includes only CPU code tests

Jenkins
OS: Linux (Ubuntu 16.04.7 LTS)
compiler: GCC (v5.4.0), CUDA (v10.1)
hardware: CPU Intel(R) Xeon(R) CPU E5-2680 v3, GPU Tesla K40c

  • for Pull requests:
    • make tests
    • example regional_Greece_small GPU
    • example global_small GPU
    • example mars_regional GPU
    • example ADIOS1 regional_Greece_small GPU
    • example ADIOS1 regional_Greece_small kernel GPU
    • example ADIOS1 regional_Greece_small kernel undo_att GPU
    • example ADIOS2 regional_Greece_small GPU
    • example ADIOS2 regional_Greece_small kernel GPU
    • example ADIOS2 regional_Greece_small kernel undo_att GPU
    • example regional_Greece_small OpenCL
    • example regional_Greece_small LDDRK GPU
    • example regional_sgloberani GPU
    • example moon_global GPU
    • example noise GPU
    • example 2-sources (switched ordering) regional_Greece_small GPU
    • example point_force GPU

status legend
✔️ done
👍 agree, would be nice to have
🔧 work in progress...
🌧️ waiting for sunnier days
💤 hibernating