[ANN] HaloArrays.jl — halo-exchange arrays for serial, threaded, and MPI

HaloArrays.jl automates the tedious, error-prone parts of stencil, finite-volume, and lattice codes: ghost-cell (halo) exchange and boundary handling. Write your kernel once and run it serial, multithreaded, or distributed with MPI — same API, just swap the backend.

  • Halo exchange handled for you — non-blocking, with comm–compute overlap
  • Boundary conditions built in: periodic, reflecting, anti-reflecting, repeating, custom, coupled
  • Global reductions + gather + HDF5; GPU-ready via KernelAbstractions
  • Composes as an OrdinaryDiffEq state and a Krylov vector (SciML)

Repo: GitHub - fafafrens/HaloArrays.jl · GitHub — feedback welcome!

1 Like