Automated parallel execution of distributed task graphs with FPGA clusters

Over the years, Field Programmable Gate Arrays (FPGA) have been gaining popularity in the High Performance Computing (HPC) field, because their reconfigurability enables very fine-grained optimizations with low energy cost. However, the different characteristics, architectures, and network topologie...

Full description

Bibliographic Details
Authors: De Haro Ruiz, Juan Miguel|||0000-0002-7427-9118, Álvarez Martínez, Carlos|||0000-0003-0536-5183, Jiménez González, Daniel|||0000-0001-6064-7883, Martorell Bofill, Xavier|||0000-0002-0417-3430, Ueno, Tomohiro, Sano, Kentaro, Ringlein, Burkhard, Abel, François, Weiss, Beat
Format: article
Publication Date:2024
Country:España
Institution:Universitat Politècnica de Catalunya (UPC)
Repository:UPCommons. Portal del coneixement obert de la UPC
Language:English
OAI Identifier:oai:upcommons.upc.edu:2117/411487
Online Access:https://hdl.handle.net/2117/411487
https://dx.doi.org/10.1016/j.future.2024.06.041
Access Level:Open access
Keyword:Supercomputers
Field programmable gate arrays
C++ (Computer program language)
FPGA
MPI
Task graphs
Heterogeneous computing
High performance computing
Programming models
Distributed computing
Supercomputadors
Matrius de portes programables per l'usuari
C++ (Llenguatge de programació)
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors
Description
Summary:Over the years, Field Programmable Gate Arrays (FPGA) have been gaining popularity in the High Performance Computing (HPC) field, because their reconfigurability enables very fine-grained optimizations with low energy cost. However, the different characteristics, architectures, and network topologies of the clusters have hindered the use of FPGAs at a large scale. In this work, we present an evolution of OmpSs@FPGA, a high-level task-based programming model and extension to OmpSs-2, that aims at unifying all FPGA clusters by using a message-passing interface that is compatible with FPGA accelerators. These accelerators are programmed with C/C++ pragmas, and synthesized with High-Level Synthesis tools. The new framework includes a custom protocol to exchange messages between FPGAs, agnostic of the architecture and network type. On top of that, we present a new communication paradigm called Implicit Message Passing (IMP), where the user does not need to call any message-passing API. Instead, the runtime automatically infers data movement between nodes. We test classic message passing and IMP with three benchmarks on two different FPGA clusters. One is cloudFPGA, a disaggregated platform with AMD FPGAs that are only connected to the network through UDP/TCP/IP. The other is ESSPER, composed of CPU-attached Intel FPGAs that have a private network at the ethernet level. In both cases, we demonstrate that IMP with OmpSs@FPGA can increase the productivity of FPGA programmers at a large scale thanks to simplifying communication between nodes, without limiting the scalability of applications. We implement the N-body, Heat simulation and Cholesky decomposition benchmarks, and show that FPGA clusters get 2.6x and 2.4x better performance per watt than a CPU-only supercomputer for N-body and Heat.