PaRSEC + OpenMP Best Practice Guide

19 Nov 2018
INTERTWinE has published a new Best Practice Guide on hybrid PaRSEC + OpenMP Programming.

PaRSEC is a generic framework for architecture-aware scheduling and management of micro-tasks on distributed many-core heterogeneous architectures. PaRSEC is the underlying runtime and dynamic scheduling engine of the DPLASMA numerical linear algebra library for dense matrices, among others. PaRSEC has been designed as a massively parallel distributed runtime system since its beginning around 2010.

A design assumption of PaRSEC was having a full control over the distributed memory resources, including memory, network, processor cores and accelerators. However, emerging hardware architectures as well as the need for reusing existing software require other modes of use of PaRSEC and call for smooth interoperability with other existing programming models.

OpenMP is a clear candidate for investigating the interoperability with PaRSEC. It is widely used, supported by compilers and adopted by existing software.

Hybrid application programs using MPI + OpenMP are now common on large HPC systems. Details about the motivation of this combination can be found, e.g., in the INTERTWinE Best Practice Guide to Hybrid MPI + OpenMP Programming.

A hybrid programming model considered in the new Best Practice Guide to Hybrid PaRSEC + OpenMP Programming combines PaRSEC on the inter-node level with OpenMP used intra-node. In this approach, the tasks of PaRSEC are further parallelised by OpenMP. Such programming model is attractive especially for the possibility for reusing existing OpenMP software in an application based on distributed memory tasking. Data are interchanged on the inter-node level in an asynchronous way by the PaRSEC communication engine while being processed by OpenMP-parallel code.

The Best Practice Guide briefly describes PaRSEC and its interfaces, and discusses in detail the binding of PaRSEC threads to hardware cores, and the interplay of PaRSEC with OpenMP.

Download the Best Practice Guide to Hybrid PaRSEC + OpenMP Programming from

Last updated: 22 Nov 2018 at 10:14