Hello,
Thanks for your response.
With parallel pipelines it will generate faster code (hopefully.)
ben
I am not sure what the "parallel pipelines" means. The OpenMP 2.0 standard
is mostly talking about "parallel regions".
There is how I see OpenMP in nutshells:
The traditional (Windows) approach to dial with multithreading is based on a
function that are executed in parallel with caller (CreateThread). In OpenMP
to make a piece of code to run in parallel I do not need to move it to a
function and think about marshaling data to this function. I just declare
this region as a parallel, declare thread specific and shared variables and
compiler takes care about the rest. As well now compiler can utilize the
knowledge it gets from my declaration and generate a better code. I see this
as a benefit.
One thing that concerns me is that the OpenMP syntax is kind of noisy and do
not look neutral inside a C++ program.
Another thing is that looks like C++ community does not talk about OpenMP a
lot (or at least I do not see those discussions in comp.lang.c++.moderated
and comp.std.c++), all though several major compiler vendors has been
supporting or are going to support OpenMP. There are talks about making a
library like boost::thread a part of the C++ standard library. So again this
means that OpenMP and traditional approach coexist in parallel and no one
look at OpenMP as a replacement for a traditional approach.
Looks like OpenMP is widely (going to be) supported by compiler vendors
like MS, Intel etc. This big investment on there side kind of contradicts to
the amount of attention this technology gets from C++ community.
So basically my questions boils down to following:
Is OpenMP going to replace traditional approach or this two solutions are
targeting different kind of problems?
Regards,
Vladimir.