Investigating the Performance and Code Characteristics of Three Parallel Programming Models for C++
The authors investigate and compare three parallel programming models for implementing parallel programs in C++ on multi-core computer systems. The models under consideration include the tried and tested OpenMP, Intel's Thread Building Blocks (TBB) and a do-it-yourself approach using Pthreads and Boost.Thread. For demonstration purposes, they create multiple parallel implementations of an algorithm suitable for parallelisation using the above models. The implementations are then compared on their performance characteristics and coding effort required. Additionally, the performance of the GNU C++(G++) and Intel C++(ICC) Compilers are compared.