On 05/04/11 15:41, John W. Eaton wrote:
On 3-May-2011, address@hidden wrote:
| I'm trying to use OpenMP within some mex-files, When configuring octave
| with openmp enabled,
| ./configure --enable-openmp
| one gets the following warning:
|
| configure: WARNING: You used the EXPERIMENTAL --enable-openmp option.
| configure: WARNING: Are you sure that is what you want to do?
| configure: WARNING:
| configure: WARNING: This option enables experimental SMP multithreding
| configure: WARNING: code that has had very little testing. There is no
| configure: WARNING: certainity that the results returned by Octave with
| configure: WARNING: this option enabled will be correct.
|
| However, there is no single
| #pragma omp
| within the whole source code of octave - OpenMP is obviously not used by
| the core of Octave. Therefore, I'm wondering what this warning is about?
| Should this warn about the possibility that some library might give wrong
| results? What is the problem the warning tries to warn about ?
The --enable-openmp configure option just checks for a compiler flag
and libraries. I don't think anything else was ever done with it.
Unless someone wants to take on the task of making this actually do
something useful, then maybe it should just be removed?
jwe
Yes, I think this warning should be removed. It is detrimental to the use of
openmp with in Octave. At first I was afraid of using openmp - because of
this. And it took me some time to investigate further.
I'm using openmp within some core functions of the NaN-toolbox (sumkskipn_mex
and covm_mex), and it shows competitive results of Octave against the
proprietary alternative. Actually, I see that Octave is up to 15% faster (in
CPU time as well as real time) than ML. That's a result, I do not see without
openmp. And as far as I can see, there are no detrimental effects. Therefore,
I suggest to go even a step further and --enable-openmp in the default
configuration.