FREEDOM251

Freedom251 › Physics Simulation Software

libCEED

Free plan APILinuxSelf-hosted

Visit libCEED Alternatives Pricing

libCEED's own site

What libCEED is

libCEED is a C99 library for representing operators without assembling matrices, with runtime choice among implementations for CPUs and GPUs. It focuses on high-order finite elements, and its algebraic method can also work with other discretizations expressed in factored form. Its low-level API is intended for application code that supplies its own discretization infrastructure, including PETSc, MFEM, and Nek5000. The library provides Fortran, Python, Julia, and Rust interfaces. CPU options include pure C, AVX, ARM SVE and SME, and LIBXSMM; GPU implementations use CUDA, HIP, and SYCL, with optional MAGMA kernels. It has no required dependencies, while GPU support can be enabled at build time; SYCL requires oneAPI compilers. The algebraic interface is intended to fit new and existing software, and OpenMP host applications can create and apply operators from different threads within a parallel region. WebAssembly builds are also possible using Emscripten. Some backends use nondeterministic operations, though the documentation identifies backends that can produce reproducible results with suitable compile options. HIP implementations require ROCm 4.2 or newer, and MAGMA implementations require MAGMA 2.5.0 or newer. The project uses the BSD-2-Clause license and offers support by email or through its issue tracker.

Who it suits

libCEED suits developers building scientific applications that already provide their own discretization infrastructure and need optimized discretization kernels. It is intended for low-level use and names PETSc, MFEM, and Nek5000 among applications that can use its core operations.

What it does well

  • No required dependencies for the C99 library.
  • Interfaces are available for Fortran, Python, Julia, and Rust.
  • CPU and GPU implementations can be selected at runtime.
  • Supports OpenMP host applications and WebAssembly builds.
  • BSD-2-Clause licensed.

What to know first

  • GPU support requires optional toolchains or libraries.
  • SYCL support requires oneAPI compilers.
  • HIP backends require ROCm 4.2 or newer; MAGMA requires 2.5.0 or newer.
  • Some backends use nondeterministic operations.

Plans

PlanBilled and limitsPrice
libCEEDC99 library · no required dependencies · Fortran, Python, Julia, and Rust interfacesFree

As libceed.org lists them, read 12 Oct 2026. The maker's own page has the final word.

Getting started

  1. Open the libCEED documentation website.
  2. Choose the C99 library or one of its Fortran, Python, Julia, or Rust interfaces.
  3. Build the library; enable CUDA, HIP, or SYCL support if needed.
  4. Use the algebraic interface to integrate it into application code.
  5. Contact the team by email or through the issue tracker for support.

Verdict

Choose libCEED if your application has its own discretization infrastructure and needs a low-level algebraic library with CPU and GPU implementation choices. It may be a poor fit if you need a turnkey application rather than a library to integrate, or if required GPU toolchains are unavailable.

Questions

How much does libCEED cost?

The listed plan is free.

Which languages can use libCEED?

The C99 library has interfaces for Fortran, Python, Julia, and Rust.

Which CPU and GPU implementations are available?

CPU implementations include pure C, AVX, ARM SVE and SME, and LIBXSMM. GPU implementations use CUDA, HIP, and SYCL, with optional MAGMA kernels.

Does libCEED have required dependencies?

The library has no required dependencies. Optional GPU support needs corresponding toolchains and libraries.

Is libCEED open source?

The project identifies it as BSD-2-Clause licensed.

Can results be reproducible?

Some backends use nondeterministic operations. The documentation identifies backends that can produce reproducible results with appropriate compilation options.

Facts from libCEED's own pages

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

Where libCEED stands on Freedom251

Look at these too