HPC Talk: "The OpenMP Cluster Programming Model"

Guido Araujo
Chair(s):
Information:

The OpenMP Cluster Programming Model

Despite the various research initiatives, parallel programming in HPC clusters still relies on a complex combination of different programming models (e.g., OpenMP and MPI), languages (e.g., C++ and CUDA), and specialized runtimes (e.g., Charm++ and Legion). On the other hand, task parallelism has been shown (e.g., OmpSs) to be an efficient and seamless programming model for clusters. This talk introduces OpenMP Cluster (OMPC), a task-parallel programming model that extends OpenMP for cluster programming. OMPC leverages OpenMP’s offloading standard to distribute annotated code regions across the nodes of a cluster. It hides MPI-based data distribution, scheduling, and load-balancing mechanisms behind the OpenMP task-parallel model. Given its compliance with OpenMP, OMPC allows applications to use the same programming model to exploit intra- and internode parallelism, thus simplifying the development process and maintenance. We discuss OMPC evaluation on LNCC, CIMATEC, and Petrobras supercomputers, using TaskBench and applications from Geophysics (AWAVE3D) and Physical-Chemistry (HPCCS) domains. In addition, we also show how OMPC has been extended to enable FPGA-based acceleration through a partnership with Xilinx/AMD.

 

Invited Speaker:
Guido Araujo

Moderator: