Abstract
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 parallelism 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 programmers a high-level solution for fast prototyping parallel DaC programs on multicores with minimal programming effort. Following the rationale of parallel design pattern methodology, we design a C++11-compliant template interface for developing parallel DaC programs. The interface is implemented 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 effectiveness of our approach: with a reduced programming effort the programmer easily prototypes parallel versions with performance comparable with hand-made parallelizations.
Original language | English |
---|---|
Title of host publication | SEPS 2016 - Proceedings of the 3rd International Workshop on Software Engineering for Parallel Systems, co-located with SPLASH 2016 |
Editors | A. Jannesari, Y. Sato, S. Winter |
Publisher | Association for Computing Machinery, Inc |
Pages | 10-19 |
ISBN (Electronic) | 9781450346412 |
DOIs | |
Publication status | Published - 21 Oct 2016 |
Externally published | Yes |
Event | 3rd International Workshop on Software Engineering for Parallel Systems, SEPS 2016 - Amsterdam, Netherlands Duration: 1 Nov 2016 → … |
Conference
Conference | 3rd International Workshop on Software Engineering for Parallel Systems, SEPS 2016 |
---|---|
Country/Territory | Netherlands |
City | Amsterdam |
Period | 1/11/16 → … |