openMP et allocation de pointeur
Bonjour,
j'ai une question à propos des allocations pointeurs avec open MP.
Quand j'écris :
Code:
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.