Bonjour,

j'ai une question à propos des allocations pointeurs avec open MP.

Quand j'écris :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
#pragma omp parallel
{
  double* pTemp;
 
  #pragma omp single
  pTemp = double[N];
 
  #pragma omp for
  for(int i=0; i<N;i++)
    pTemp[i] = 2*i+N;
}
Cela veut-il dire qu'il y a autant de pointeurs dTemp créés que de threads créés pour la région parallèle ?
Dans ce cas, quand j'alloue dynamiquement l'un des pointeurs par un seul thread avec single, et qu'ensuite j'écris dans pTemp avec une boucle for, comment sait-il que c'est dans celui alloué qu'il faut écrire ?

Merci.


Cordialement.