lupetam gluposti, ali hajde da probam ...
meni se cini da bi eventualno problem mogao nastati u sledecem slucaju ...
ako smp to razbija na dva procesora, dobijamo dva threada za izvrsavanje a oba koriste
istu promenljivu za sumiranje - area ... tu bi se moglo mnogo izgubiti na lockovanju i cekanju drugog thread-a da
doda svoju vrednost na area ...
takodje mi je sumnjivo i ovo N ... (ali nisam siguran)
nisam nesto radio u openMP ... ali obrati paznju (iz dokumentacije)
1. da li se citava stvar deli na sledece
K = N / 2
instance 1
Code:
for(i=0;i<K;i++){
x=(i+0.5)/K; // ovde bi mogao nastati problem
area+=4.0/(1.0+x*x);
}
i instance 2
Code:
for(i=K;i<N;i++){
x=(i+0.5)/N; // ovo je ok ...
area+=4.0/(1.0+x*x);
}
Da li treba na neki nacin obeleziti area promenljivu da bi se naglasilo da je u pitanju suma?
(da bi eventualno predprocesor to razbio na area1 i area 2 i na kraju area = area1+area2)
Nadam se da sam pomogao koliko mogu, onako cisto logicki gledano, to mi je palo na pamet ...