Pb OpenMP avec fonction + boucles
Bonjour,
Je viens vers vous, afin d'avoir des conseilles sur OpenMP.
Dans mon code C, je parallélise une partie (voir partie très simplifiée ci-dessous):
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
int k=0;
#pragma omp parallel for
for (int i = 0 ; i < 10 ; ++i)
for (int l = 0 ; l < 10 ; ++l) {
if (_p[k]==0) funct_1(i,k);
else if (_p[k]==1) funct_2(i,k);
++k;
} |
Il se trouve qu'en rajoutant la ligne (#pragma omp parallel for), mes résultats sont complètement faux. Je ne maîtrise pas encore toutes les les fonctionnalités d'OpenMP.
Dois je rajouter d'autres mots-clés ?
A quoi cela sert de privatiser ou de les partager des variables entre les threads ?
J'ai lu la documentation plusieurs fois, mais je ne comprends pas l'intérêt. Pouvez-vous me l'expliquer ?
Je vous remercie pour vos éventuelles réponses
Syens