[ADOL-C] Issue with OpenMP
Ingrid Hallen
ingridhallen at hotmail.com
Sat Sep 17 16:15:30 EDT 2011
Hi everyone!
I've been experimenting a bit with adol-c and OpenMP (not differentiating
OpenMP code, just trying to paralellize some code that uses adoubles). Anyway,
I have a piece of code that looks something like this:
"adouble t1, t2;
adouble t0, tf;
t0.setValue(0.0); tf.setValue(1.0);
double nn[] = {1.0,2.0,3.0,4.0,5.0};
int i;
#pragma omp parallel shared(t0,tf,nn) private(i,t1,t2)
{
#pragma omp for nowait
for (i=0;i<4;i++) {
t1 = (t0+tf)*nn[i];
t2 = (t0+tf)*nn[i+1];
std::cout << i << i+1 << t1.value() << t2.value();
}
}"
Now if I run the loop using just one thread everything works fine, but for more
than one I get some weird results, like, say, the following output:
0 1 1.000 2.000
2 3 3.000 2.000
3 4 4.000 4.000
1 2 2.000 3.000
Here I think the second line should read "2 3 3.000 4.000" and the third "3 4 4.000 5.000".
Anyone have an idea why this strange behavior occurs?
cheers
ingrid
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/adol-c/attachments/20110917/35a936b6/attachment.html>
More information about the ADOL-C
mailing list