Bonjour,

Voici un bout de code que je link de 2 facon différente avec le dernier mingW, gcc4.4.1 sous windows

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
      for (int k=0;k<=100000;k++) {
        for (int j=1;j<=8;j++) {
          omp_set_num_threads(j);
          int h=0;
#pragma omp parallel for reduction(+:h)
          for (int i=0;i<1000;i++) {
             h++;
          }
          if (h==100) printf("%d",h);
        }
      }
Alors dans mon example j'utilise OpenMP mais si c'était des pthreads le comportement serait le même.

Si je link avec l'option "-mthread" et je que je met la dll "mingwm10.dll" tout se passe bien

Maintenant si je link en static avec "libmingwthrd.a" + "libmingw32.a", la mon programme grossis de plus en plus en mémoire et c'est liée au fait que je change le nombre de threads actif par la fonctrion openMP omp_set_num_threads(). Je ne sais pas exactement ce qui se passe mais quand le pools de threads change de taille quelquechose n'est pas d'ésaloué. Et ca va trés vite ~120 octect par thread.

J'ai peu d'espoir que quelqu'un ait déjà été confronté à ca, mais sait-on jamais