The OpenMP Cluster Programming Model

07/12/2022
by   Hervé Yviquel, et al.
0

Despite the various research initiatives and proposed programming models, efficient solutions for parallel programming in HPC clusters still rely 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 shown to be an efficient and seamless programming model for clusters. This paper introduces OpenMP Cluster (OMPC), a task-parallel model that extends OpenMP for cluster programming. OMPC leverages OpenMP's offloading standard to distribute annotated regions of code across the nodes of a distributed system. To achieve that it hides MPI-based data distribution and load-balancing mechanisms behind OpenMP task dependencies. Given its compliance with OpenMP, OMPC allows applications to use the same programming model to exploit intra- and inter-node parallelism, thus simplifying the development process and maintenance. We evaluated OMPC using Task Bench, a synthetic benchmark focused on task parallelism, comparing its performance against other distributed runtimes. Experimental results show that OMPC can deliver up to 1.53x and 2.43x better performance than Charm++ on CCR and scalability experiments, respectively. Experiments also show that OMPC performance weakly scales for both Task Bench and a real-world seismic imaging application.

READ FULL TEXT
research
07/14/2020

MPI Collectives for Multi-core Clusters: Optimized Performance of the Hybrid MPI+MPI Parallel Codes

The advent of multi-/many-core processors in clusters advocates hybrid p...
research
02/17/2023

GPU Offloading in ExaHyPE Through C++ Standard Algorithms

The ISO C++17 standard introduces parallel algorithms, a parallel progra...
research
05/21/2022

Experiences with task-based programming using cluster nodes as OpenMP devices

Programming a distributed system, such as a cluster, requires extended u...
research
03/16/2022

On Distributed Gravitational N-Body Simulations

The N-body problem is a classic problem involving a system of N discrete...
research
02/01/2022

Pipeflow: An Efficient Task-Parallel Pipeline Programming Framework using Modern C++

Pipeline is a fundamental parallel programming pattern. Mainstream pipel...
research
11/02/2021

Towards Enabling I/O Awareness in Task-based Programming Models

Storage systems have not kept the same technology improvement rate as co...
research
07/14/2022

Parallel Flowshop in YewPar

Parallelism may reduce the time to find exact solutions for many Operati...

Please sign up or login with your details

Forgot password? Click here to reset