ZRLMPI: A Unified Programming Model for Reconfigurable Heterogeneous Computing Clusters
Abstract
Over the past two decades, the Message Passing Interface (MPI) has evolved as the de-facto standard for programming High-Performance Computing (HPC) clusters. Its widespread utilization led to the rapid development of applications and high reusability. Meanwhile, energy- and compute-efficient devices such as Field-Programmable Gate Arrays (FPGAs) are stepping into modern data centers and HPC clusters to address the nearing end of technology scaling. This combination of traditional CPU servers and FPGA nodes leads to Reconfigurable Heterogeneous HPC ( $ ReH ^2 $ PC) systems that are particularly cumbersome to program because of the absence of a standard programming model. This work advocates the use of MPI to program such $ ReH ^2 $ PC clusters and presents a proof of concept based on a cross-compiler, a High-Level Synthesis library, C++ library, an FPGA- and a CPU-runtime environment. The result is a one-click solution, which compiles a standard MPI application for a $ ReH ^2 $ PC cluster.