Samurai

The main goal of samurai is to provide a new data structure based on intervals and algebra of sets to handle efficiently adaptive mesh refinement methods based on a cartesian grid. Such an approach has to be versatile enough to handle both AMR and multi-resolution methods.

1. Exascale Bottlenecks Addressed

B6 Data management B7 Exascale algorithms B9 Resilience, robustness and accuracy B10 Scientific productivity B11 Reproducibility and replicability

2. Criteria Evaluation

2.1. Packaging

Software should be packaged (preferably using Spack or Guix package formats) and published in public repositories.

  • Packages exist

  • Available in Spack

  • Available in Guix-HPC

  • Docker image available

  • Apptainer/Singularity available

  • Spack: github.com/spack/spack

2.2. Testing & CI/CD

Software should include validation tests triggered through automated mechanisms.

  • Unit tests exist

  • Continuous Integration configured

  • CI runs on each release

  • Benchmarking tests exist

2.3. Repository & Contributions

  • Public source repository available

  • Supports contributions via pull requests

2.4. License

Sources should be published under a clearly-identified free software license.

  • License clearly stated

  • FLOSS license (FSF/OSI conformant)

  • SPDX identifiers used

  • REUSE compliant

  • BSD

2.5. Documentation

  • Documentation exists

  • Easily browsable online

2.6. API Compatibility

  • API changes documented

  • Semantic versioning used

  • Release policy defined

3. Work Packages

This framework is involved in the following work packages:

3.1. WP1

Topics: mesh adaptation Benchmarked in this WP

4. Technical Details

Languages: C, C17, C++20

Parallelism: MPI, Multithread

Data Formats: HDF5

Resilience: Checkpoint restart

5. Partners

Lead Partner: CEA, IPP

Consortium: IP Paris