A System Development Kit for Big Data Applications on FPGA-based Clusters: The EVEREST Approach
Christian Pilato, Subhadeep Banik, Jakub Beranek, Fabien Brocheton, Jeronimo Castrillon, Riccardo Cevasco, Radim Cmar, Serena Curzel, Fabrizio Ferrandi, Karl F. A. Friebel, Antonella Galizia, Matteo Grasso, Paulo Silva, Jan Martinovic, Gianluca Palermo, Michele Paolino, Andrea Parodi, Antonio Parodi, Fabio Pintus, Raphael Polig, David Poulet, Francesco Regazzoni, Burkhard Ringlein, Roberto Rocco, Katerina Slaninova, Tom Slooff, Stephanie Soldavini, Felix Suchert, Mattia Tibaldi, Beat Weiss, Christoph Hagleitner
TL;DR
The paper addresses the challenge of developing energy-efficient FPGA-accelerated big data workloads in data-center environments. It presents the EVEREST SDK, a unified framework combining data-driven compilation, a virtualized runtime, and an anomaly-detection service, built on MLIR-based representations and ConDRust coordination. Key contributions include the data-driven compilation framework, system-level generation via Olympus, a SR-IOV-enabled virtualization layer, a dynamic autotuning component (mARGOt), and an anomaly-detection service, demonstrated across weather, renewable-energy, air-quality, and traffic use cases. The approach enables efficient, adaptable FPGA deployments and improved designer productivity for complex data-centric workloads in heterogeneous hardware settings.
Abstract
Modern big data workflows are characterized by computationally intensive kernels. The simulated results are often combined with knowledge extracted from AI models to ultimately support decision-making. These energy-hungry workflows are increasingly executed in data centers with energy-efficient hardware accelerators since FPGAs are well-suited for this task due to their inherent parallelism. We present the H2020 project EVEREST, which has developed a system development kit (SDK) to simplify the creation of FPGA-accelerated kernels and manage the execution at runtime through a virtualization environment. This paper describes the main components of the EVEREST SDK and the benefits that can be achieved in our use cases.
