A few days ago, OPTIMA announced the release of deliverable 3.5, to which I contributed. This deliverable is part of a set of five deliverables under work package 3. But first, let’s talk about OPTIMA.

OPTIMA is an EU-funded project whose goal is to prove that several HPC applications can take advantage of the future highly heterogeneous FPGA-populated HPC systems. In addition, by using newly introduced tools and runtimes, application porting/development can be almost as simple as developing software for conventional HPC systems incorporating GPUs.

OPTIMA's Hardware/Software Setup

Deliverable 3.5 is the first version of an Open-Source library called OOPS (Optima Open Source) for FPGA-based HPC systems. This library contains a set of optimised software routines for industrial and scientific applications, taking advantage of OPTIMA hardware platforms.

The OOPS library follows a standard C-based application programming interface (API) and supports the latest Xilinx Alveo FPGA cards such as U55C and U280. This first version of OOPS contains the following kernels. Initial tests show similar or better performance of a single compute unit in comparison to single-thread CPU versions for most of the kernels. In fact, as shown in details in the deliverable, this first version uses just a fraction of the FPGA resources.

Overview of implemented algorithms in OOPS

The library will continue to receive more updates and bug fixes in the future, the immediate ones focusing on optimisation to achieve excellent energy-performance-rations. Later updates will include adding device-specific implementations such as utilising High Bandwith Memory, adding more solvers such as Jacobi Preconditioner and allowing massive parallel processing using more compute units.

More details about OPTIMA and the deliverable are available in PDF form here.