Bonjour,

Le code suivant ne donne pas le même résultat si je désative les directives openMP. Alors, la différence est mineures, 10-8, mais cela suffit à donner un comportement différent dans le reste du code. Est-ce normal compte tenu de la parallélisation ou cela indique-t-il un probléme. Merci d'avance de vos lumiéres.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
double X,Y,XP,YP,P,E;
X=Y=Xp=Yp=P=E=0;
int npoint0=1000000
int NN=(npoint0-1)*6;
#pragma omp parallel for  schedule(guided) reduction(+:X,Y,Xp,Yp,P,E)
for (int i=0;i<=NN;i=i+6) {
   X+=cord[i];
   Xp+=cord[i+1];
   Y+=cord[i+2];
   Yp+=cord[i+3];
   P+=cord[i+4];
   E+=cord[i+5];
}