Skip to content

CExA-project/ddc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Apr 22, 2024
f853bca · Apr 22, 2024
Apr 18, 2024
Mar 23, 2024
Apr 19, 2024
Mar 14, 2024
Mar 14, 2024
Mar 14, 2024
Apr 16, 2024
Apr 19, 2024
Apr 22, 2024
Apr 19, 2024
Apr 8, 2024
Mar 14, 2024
Mar 14, 2024
Mar 14, 2024
Apr 16, 2024
Apr 2, 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