Skip to content

ABandet/Glitched

 
 

Repository files navigation

FUnTiDES: Fast Unstructured Time Dynamic Equation Solver

FUnTiDES is a collection of simplified codes that represent real scientific applications. It serves as a standard tool for evaluating and comparing the performance of various high-performance computing (HPC) systems, particularly those used for scientific simulations.


Included Applications

The current implementation includes two proxy applications for solving the 2nd-order acoustic wave equation in 2D and 3D:

  • SEM (Spectral Element Method) A benchmark designed to simulate wave propagation using SEM, a Galerkin-based finite element method for solving partial differential equations (PDEs).

  • FD (Finite Difference Method) A benchmark that uses finite-difference stencil operators to simulate wave propagation and solve PDEs.

A key feature of these proxy applications is their adaptability to different programming models and HPC architectures. They are also easy to build and run, making them accessible to both researchers and developers.


Supported Programming Models

The SEM proxy currently supports:

  • Kokkos — for performance portability

Note: Kokkos is included as a Git submodule and will be compiled automatically when enabled.


Supported Data Containers

The current SEM proxy supports the following data container:

  • std::vector (default for serial )

Quick Start: Build and Run

Step 1: Compile and Install

mkdir build
cd build
cmake ..
make install

By default, this builds the applications in sequential mode using std::vector. Both SEM and FD applications are compiled.

Step 2: Run Examples

# Run SEM simulation with 100 x 100 x 100 elements
./src/main/semproxy -ex 100

# Run FD simulation
./src/main/fdproxy

CMake Options

The following options can be used to configure your build:

Option Description
COMPILE_FD Enable compilation of the FD proxy (default: ON)
COMPILE_SEM Enable compilation of the SEM proxy (default: ON)
ENABLE_CUDA Enable CUDA backend (used by Kokkos)
ENABLE_PYWRAP Enable Python bindings via pybind11 (experimental)
USE_KOKKOS Enable Kokkos support (serial by default, CUDA/OpenMP with flags)
USE_VECTOR Use std::vector for data arrays (enabled by default unless Kokkos is used)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 93.9%
  • CMake 5.7%
  • C 0.4%