Skip to content

benbarsdell/bifrost

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bifrost has moved!

The latest incarnation of Bifrost is now hosted here: https://github.com/ledatelescope/bifrost


Bifrost

A stream processing framework for high-throughput applications.

Bifrost aims to be easy to use, easy to debug, performant enough to compete with best-in-class, and flexible enough to implement even advanced pipeline designs.

Feature overview

  • Designed for sustained high-throughput stream processing (offline batch processing also possible).
  • High-level interface: JSON pipeline descriptions and simple C++ plugins.
  • Strong decoupling of processing tasks: unconstrained buffering and data shape/type interpretation.
  • Built-in support for both system (CPU) and CUDA (GPU) memory spaces and computation.
  • Built-in support for broadcasting of real-time monitoring data, plus tools for subscribing to and visualizing these data.
  • Library of plugins for common processing operations (e.g., packetize/depacketize, FFT, BLAS; potentially many more).

Design overview

Bifrost Pipelines, described in JSON format, consist of a graph of multiple-input multiple-output Tasks connected via flexible RingBuffers. When launched, each Task runs asynchronously and processes data from its inputs (if any) to its outputs (if any).

Installation

$ make

will build libbifrost.so, the bifrost_launch application and the standard plugins.

Contributors

  • Ben Barsdell (gmail benbarsdell)
  • Daniel Price (thetelegraphic.com dan)

About

A stream processing framework for high-throughput applications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages