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
Si je supprime la ligne de changement du nbr de threads, la mémoire n'augmente pas continuellement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 quelqu'un voit le probleme je suis preneur, ca fait quelques heures que je galére.
Partager