I use the C++ programming language with GCC on a GNU/Linux desktop. I am trying to implement some PRAM parallel algorithms in C++. As I understand, with OpenMP on a multicore CPU more or less, helps to emulate CREW PRAM algorithms.
Many sophisticated PRAM algorithms, involve operations like parallel-prefix sum, sorting, performing an element wise operation on a vector in global address space etc.
Somehow, after about 15 mins of Googling, there seem to be no libraries which provide this functionality, i.e. some out of the box basic parallel algorithms or data structures like the Standard Template Library.
Can anyone list any such libraries?
EDIT: What I need, essentially, is an OpenMP analogue to the Thrust Library which is used in the CUDA world. http://thrust.github.com/
Thrust supports parallel execution on multicores through OpenMP or TBB as well as GPUs through CUDA. From the website:
Thrust is a parallel algorithms library which resembles the C++ Standard Template Library (STL). Thrust's high-level interface greatly enhances programmer productivity while enabling performance portability between GPUs and multicore CPUs. Interoperability with established technologies (such as CUDA, TBB, and OpenMP) facilitates integration with existing software. Develop high-performance applications rapidly with Thrust!
Here's some additional information on how to access Thrust's multicore functionality.