pthread is a thin shell over the OS infrastructure. It allows you to create a stream with a given basic stream function and some synchronization primitives (mutex semaphores, etc.). On Linux, pthread is implemented on top of the clone(2) system call. The Windows equivalent is called CreateThread . All other streaming materials are built on top of this base.
Intel TBB is a higher level, it gives parallel_for and parallel_reduce and similar higher-level constructs, similar to OpenMP, but implemented as a library, not a language extension.
OpenMPI is even higher level with a distributed infrastructure with several machines, but it is very old-fashioned and a bit awkward.
My advice: study the pthread library first until you understand it completely, and then look at the higher-level libraries.
Andrew Tomazos
source share