Problem statement and challenges
Accelerators are devices that can provide very high performance and efficiency when executing certain applications. Towards this end, for certain HPC applications, Field-Programmable Gate Arrays (FPGAs) can significantly outperform GPUs which in turn significantly outperform CPUs. Therefore, it is highly desirable to optimize HPC applications so as to take the most advantage possible of such reconfigurable accelerators. However, FPGA are considered difficult to be programmed, interconnected and handled, especially within parallel systems. Moreover, the heterogeneity introduced by these accelerators makes the efficient management of the resources as well as the intercommunication between the different devices much more complex than in homogeneous conventional HPC systems.
Due to management and difficulty in programming, most HPC systems have at most a limited number of nodes with FPGAs as accelerators while several do not have any accelerators at all. For instance, no system in the top 500 list no system utilizes FPGAs. On the other hand “architectural specialisation with FPGAs or even application-specific integrated circuits (ASIC) could be important to overcoming the bottleneck introduced by the slowdown of Moore’s Law”. Since no more than ten years ago GPUs were in a similar situation, as they were available only in experimental clusters and testbeds, and now they dominate the Green 500, it is highly likely “that we will see the same thing with FPGAs at some point as well.” Moreover, as clearly demonstrated in a very recent analysis of the energy efficiency of the Top-500 systems in the last almost 20 years, we should find new architectures and utilize accelerators if we want to keep providing growing computing power in HPC systems, at the current rate.
Depending on the utilized accelerator(s) or the parallelization that should be achieved, it is necessary to use different languages and specifications (e.g. CUDA, OpenMP, OpenCL, MPI, GA). This variety of programming paradigms increases significantly the complexity of the software development, especially since the developers will also try to get the maximum performance from the underlying accelerator hardware, which requires certain skills and/or exposure to high level synthesis (HLS) tools. All the above make the development of HPC applications, utilizing tailor-made hardware accelerators, a forbiddingly costly and complex process especially for the SMEs that are, in general, very cost-conscious.
OPTIMA is a heavily SME-driven project (note that almost 60% of OPTIMA’s budget goes to SMEs) which will allow the participating industries, coming from different domains, as well as applications developed by academics and used by industry, to take advantage of the new, upcoming, and promising FPGA-based HPC systems. Towards this aim, OPTIMA will utilize:
- two novel FPGA-based HPC platforms
- several HPC programming environments
- the skills needed so as to allow HPC applications to take full advantage of the underlying heterogeneous HPC systems. Within OPTIMA several industrial applications, developed by the project partners, as well as a set of open-source libraries and applications utilized in numerous industrial sectors, will be optimized so as to fully utilize all the unique features of the FPGA-based HPC systems. Moreover, the open-source libraries and applications will allow industries outside the consortium to take advantage of the current and future heterogeneous HPC systems.
Mission and objectives
OPTIMA’s main goal is to prove that there are several HPC applications that can take advantage of the future highly heterogeneous FPGA-populated HPC systems while, by using the newly introduced tools and runtimes, the application porting/development can be almost as simple as developing software for conventional HPC systems incorporating GPUs. Special emphasis will be given to the efficient processing of both conventional
HPC applications (e.g. Fluid Dynamics, Underground Simulations, etc.) as well as the more recently introduced machine/deep learning ones (e.g. Robotics);
OPTIMA aims to:
- Develop optimized versions of applications and open-source libraries that will be executed on FPGA-based HPC systems, at a significantly higher performance-to-energy ratio and/or producing more accurate results than the existing HPC systems, including those consisting of low power CPUs (e.g. ARM) and/or GPUs.
- Provide guidelines and reference open-source designs so as to allow the application porting, by third parties, to FPGA-based heterogeneous platforms to be done in time similar to that needed for porting an HPC application to systems utilizing GPUs and/or many-cores.