Library Algorithm for Using OpenMP with C ++

I am using the C ++ programming language with GCC on the GNU / Linux desktop. I am trying to implement some parallel PRAM algorithms in C ++. As far as I understand, with OpenMP on a multi-core processor it more or less helps to emulate CREW PRAM algorithms.

Many complex PRAM algorithms include operations, such as the sum of parallel prefixes, sorting, performing elementary operations on a vector in the global address space, etc.

Somehow, after about 15 minutes of Googling, there seems to be no libraries that provide this functionality, i.e. some of the basic parallel algorithms or data structures, such as the standard template library.

Can anyone list such libraries?

EDIT: I need, in fact, an OpenMP analogue for the Thrust library that is used in the CUDA world. http://thrust.github.com/

+4
source share
1 answer

Thrust supports parallel execution on multi-codes via OpenMP or TBB, as well as GPUs through CUDA. On the website :

Thrust is a parallel algorithm library that resembles the C ++ Standard Template Library (STL). Satisfying the high-level interface improves programmer productivity while ensuring portability between GPUs and multi-core processors. Interaction with installed technologies (such as CUDA, TBB and OpenMP) facilitate integration with existing software. Develop high-performance applications quickly with Thrust!

Here's some more information on how to access Thrust's multi-core functionality.

+2
source

All Articles