High Performance
Built in modern C++23 and CUDA C++20 always with an eye to performance.
The XFELPP umbrella encompases a number of packages and frameworks for reading, interacting with, and analyzing data produced at X-ray Free Electron Laser (XFEL) light sources.
There are three main projects underpinning XFELPP:
ncarray: A multi-dimensional array library with support for “pointer-axes” (i.e. suboffsets). An expression engine and custom-built JIT compiler is used for fast evaluation on the host, with GPU-supported evaluation via CUDA’s NVRTC.
sbio: “Stream Broker IO” - A generic IO framework for interfacing with data formats that have some logical concept of streaming, e.g. as “events” that stream in time from a data acquisition system. Its fully agnostic to the format itself, with backend formats hot-swappable.
xalgospp: An assortment of high-performance algorithms and utilities for analyzing XFEL data, and in particular array data.
High Performance
Built in modern C++23 and CUDA C++20 always with an eye to performance.
Python Friendly
Simple APIs and familiar Python bindings to make getting started easy.
Wheel Variant Indices
Libraries are packaged as wheels (shared libraries included). Self-hosted indices for pulling builds for different versions of CUDA, or CPU only.
Cross-platform
Read the docs
Get started with the example and tutorial.