Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

CExA-project/ddc

Repository files navigation

The discrete domain computation library (DDC)

OpenSSF Scorecard Codecov License: MIT Nightly early integration Pages

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

Prerequisites

To use DDC core, one needs the following dependencies:

  • a C++17-compliant compiler
  • CMake 3.25...<4
  • Kokkos 4.4...<5
  • (optional, micro benchmarking) Benchmark 1.8...<2
  • (optional, documentation) Doxygen 1.8.13...<2
  • (optional, unit-testing) GoogleTest 1.14...<2

To use DDC components, one needs the following dependencies:

  • (optional, fft interface) DDC::fft
    • Kokkos-fft 0.3.0...<1
  • (optional, IO interface) DDC::pdi
    • PDI 1.6...<2
  • (optional, spline interpolation) DDC::splines
    • Ginkgo 1.8...<2
    • Kokkos Kernels 4.5.1...<5

Getting the code and basic configuration

Please see this page for a detailed installation guide.

Contributing

Please see this page for details on how to contribute.

Known issues

  • Kokkos 4.5.0 embeds a version of mdspan that is not compatible with DDC, see kokkos/mdspan#368. This issue has been fixed in Kokkos 4.5.1.

AltStyle によって変換されたページ (->オリジナル) /