Published March 7, 2018 | Version v1

A Divide-and-Conquer Parallel Pattern Implementation for Multicores

  • 1. University of Pisa

Description

Divide-and-Conquer (DaC) is a sequential programming paradigm which models a large class of algorithms used in real-life applications. Although suitable to extract paral- lelism in a straightforward way, the parallel implementation of DaC algorithms still requires some expertise in parallel programming tools by the programmer.

In this paper we aim at providing to non-expert program- mers a high-level solution for fast prototyping parallel DaC programs on multicores with minimal programming effort.

Following the rationale of parallel design pattern method- ology, we design a C++11-compliant template interface for developing parallel DaC programs. The interface is imple- mented using different back-end frameworks (i.e. OpenMP, Intel TBB and FastFlow) supporting source code reuse and a certain amount of performance portability.

Experiments on a 24-core Intel server show the effective- ness of our approach: with a reduced programming effort the programmer easily prototypes parallel versions with perfor- mance comparable with hand-made parallelizations.

Files

exp.zip

Files (113.3 kB)

Name Size Download all
md5:47afc454d1f0ed9d50b573d031e6933a
113.3 kB Preview Download

Additional details

Funding

European Commission
RePhrase - REfactoring Parallel Heterogeneous Resource-Aware Applications - a Software Engineering Approach 644235