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:
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.
If you like the project, please leave us a github star.
If you want to know more, join un on Slack
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