libCEED
libceed.org
Spec sheet
- Purpose
- libCEED is a library for matrix-free operator representation focused on high-order finite elements and other discretizations in factored form.Read 12 Oct 2026 · libceed.org
- Intended users
- The library is designed for application developers whose codes have their own discretization infrastructure and need optimized discretization kernels.Read 12 Oct 2026 · libceed.org
- Free plan
- YesRead 24 Sep 2026 · libceed.org
- Support
- The libCEED team can be reached by email at [email protected] or through comments in the issue tracker.Read 12 Oct 2026 · github.com
- License
- The repository states that libCEED is distributed under the BSD 2-Clause License.Read 12 Oct 2026 · github.com
- Application integrations
- The documentation names PETSc, MFEM, and Nek5000 as applications that can use libCEED’s core operations.Read 12 Oct 2026 · libceed.org
- Backend requirements
- The documented HIP backends require ROCm 4.2 or newer, and the MAGMA backends require MAGMA 2.5.0 or newer.Read 5 Oct 2026 · libceed.org
- Build dependencies
- The library has no required dependencies; CUDA, HIP, and SYCL support can be enabled during the build, and SYCL requires oneAPI compilers.Read 5 Oct 2026 · libceed.org
- Build requirements
- The C99 library has no required dependencies, while optional GPU backends require corresponding toolchains and libraries.Read 12 Oct 2026 · libceed.org
- CPU and GPU backends
- Documented backends include CPU implementations and GPU implementations using CUDA, HIP, SYCL, and MAGMA.Read 5 Oct 2026 · libceed.org
- CPU backends
- CPU backends include pure C, AVX, ARM SVE and SME, and LIBXSMM implementations.Read 12 Oct 2026 · libceed.org
- Determinism
- Some backends use nondeterministic operations such as atomicAdd, and the documentation identifies which listed backends support reproducible results.Read 12 Oct 2026 · libceed.org
- GPU backends
- GPU backends include CUDA, HIP, and SYCL, with optional MAGMA kernels.Read 12 Oct 2026 · libceed.org
- Integration
- The manual describes libCEED as a lightweight library that can be integrated into new and legacy software through a purely algebraic interface.Read 5 Oct 2026 · libceed.org
- Language interfaces
- The library has a C99 interface plus Fortran, Python, Julia, and Rust interfaces.Read 12 Oct 2026 · libceed.org
- Methods
- The library focuses on high-order finite elements, while its algebraic approach also applies to other discretizations in factored form.Read 5 Oct 2026 · libceed.org
- OpenMP
- It can be configured for OpenMP host applications to create and apply operators from different threads within an OpenMP parallel region.Read 12 Oct 2026 · libceed.org
- Performance portability
- It provides runtime selection of implementations tuned for CPUs and GPUs through a unified low-level API.Read 12 Oct 2026 · libceed.org
- Reproducibility limit
- Some backends use nondeterministic operations, and the manual identifies which backends can produce reproducible results with proper compilation options.Read 5 Oct 2026 · libceed.org
- Target users
- Its low-level API is intended for application code with its own discretization infrastructure, including PETSc, MFEM, and Nek5000.Read 5 Oct 2026 · libceed.org
- WebAssembly
- libCEED can be built for WebAssembly using Emscripten.Read 12 Oct 2026 · libceed.org
Plans and prices
libCEED Free C99 library · no required dependencies · Fortran, Python, Julia, and Rust interfaces Read 12 Oct 2026 · libceed.org
Where Specifiction places it
- Physics Simulation Software#16 of 898.4