OpenMP et perte de memoire
Bonjour,
Durant un calcul si je m'ammuse à changer le nombre de threads d'un boucle à l'autre comme l'example ci-dessous la mémoire du programme ne fait que crimper jusqu'au crach final
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
double e,c;
bool ii=false;
omp_set_num_threads(8);
for (int i=0;i<100000;i++) {
// changement du nbr de threads pour test
if (ii) omp_set_num_threads(8); else omp_set_num_threads(4);
ii=!ii;
e=1;
#pragma omp parallel for private(c,d) reduction(+:e)
for (int j=0;j<1000;j++) {
c-=10.36-2.4*j;
e=e+cos(c);
if (j==0) printf("%d",omp_get_num_threads());
}
if (e==123) printf("version:%d\n",_OPENMP); // just pour forcer le calcul de e
} |
Si je supprime la ligne de changement du nbr de threads, la mémoire n'augmente pas continuellement.
Si quelqu'un voit le probleme je suis preneur, ca fait quelques heures que je galére.