J'ai quelques variables globales que j'ai besoin d'utiliser dans une section parallélisée de mon programme. J'ai donc écrit ceci:pragma omp raccourcis dans c
#define N 2000
int x[N], matrix[N][N]
int main(int argc, char **argv)
...
#pragma omp parallel
{
#pragma omp privatethread(x,matrix)
#pragma omp for
for(int k=0; k<100;++k)
/*some function to modify values of x and matrix differently
from run to run*/
...
}
...
est la partie avec #pragma équivalent à:
...
#pragma omp privatethread(x,matrix) parallel for
...
Y at-il une différence entre la déclaration #pragma omp parallèle puis #pragma omp privatethread et déclarant d'abord #pragma omp privatethread puis #pragma omp parallèle pour? Dois-je mettre un {après la partie privathread?
#pragma omp privatethread(x,matrix)
{ //<-- here
#pragma omp for
Enfin, est qu'une bonne façon de travailler avec de grands vecteurs c ou est-il préférable d'utiliser malloc dans mon pragma OMP et enlever la partie privatethread? (S'il vous plaît laissez-moi savoir si c'est mieux que je pose cette question de fin dans un nouveau message)