ca8878b041bf802af37a5279397f85488645bd42
2 #include "00_pi_tools.h"
5 /*----------------------------------------------------------------------*\
7 \*---------------------------------------------------------------------*/
9 /*--------------------------------------*\
11 \*-------------------------------------*/
15 /*--------------------------------------*\
17 \*-------------------------------------*/
19 bool isPiOMPforAtomic_Ok(int n
);
21 /*--------------------------------------*\
23 \*-------------------------------------*/
25 static double piOMPforAtomic(int n
);
27 /*----------------------------------------------------------------------*\
29 \*---------------------------------------------------------------------*/
31 /*--------------------------------------*\
33 \*-------------------------------------*/
35 bool isPiOMPforAtomic_Ok(int n
)
37 return isAlgoPI_OK(piOMPforAtomic
, n
, "Pi OMP for atomic");
40 /*--------------------------------------*\
42 \*-------------------------------------*/
45 * synchronisation couteuse!
47 double piOMPforAtomic(int n
)
51 const double DX
= 1.0/(double)n
;
53 #pragma omp parralel for private(xi)
54 for (int i
= 0; i
< n
; i
++)
58 sum
+= fpi(xi
); // Uniquement l'operateur += est atomi, 'fpi' est exécuté en parralèle.
64 /*----------------------------------------------------------------------*\
66 \*---------------------------------------------------------------------*/