A Divide-and-Conquer Parallel Pattern Implementation for Multicores
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.
Tue 1 Nov
|10:30 - 10:55|
Jixin HanWaseda University, Japan, Rina FujinoWaseda University, Japan, Ryota TamuraWaseda University, Japan, Mamoru ShimaokaWaseda University, Japan, Hiroki MikamiWaseda University, Japan, Moriyuki TakamuraOSCAR TECHNOLOGY, Japan, Sachio KamiyaOSCAR TECHNOLOGY, Japan, Kazuhiko SuzukiOSCAR TECHNOLOGY, Japan, Takahiro MiyajimaOSCAR TECHNOLOGY, Japan, Keiji Kimura Waseda University, Hironori KasaharaWaseda University, JapanDOI
|10:55 - 11:20|
Marco DaneluttoUniversity of Pisa, Italy, Tiziano De MatteisUniversity of Pisa, Italy, Gabriele MencagliUniversity of Pisa, Italy, Massimo TorquatiUniversity of Pisa, ItalyDOI
|11:20 - 11:45|
Peter KourzanovNXP, NetherlandsDOI
|11:45 - 12:10|
Clark VerbruggeMcGill University, Canada, Christopher J. F. PickettMcGill University, Canada, Alexander KrolikMcGill University, Canada, Allan KielstraIBM, CanadaDOI