[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