Cilk: an efficient multithreaded runtime system
Journal of Parallel and Distributed Computing - Special issue on multithreading for multiprocessors
Neural Network-Based Face Detection
IEEE Transactions on Pattern Analysis and Machine Intelligence
Intel threading building blocks
Intel threading building blocks
A high-performance face detection system using OpenMP
Concurrency and Computation: Practice & Experience
The Cilk++ concurrency platform
The Journal of Supercomputing
Design and Implementation of OpenMP Tasks in the OMPi Compiler
PCI '11 Proceedings of the 2011 15th Panhellenic Conference on Informatics
Nested parallelism in the OMPI OpenmP/C compiler
Euro-Par'07 Proceedings of the 13th international Euro-Par conference on Parallel Processing
Hi-index | 0.00 |
In this work we propose a novel technique to reduce the overheads related to nested parallel loops in OpenMP programs. In particular we show that in many cases it is possible to replace the code of a nested parallel-for loop with equivalent code that creates tasks instead of threads, thereby limiting parallelism levels while allowing more opportunities for runtime load balancing. In addition we present the details of an implementation of this technique that is able to perform the whole procedure completely transparently. We have experimented extensively to determine the effectiveness of our methods. The results show the actual performance gains we obtain (up to 25% in a particular application) as compared to other OpenMP implementations that are forced to suffer nested parallelism overheads.