Skip to content

CExA-project/ddc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

605c662 · Jun 5, 2024
May 27, 2024
May 27, 2024
May 27, 2024
Mar 14, 2024
May 29, 2024
May 27, 2024
May 25, 2024
Apr 25, 2024
Jun 5, 2024
Jun 5, 2024
Apr 8, 2024
Mar 14, 2024
Mar 14, 2024
Mar 14, 2024
Apr 25, 2024
May 27, 2024
Mar 14, 2024
Apr 8, 2024

Repository files navigation

The discrete domain computation library (DDC)

See https://ddc.mdls.fr/

DDC, is a C++-17 library that aims to offer to the C++/MPI world an equivalent to the xarray.DataArray/dask.Array python environment. Where these two libraries are based on numpy, DDC relies on Kokkos and mdspan to offer CPU/GPU performance-portable multi-dimensional arrays and iterators.

DDC aims to offer abstractions to represent:

  • tagged continuous dimensions,
  • discretizations of these (multiple kinds of meshes, function spaces, Fourier, etc.),
  • domains in these discretized dimensions,
  • associating data to the elements of these discrete domains,
  • efficient distribution and iteration over this data.

All these abstractions are handled at compilation using C++ template meta-programming to ensure zero overhead at execution and enable developers to change their design choices (e.g. from a regular mesh to a non-uniform one) with performance portability.

Find out more...

If you like the project, please leave us a github star.

If you want to know more, join un on Slack

Getting the code and basic configuration

git clone --recurse-submodules -j4 https://github.com/CExA-project/ddc.git
cd ddc
cmake -B build -D DDC_BUILD_KERNELS_FFT=OFF -D DDC_BUILD_KERNELS_SPLINES=OFF -D DDC_BUILD_PDI_WRAPPER=OFF
cmake --build build