Title :
Loop Parallelism: A New Skeleton Perspective on Data Parallel Patterns
Author :
Danelutto, M. ; Torquati, M.
Author_Institution :
Dept. of Comput. Sci., Univ. of Pisa, Pisa, Italy
Abstract :
Traditionally, skeleton based parallel programming frameworks support data parallelism by providing the programmer with a comprehensive set of data parallel skeletons, based on different variants of map and reduce patterns. On the other side, more conventional parallel programming frameworks provide application programmers with the possibility to introduce parallelism in the execution of loops with a relatively small programming effort. In this work, we discuss a "ParallelFor" skeleton provided within the FastFlow framework and aimed at filling the usability and expressivity gap between the classical data parallel skeleton approach and the loop parallelisation facilities offered by frameworks such as OpenMP and Intel TBB. By exploiting the low run-time overhead of the FastFlow parallel skeletons and the new facilities offered by the C++11 standard, our ParallelFor skeleton succeeds to obtain comparable or better performance than both OpenMP and TBB on the Intel Phi many-core and Intel Nehalem multi-core for a set of benchmarks considered, yet requiring a comparable programming effort.
Keywords :
C++ language; parallel programming; C++11 standard; FastFlow parallel skeletons; data parallel patterns; loop parallelism; skeleton based parallel programming frameworks; Algorithm design and analysis; Benchmark testing; Instruction sets; Parallel processing; Parallel programming; Skeleton; Standards; algorithmic skeleton; data parallelism; loop parallelism; multi- and many-core; parallel design patterns;
Conference_Titel :
Parallel, Distributed and Network-Based Processing (PDP), 2014 22nd Euromicro International Conference on
Conference_Location :
Torino
DOI :
10.1109/PDP.2014.13