Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates repository name to SPECFEM++ #95

Merged
merged 12 commits into from
Dec 19, 2023
Merged
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ tests/regression-tests/*/gpu/*.yaml
*.gnu
examples/*/Par_File
*OUTPUT_FILES*
*.sqlite
*.nsys-rep
*.ncu-rep
28 changes: 14 additions & 14 deletions .jenkins/compiler_checks.gvy
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,17 @@ pipeline{
sh """
module load boost/1.73.0
module load ${CUDA_MODULE}
cmake3 -S . -B build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME} -DCMAKE_BUILD_TYPE=Release ${CMAKE_HOST_FLAGS} ${CMAKE_DEVICE_FLAGS}
cmake3 --build build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}
cmake3 -S . -B build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT} -DCMAKE_BUILD_TYPE=Release ${CMAKE_HOST_FLAGS} ${CMAKE_DEVICE_FLAGS}
cmake3 --build build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}
"""
echo ' Build completed '
}
}
stage (' Clean '){
steps {
echo ' Cleaning '
sh "rm -rf build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}"
}
}
post {
always {
echo ' Cleaning '
sh "rm -rf build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}"
}
}
}
Expand Down Expand Up @@ -112,17 +112,17 @@ pipeline{
module load intel/2022.2.0
export CC=icx
export CXX=icpx
cmake3 -S . -B build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME} -DCMAKE_BUILD_TYPE=Release ${CMAKE_HOST_FLAGS} ${CMAKE_DEVICE_FLAGS}
cmake3 --build build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}
cmake3 -S . -B build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT} -DCMAKE_BUILD_TYPE=Release ${CMAKE_HOST_FLAGS} ${CMAKE_DEVICE_FLAGS}
cmake3 --build build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}
"""
echo ' Build completed '
}
}
stage (' Clean '){
steps {
echo ' Cleaning '
sh "rm -rf build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}"
}
}
post {
always {
echo ' Cleaning '
sh "rm -rf build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion .jenkins/regression_tests.gvy
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ pipeline {
checkout([$class: 'GitSCM',
branches: [[name: 'code-along']],
extensions: [lfs()],
userRemoteConfigs: [[url: 'https://github.com/PrincetonUniversity/specfem2d_kokkos']]])
userRemoteConfigs: [[url: 'https://github.com/PrincetonUniversity/specfempp']]])
}
}

Expand Down
32 changes: 16 additions & 16 deletions .jenkins/unittests.gvy
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ pipeline {
sh """
module load boost/1.73.0
module load ${CUDA_MODULE}
cmake3 -S . -B build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME} -DCMAKE_BUILD_TYPE=Release ${CMAKE_HOST_FLAGS} ${CMAKE_DEVICE_FLAGS} -DBUILD_TESTS=ON
cmake3 --build build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}
cmake3 -S . -B build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT} -DCMAKE_BUILD_TYPE=Release ${CMAKE_HOST_FLAGS} ${CMAKE_DEVICE_FLAGS} -DBUILD_TESTS=ON
cmake3 --build build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}
"""
echo ' Build completed '
}
Expand All @@ -74,16 +74,16 @@ pipeline {
echo " Running Unittests "
sh """
module load boost/1.73.0
cd build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}/tests/unit-tests
cd build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}/tests/unit-tests
srun -N 1 -t 00:10:00 ${HOST_RUN_FLAGS} ${DEVICE_RUN_FLAGS} bash -c 'export OMP_PROC_BIND=spread; export OMP_THREADS=places; ctest; ctest --rerun-failed --output-on-failure;'
"""
}
}
stage (' Clean '){
steps {
echo ' Cleaning '
sh "rm -rf build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}"
}
}
post {
always {
echo ' Cleaning '
sh "rm -rf build_GNU_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}"
}
}
}
Expand Down Expand Up @@ -140,8 +140,8 @@ pipeline {
module load intel/2022.2.0
export CC=icx
export CXX=icpx
cmake3 -S . -B build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME} -DCMAKE_BUILD_TYPE=Release ${CMAKE_HOST_FLAGS} ${CMAKE_DEVICE_FLAGS} -DBUILD_TESTS=ON
cmake3 --build build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}
cmake3 -S . -B build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT} -DCMAKE_BUILD_TYPE=Release ${CMAKE_HOST_FLAGS} ${CMAKE_DEVICE_FLAGS} -DBUILD_TESTS=ON
cmake3 --build build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}
"""
echo ' Build completed '
}
Expand All @@ -152,16 +152,16 @@ pipeline {
sh """
module load boost/1.73.0
module load intel/2022.2.0
cd build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}/tests/unit-tests
cd build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}/tests/unit-tests
srun -N 1 -t 00:10:00 ${HOST_RUN_FLAGS} ${DEVICE_RUN_FLAGS} bash -c 'export OMP_PROC_BIND=spread; export OMP_THREADS=places; ctest; ctest --rerun-failed --output-on-failure;'
"""
}
}
stage (' Clean '){
steps {
echo ' Cleaning '
sh "rm -rf build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}"
}
}
post {
always {
echo ' Cleaning '
sh "rm -rf build_INTEL_${CMAKE_HOST_NAME}_${CMAKE_DEVICE_NAME}_${env.GIT_COMMIT}"
}
}
}
Expand Down
43 changes: 12 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,42 @@
# SPECFEM2D Kokkos implementation
# SPECFEM++

[![Unittests](https://github.com/PrincetonUniversity/specfem2d_kokkos/actions/workflows/unittests.yml/badge.svg)](https://github.com/PrincetonUniversity/specfem2d_kokkos/actions/workflows/unittests.yml)
[![Tests](https://github.com/PrincetonUniversity/specfem2d_kokkos/actions/workflows/unittests.yml/badge.svg)](https://github.com/PrincetonUniversity/specfem2d_kokkos/actions/workflows/unittests.yml)
[![Build](https://github.com/PrincetonUniversity/specfem2d_kokkos/actions/workflows/compilation.yml/badge.svg)](https://github.com/PrincetonUniversity/specfem2d_kokkos/actions/workflows/compilation.yml)
[![Documentation Status](https://readthedocs.org/projects/specfem2d-kokkos/badge/?version=latest)](https://specfem2d-kokkos.readthedocs.io/en/latest/?badge=latest)

## About

SPECFEM++ is a complete re-write of SPECFEM suite of packages (SPECFEM2D, SPECFEM3D, SPECFEM3D_GLOBE) using C++. Compared to the earlier version, SPECFEM++ code base provides:

SPECFEM kokkos is C++ implementation of SPECFEM suite of software using the [Kokkos](<https://kokkos.github.io/>) programming model. Kokkos is a is a production level solution for writing modern C++ applications in a hardware agnostic way, this allows us to write a single source code which can run across all modern architectures. The goal of this project is to provide the same level of functionality as provided by SPECFEM2D, SPECFEM3D and SPECFEM3d_GLOBE in a singular package that runs across all architectures.
1. a robust and flexible code structure,
2. modularity that allows for easy addition of new features,
3. portability that allows the code to run on a variety of architectures (CPU, NVIDIA GPUs, Intel GPUs, AMD GPUs etc.), and
4. a user-friendly build infrastructure that allows the code to be easily compiled and run on a variety of platforms.

## Documentation


The online documentation for SPECFEM2D Kokkos is located [here](https://specfem2d-kokkos.readthedocs.io/en/latest/index.html#)
The online documentation for SPECFEM++ is located [here](https://specfem2d-kokkos.readthedocs.io/en/latest/index.html#)

## Installation


Completer installation instructions are located in the [online documentation](https://specfem2d-kokkos.readthedocs.io/en/latest/user_documentation/index.html)

## Code feature matrix
## Running SPECFEM++


Table below shows various features available and tested in this package on various architectures:

| | CPU(serial) | CPU(OpenMP) | CUDA | HIP
----------------------|------------:|-----------:|------:|-----|
| **Physics** |
| P-SV waves | X | X | X | |
| Elastic Domains | X | X | X | |
| **Simulation Setup** |
| Forward Simulations | X | X | X | |
| **Time Schemes** |
| Newmark | X | X | X | |
| **Seismograms** |
| Displacement | X | X | X | |
| Velocity | X | X | X | |
| Acceleration | X | X | X | |
| **Seismogram format** |
| ASCII | X | X | X | |

## Running SPECFEM2D Kokkos

Intructions on how to run SPECFEM2D Kokkos can be found [here](https://specfem2d-kokkos.readthedocs.io/en/latest/user_documentation/index.html).
Intructions on how to run SPECFEM++ can be found [here](https://specfem2d-kokkos.readthedocs.io/en/latest/user_documentation/index.html).

For use case examples of running the software please see [cookbooks](https://specfem2d-kokkos.readthedocs.io/en/latest/cookbooks/index.html)

## Contributing to SPECFEM2D Kokkos

## Contributing to SPECFEM++

SPECFEM is a community project that lives by the participation of its members — i.e., including you! It is our goal to build an inclusive and participatory community so we are happy that you are interested in participating! Please see [this page](https://specfem2d-kokkos.readthedocs.io/en/latest/developer_documentation/index.html) for developer documentation.

In particular you should follow the git development workflow and pre-commit style checks when contributing to SPECEFM.

## License


[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)

SPECFEM2D Kokkos is distributed under the [GPL v3 license](LICENSE)
SPECFEM++ is distributed under the [GPL v3 license](LICENSE)
14 changes: 0 additions & 14 deletions docs/api/jacobian.rst

This file was deleted.

15 changes: 0 additions & 15 deletions docs/api/material.rst

This file was deleted.

36 changes: 0 additions & 36 deletions docs/api/parameter.rst

This file was deleted.

30 changes: 0 additions & 30 deletions docs/api/quadrature.rst

This file was deleted.

10 changes: 0 additions & 10 deletions docs/api/solver.rst

This file was deleted.

39 changes: 0 additions & 39 deletions docs/api/sources_recievers.rst

This file was deleted.

9 changes: 0 additions & 9 deletions docs/api/specfem_enums.rst

This file was deleted.

9 changes: 0 additions & 9 deletions docs/api/specfem_mpi.rst

This file was deleted.

12 changes: 0 additions & 12 deletions docs/api/timescheme.rst

This file was deleted.

Loading